← 返回目录
A

Apple Health MCP Server

社区
用 SQL 在本地查询你的 Apple Health 导出数据
GitHub 源仓库 ↗
★ 567 Stars 分类 · 其他 非常热门
67FMRS · C

这是一个本地优先的 Apple Health MCP 服务器,通过 DuckDB 以只读 SQL 查询本地 CSV 导出,提供 health_schema、health_query 和 health_report 三个工具。它读取时不联网也不上传导出文件,但返回给客户端的查询结果可能被发送到模型提供商。适合已使用 Simple Health Export CSV 并重视本地数据处理的用户;不支持原生 export.xml,也不提供持久化增量导入。健康报告不是医疗建议。

可靠性
11/20
安全与权限
15/20
维护活跃度
12/20
文档质量
15/20
安装易用性
14/20
查看 FMRS 评分方法 →

这是一个本地优先的 MCP 服务器,让 AI 助手基于本地 CSV 导出回答关于睡眠、锻炼、活动和心率数据的问题。它通过 DuckDB 以只读 SQL 查询健康数据,读取时不联网、不上传导出文件。需要 Node.js 22 或更高版本,以及由 Simple Health Export CSV 生成的 Apple Health CSV 导出;目前不支持原生 export.xml 格式。

工具能力

health_schema
发现表名、列、单位以及示例行
health_query
运行只读 SELECT 查询,输出 JSON、CSV 或摘要
health_report
生成每周、每月或自定义的健康摘要

安装接入

  1. 在 iPhone 上安装并打开 Simple Health Export CSV。
  2. 选择 All 并选择要导出的时间范围。
  3. 将压缩包传输到运行 MCP 客户端的电脑。
  4. 解压,并把 HEALTH_DATA_DIR 设为解压后的目录。
  5. 在 Claude Desktop 的 ~/Library/Application Support/Claude/claude_desktop_config.json 中添加:

{
"mcpServers": {
"apple-health": {
"command": "npx",
"args": ["-y", "@neiltron/apple-health-mcp"],
"env": {
"HEALTH_DATA_DIR": "/你的/解压目录"
}
}
}
}

  1. 修改配置后重启客户端。其他 MCP 客户端可使用相同的命令、参数、环境变量和 stdio 传输。
claude_desktop_config.json
{
  "mcpServers": {
    "apple-health": {
      "command": "npx",
      "args": ["-y", "@neiltron/apple-health-mcp"],
      "env": {
        "HEALTH_DATA_DIR": "/path/to/your/unzipped/health-export"
      }
    }
  }
}

选型与风险

适合谁

  • 希望健康数据保持在本地、不经过第三方服务器的用户
  • 已使用 Simple Health Export CSV 生成 Apple Health CSV 导出的用户
  • 熟悉或用得上 SQL 与 DuckDB 的量化自我实践者
  • 在可信 MCP 客户端中使用 Claude Desktop 的用户

不适合谁

  • 只有原生 Apple Health export.xml、未转成 CSV 的用户
  • 不愿让查询结果可能发送到 MCP 客户端所配置模型提供商的用户
  • 把健康报告当作医疗建议或诊断的人
  • 需要持久化增量导入或跨进程复用数据库的用户

所需权限

  • 读取 HEALTH_DATA_DIR 指向目录中的 Apple Health CSV 导出文件
  • DuckDB 在内存中处理数据,受 MAX_MEMORY_MB 限制
  • 服务器本身不联网、不上传导出文件;但返回给 MCP 客户端的查询结果可能被发送到该客户端配置的模型提供商

风险与副作用

  • 任何工具都能访问配置的完整历史数据,因此只应从你信任的 MCP 客户端启动此服务器
  • 健康数据很敏感;一旦查询结果被发送到模型提供商,就会离开本地环境
  • 首次需要某个表时会加载该表的完整 CSV 历史,没有日期窗口限制
  • 表被保存在内存中;超出 MAX_MEMORY_MB 的导出会明确报错,而不是落盘缓存
  • 设备重叠可能产生看似重复的测量值,查询时可能需要考虑 sourceName
  • 健康报告只是对已记录数据的汇总,不构成医疗建议

常见排障

  1. 确认 Node.js 版本为 22 或更高
  2. 检查 HEALTH_DATA_DIR 是否指向解压后的 CSV 导出目录
  3. 确认导出由 Simple Health Export CSV 生成,原生 export.xml 不受支持
  4. 若报内存错误,请增大 MAX_MEMORY_MB(约 1 GiB 可覆盖两年的多表导出)
  5. 修改客户端配置后需要重启 MCP 客户端
  6. 从 health_schema 开始,因为表名取决于导出文件中的文件
  7. 遇到疑似重复测量时,在查询中考虑 sourceName

使用场景

让 AI 助手回答关于睡眠、锻炼、活动和心率的问题
用只读 SQL 自行探索 Apple Health 数据模型
生成每周、每月或自定义的健康摘要
通过 health_schema 发现导出文件中的表和列

支持客户端

Claude Desktop完整支持