Token导航 LogoToken导航

MCP Server · 数据服务

Personal Health MCP System

一个模块化、本地优先的系统,用于记录、分析和预测个人健康数据,支持食物、酒精、压力、睡眠和症状跟踪。

stdio官方级别未说明来源级核验工具 0
本地优先PythonClaude机器学习Claude Desktop

快速开始

作者 / 组织
yoyomeng2
提供方
yoyomeng2
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Personal Health MCP System 属于数据服务类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

数据服务

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

uv run init-db

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

个人健康MCP系统

一个模块化的本地优先系统,使用MCP接口记录、分析和预测个人健康相关性。\ 重点:食物、酒精、压力、睡眠和症状跟踪。

请注意,此项目用于教育目的,而非生产用途。

- 1.目标 - 2.架构概述 - 3.文件夹布局 - 4.数据库模式 - 5.入门 - 安装 - 数据库设置 - 运行服务器 - 运行测试 - 代码质量 - 6.MCP集成 - 概述 - ChatGPT快速入门 - 幂等性 - 文档 - 7.管道模型 - 模型选择 - 特征工程 - 使用的指标 - R平方分数历史 - 扩展学习技巧 - 不同型号 - 扩展评分技术 - 8.工作流程示例 - 9.可选集成 - 10.下一步

______________________________________________________________________

1.目标

使本地或基于代理的系统能够:

  • 通过受控的MCP呼叫记录健康和生活方式数据。
  • 查询摘要、相关性和预测。
  • 作为机器学习驱动的个人洞察力的数据支柱。

______________________________________________________________________

2.架构概述

  1. 数据库层: SQLite用于结构化健康日志。
  2. MCP服务器: FastAPI应用程序公开标准化方法。
  3. 发动机型号: 随机森林回归器(scikit-learn)用于疼痛预测。
  4. 代理接口: 本地LLM或使用MCP API的自动化客户端。
┌──────────────┐       ┌──────────────┐       ┌──────────────┐
│ User Input   │──────▶│ MCP Server   │──────▶│ SQLite / ML  │
│ (Agent)   │       │ (FastAPI)    │       │ Engine       │
└──────────────┘       └──────────────┘       └──────────────┘

看 docs/architecture.md 查看详细的架构图和组件描述。

______________________________________________________________________

3.文件夹布局

personal-health-mcp-system/
├── pyproject.toml                      # Python project settings and dependencies
├── README.md                           # Project documentation
├── uv.lock                             # UV lockfile
├── configs/                            # Configuration files
│   ├── personal_health.yaml            # Default application configuration
│   └── environments/                   # Environment-specific configs
│       ├── dev.yaml
│       └── prod.yaml
├── data/                               # Runtime data (gitignored except structure)
│   ├── health.db                       # SQLite database
│   ├── model_v1.pkl                    # Trained ML model
│   └── logs/                           # Application logs
│       └── personal_health.log
├── docs/                               # Documentation
│   └── phases.md                       # Project phases and roadmap
├── scripts/                            # Utility scripts (see scripts/README.md)
│   ├── __init__.py
│   ├── README.md                       # Scripts documentation
│   ├── export_sqlite_to_csv.py         # Export database to CSV
│   ├── import_csv_to_sqlite.py         # Import CSV to database
│   ├── init_db.py                      # Initialize database schema
│   ├── train_model.py                  # Train ML model
│   ├── find_duplicate_ids.py           # Find duplicate entries
│   └── shell/                          # Shell scripts
│       ├── run_http.sh                 # Start HTTP server (local dev)
│       ├── run_https.sh                # Start HTTPS server (external access)
│       ├── setup_chatgpt_mcp.sh        # Configure ChatGPT integration
│       └── setup_claude_mcp.sh         # Configure Claude Desktop integration
├── src/                                # Source code
│   └── personal_health/
│       ├── __init__.py
│       ├── core.py                     # FastAPI app with mounted MCP
│       ├── config.py                   # Configuration handling;`
│       ├── logging_config.py           # Logging configuration
│       ├── exceptions.py               # Custom exceptions
│       ├── utils.py                    # Utility functions
│       ├── py.typed                    # PEP 561 type marker
│       ├── api/                        # API module
│       │   ├── __init__.py
│       │   ├── routes.py               # HTTP endpoints
│       │   ├── schemas.py              # Pydantic models
│       │   ├── operation_ids.py        # Operation ID constants
│       │   └── analysis.py             # Analysis logic
│       ├── db/                         # Database module
│       │   ├── __init__.py
│       │   ├── manager.py              # Database manager class
│       │   └── schema.sql              # SQLite schema
│       └── ml/                         # Machine learning module
│           ├── __init__.py
│           ├── features.py             # Feature engineering for ML model
│           └── predictor.py            # Model inference
└── tests/                              # Test suite
    ├── __init__.py
    ├── conftest.py                     # Pytest fixtures
    ├── resources/                      # Test resources
    │   └── test_data.yaml
    └── unit/                           # Unit tests
        ├── __init__.py
        ├── test_analysis.py
        ├── test_mcp_integration.py
        └── test_routes.py

