← 返回目录
A

Apple Health MCP Server

社区
用 SQL 在本地查询你的 Apple Health 导出数据
分类
其他 第 25 / 230
Stars
★ 575 非常热门
传输方式
stdio(本地进程)
运行环境
Node.js 22+
凭据
无需凭据
许可证
MIT
最近提交
工具数
3
67FMRS · C

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

最强项 · 文档质量 15/20 最弱项 · 可靠性 11/20

可靠性
11/20
安全与权限
15/20
维护活跃度
12/20
文档质量
15/20
安装易用性
14/20
查看各项评分依据
可靠性 11/20
README 与 server.json 描述一致:本地 stdio、npx 启动、read-only SQL、明确工具三件套(health_schema/health_query/health_report),并披露内存上限、无磁盘溢写失败行为、每进程重建 DuckDB、日期窗口缺失等约束,路径看似可跑通。但按静态校准规则,仓库中未见真实 CI workflow 与覆盖关键路径的已提交测试(README 仅给出 npm test 命令),无法验证 init/握手与工具行为一致;仅支持 Simple Health Export CSV、不支持原生 export.xml、重复测量需自行处理 sourceName 等边界处理未证实。故不给高分,仅按 happy path 可信但测试/边界证据薄弱定档。
安全与权限 15/20
无凭证、无 token、无网络上传,数据本地读取且不写磁盘、不溢写临时目录,HEALTH_DATA_DIR 为唯一必填且只读查询,权限范围克制;README 明确提示结果会被发送至客户端模型提供方并要求只接入可信客户端,数据流披露清楚。扣分点:缺乏危险操作确认机制描述、未提供沙箱或最小权限硬化说明、依赖 DuckDB/npm 供应链未提及审计或锁文件证据,所以未给满分,但未触及任何红线。
维护活跃度 12/20
MIT 许可、语义化版本 1.4.2、npm 包发布、issues 仅 5 个且项目未归档,显示仍在维护;但仓库仅有 567 stars 作为发现信号(不计分),无提交/发布日期、无响应时长、无安全响应渠道(SECURITY.md)、无依赖更新策略(Dependabot 等)证据,治理与版本追踪信息缺口明显。故给中等偏上分,低于满分。
文档质量 15/20
文档层次较完整:环境要求(Node 22)、导出工具步骤、Claude Desktop 配置示例、环境变量表含必填与默认值、工具用途表、数据模型与查询示例链接、内存占用估算(约 1GiB/两年)、失败与限制(不支持 export.xml、无日期窗口、无持久增量导入、非医疗建议)均明确披露。不足:缺少工具级参数细节与完整示例输出、无故障排查章节、无成本/性能边界量化验证、无安全或隐私政策独立文档,故未达最高档。
安装易用性 14/20
安装路径清晰:npx -y 一行命令加 JSON 配置示例,env 仅需 HEALTH_DATA_DIR 一项必填,其余有默认值,主流客户端(Claude Desktop)示例可直接复制。但用户需先行安装 iPhone 端 Simple Health Export CSV、导出并手动解压转移 CSV 到目标机器,且需 Node 22+ 与对应平台(未声明 Windows/Linux 兼容性测试),前置步骤依赖专有 iOS 应用不属标准路径,属手动且略脆弱,故按静态校准不给 15 以上。

静态评测 · 未实际运行收录于 2026-09-18

查看 FMRS 评分方法 →

选型与风险

能访问什么读取本地文件

适合谁

  • 希望健康数据保持在本地、不经过第三方服务器的用户
  • 已使用 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
  • 健康报告只是对已记录数据的汇总,不构成医疗建议

安装接入

准备工作

运行环境:Node.js 22+

HEALTH_DATA_DIR 必填 必填,指向从 iPhone 用 Simple Health Export CSV 导出并解压后的 CSV 目录;将导出压缩包传到电脑并解压后填入该路径。
其他可选配置项(2 个)
MAX_MEMORY_MB 可选 可选,DuckDB 内存上限(MB),默认 2048;导出数据量大时可调高。
CACHE_SIZE 可选 可选,缓存查询结果的最大条数,默认 100。
  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"
      }
    }
  }
}

以 Claude Desktop 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "apple-health": {
      "command": "npx",
      "args": [
        "-y",
        "@neiltron/apple-health-mcp"
      ],
      "env": {
        "HEALTH_DATA_DIR": "/path/to/your/unzipped/health-export"
      }
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add apple-health -e HEALTH_DATA_DIR=/path/to/your/unzipped/health-export -- npx -y @neiltron/apple-health-mcp

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

在 Claude Desktop 等客户端的工具列表中确认出现 health_schema、health_query 和 health_report 三个工具,然后用 health_schema 查看导出的表名和样例行,能返回即说明连接成功。

常见排障

  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 助手这样说:

  • 列出我健康数据里有哪些表和列
  • 查询我上个月的睡眠时长,按天汇总
  • 生成一份本周的健康报告,包括活动和心率
  • 统计我过去一年每周的锻炼时长

工具能力 3

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

使用场景

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

支持客户端

Claude Desktop

依据项目文档列出,未经本站实测。

详细介绍

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

同类可选方案

BioMCP 75 · B

统一的命令行语法,接入约30个可信生物医学数据源。

★ 670 · 工具数 11 与当前对比 →

源版本 2fbcf29599a5 数据同步于 2026-11-02 查看 FMRS 评分方法