______________________________________________________________________

4.数据库模式

CREATE TABLE entries (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    date TEXT NOT NULL,
    meal TEXT,
    alcohol TEXT,
    stress INTEGER,
    sleep_hours REAL,
    pain_level INTEGER,
    notes TEXT
);

5.入门

安装

# Clone and navigate to the repo
cd personal-health-mcp-system

# Use uv to sync dependencies
uv sync

数据库设置

初始化SQLite数据库:

uv run init-db

这创造了 data/health.db 根据上面的模式。

运行服务器

有关所有可用脚本的信息,请参阅 scripts/README.md.

HTTP(开发):

scripts/shell/run_http.sh

HTTPS(外部访问):

scripts/shell/run_https.sh

API将在以下网址提供:

  • HTTP: http://localhost:8080
  • HTTPS: https://localhost:8443
  • OpenAPI文档: /docs
  • MCP端点: /mcp (SSE协议)

运行测试

uv run pytest tests/ -v

代码质量

预提交钩子在提交时自动运行:

uv run pre-commit run --all-files

______________________________________________________________________

6.MCP集成

概述

该系统公开了一个 模型上下文协议(MCP) 端点位于 /mcp 用于AI代理集成。MCP层用JSON-RPC 2.0兼容的发现和调用封装REST端点。

ChatGPT快速入门

  1. 启动HTTPS服务器:
   ./scripts/run_https.sh
  1. 通过ngrok曝光:
   ngrok http https://localhost:8443
  1. 配置ChatGPT:

- 订阅Plus或更高版本,请访问chat.openai.com - 前往设置→ 应用程序和连接器,然后选择创建 - 使用ngrok HTTPS URL完成表单操作

  1. 使用自然语言:

- “添加今天的健康条目:披萨、2瓶啤酒、压力4、睡眠7.5小时” - “显示我上周的健康记录” - “总结我过去7天的健康数据”

幂等性

具有相同值的重复条目 所有领域 (日期、用餐、酒精、压力、睡眠小时数、疼痛程度、笔记)被删除:

  • 相同的字段值→ same entry_id (确定性哈希)
  • 未创建重复的数据库行
  • 使用现有ID始终返回200 OK

要更新上下文,请执行以下操作: 使用 update_entry 在不创建新条目的情况下修改特定字段(例如notes、pain_level)的操作。

文档

  • OpenAPI/Swagger用户界面: 访问 http://localhost:8080/docs 当服务器正在运行包含模式和示例的完整API文档时
  • 重新记录: 替代文件位于 http://localhost:8080/redoc

______________________________________________________________________

7.管道模型

  1. 功能工程:

- 将分类文本(膳食、酒精)转换为二元特征。 - 添加滞后特征(前一天饮酒、平均滚动压力)。 - 计算汇总统计数据。

  1. 培训:
   uv run train-model --db data/health.db

- 输出:model.pkl

  1. 预测服务:

- 服务器启动时加载模型。 - predict_next_day 电话 predictor.py

模型选择

随机森林回归器因其鲁棒性、处理非线性关系的能力、抗过拟合性和处理缺失数据而被选为疼痛预测模型。 健康数据很少遵循线性模式,因此该模型有助于捕捉膳食、酒精、压力、睡眠时间和疼痛水平等特征之间的复杂相互作用。 此外,随机森林不需要对数字特征进行缩放,该模型可以提供特征重要性见解,这对于理解哪些因素对疼痛水平影响最大非常有价值。

特征工程

为疼痛预测模型设计了以下功能:

  • 滞后特征: 回顾窗口使用前7天的压力、睡眠时间和疼痛水平(例如。, stress_d7, sleep_d7, pain_d7).

- 这些捕获了数据中的时间模式和趋势,使模型能够从最近的历史中学习。 - 零填充允许一些缺失的条目,生成滞后特征至少需要3天的时间。 - 例如,如果用户在过去一周内压力很大,或者睡眠时间不好,模型可能会学会将这些模式与第二天更高的疼痛水平联系起来。

  • 星期几编码: 表示一周中的某一天(例如,星期一、星期二)的分类特征,以捕获健康数据中的每周模式。

- 例如,与周末相比,工作日的压力水平可能更高,或者睡眠模式可能因一周中的不同而不同。

  • 汇总统计信息: 过去一周的平均/最大压力、睡眠和疼痛水平,以捕捉整体趋势。

- 这些功能总结了用户最近的健康状况,可以帮助模型识别可能影响疼痛水平的总体模式。

使用的指标

以下指标用于评估疼痛预测模型的性能:

  • 平均绝对误差(MAE):

- 测量原始单位的平均预测误差(痛点) - 示例:MAE为1.5意味着预测平均偏离±1.5个痛点 - 为什么:对健康背景的直观解释

  • 均方根误差(RMSE):

- 比MAE更能惩罚较大的错误,从而洞察偶尔的重大失误 - 示例:RMSE为2.0表示预测精度的方差 - 原因:有助于识别模型是否偶尔出现大失误,还是持续出现小错误

  • R平方分数(决定系数):

- 衡量模型对疼痛水平的解释程度(0.0到1.0) - 示例:R平方为0.75表示模型解释了疼痛水平75%的方差 - 原因:表明整体预测能力和实用性

R平方分数历史

最初的训练忽略了饮食和酒精特征,导致R平方分数为负。我们也可能一直在预测平均疼痛水平。

该分数首次表明模型表现不佳,并导致人们意识到模型中缺少关键的生活方式因素(饮食和酒精)。在包含这些特性之后。..将继续。..>.

扩展学习技巧

目前,该项目主要旨在通过实践提供学习,而不是在真实数据集上实现生产就绪模型或现实预测。初始模型是在一个小的、部分策划的数据集上训练的,该数据集不代表现实世界数据的复杂性或大小。事实上,该模型可能无法很好地推广到现实世界的数据。

未来的增强工作应包括扩展数据集,扩展特征集,以包括膳食类型、酒精类型、其他物质类型、其他生活方式因素、食品成分和已知过敏原的向量。 将膳食和酒精分为更颗粒的类型(如辛辣食物、红酒)可能有助于识别疼痛触发模式。 特征之间的相互作用也可能很重要,例如压力x睡眠相互作用,或饮食x酒精相互作用。

不同型号

考虑到简单而小的数据集,线性回归模型可能更适合项目的初始版本。

扩展评分技术

除了标准回归指标(MAE、RMSE、R平方)外,还应实施额外的评分技术,以便更好地评估性能,因为引入了额外的特征,并在更大的数据集上训练了模型。这些可能包括:

  • 列车与测试

- 有助于了解是否需要更多数据来避免过拟合。 - 原因:较大的差距表明过拟合。

  • 平均绝对百分比误差(MAPE):

- 测量预测误差占实际值的百分比 - 示例:MAPE为20%意味着预测平均偏差为20% - 原因:有助于理解健康背景下的相对误差,特别是当疼痛水平在个体之间可能存在很大差异时。1点误差可能更为显著

  • 绝对误差中位数(MedAE):

- 测量绝对误差的中位数,提供对不受异常值影响的典型误差的洞察。 - 示例:如果MAE=0.83,但MedAE=0.5,则存在一些较大的失误。 - 为什么:比MAE更强大。在健康数据中,异常值可能是由于异常事件(例如,特别紧张的一天或睡眠不佳的一晚)造成的,MedAE可以提供更具代表性的典型模型性能指标。

  • 最大误差:

- 测量预测中最大的单一误差。 - 示例:最大误差为5意味着至少有一个预测偏离了5个痛点。 - 原因:确定最坏的情况,这可能会发现其他表现良好的模型中的失误。在健康背景下,大误差可能表明严重的错误预测,可能需要进一步调查或模型改进。

  • 分箱 将疼痛水平分为类别(例如,低、中、高)并评估这些类别的分类指标(准确性、精确度、召回率),可以提供更多关于模型在预测临床相关疼痛阈值方面表现如何的见解。

______________________________________________________________________

8.工作流程示例

# Add new entry
curl -X POST localhost:8080/add_entry \
     -H "Content-Type: application/json" \
     -d '{"meal":"tacos","alcohol":"beer","stress":4,"pain_level":6,"notes":"felt bloated"}'

# Get week summary
curl localhost:8080/summarize_recent?window_days=7

# Run next-day prediction
curl localhost:8080/predict_next_day?date=2025-10-24

______________________________________________________________________

9.可选集成

•Apple Health/Fitbit:用于睡眠、步数、心率的REST或CSV导入。 •电子邮件/Slack摘要:通过webhook提交每日或每周健康报告。 •MLflow或DVC:模型版本跟踪和实验记录。

______________________________________________________________________

10.下一步

看 相位.md 了解详细的后续步骤。

  1. \[x\] 使用上述架构构建FastAPI项目。
  2. \[x\] 实现/add_entry和/get_entries。
  3. \[\]为相关性可视化构建培训笔记本(笔记本/eda.ipynb)。
  4. \[x\] 训练基线逻辑回归模型。
  5. \[x\] 添加/prict_next_day端点。
  6. \[x\] 扩展到MCP兼容规范(可调用函数的JSON模式)。

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

健康追踪Python本地部署数据分析机器学习本地优先SQLite

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Personal Health MCP System

MCP World · 本页

0stdio有1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Personal Health MCP System 怎么安装?

公开资料给出的安装命令是 uv run init-db,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Personal Health MCP System 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Personal Health MCP System 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Personal Health MCP System 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Personal Health MCP System 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP