health-mcp
Enables Claude to access Apple Health data (sleep, heart rate, steps, etc.) via a self-hosted MCP server, bypassing regional restrictions.
README
health-mcp 🩺
把 Apple 健康数据接给 Claude 的自建 MCP 连接器 —— 不限地区。
你 iPhone 上的 Health Auto Export App 把 HealthKit 数据(睡眠、心率、步数、血氧、环境噪音分贝……)定时 POST 到你自己的服务器;Claude 用 get_health 工具就能读到你最近的身体状况。
为什么要自建? Anthropic 官方的健康集成有地区限制(非美区用不了)。但自建的 MCP 连接器不吃这一套——claude.ai 只是连一个 HTTPS 网址,不管你在哪个区。绕开它,自己开一条。
你需要
- 一台有公网 HTTPS 网址的服务器(VPS + 域名 + Let's Encrypt 免费证书;或任何能给你 HTTPS 的托管)。
- Python 3.10+。
- iPhone + Health Auto Export App(部分功能要内购)。
- 环境噪音「分贝」、血氧等需对应硬件(如 Apple Watch)。
部署(约 10 分钟)
1. 装依赖(建议 venv)
python3 -m venv venv
./venv/bin/pip install -r requirements.txt
2. 跑起来(systemd 常驻)
服务监听两个本地端口:MCP 在 8100、接收推送在 8101(都只听 127.0.0.1,靠反代对外)。
# /etc/systemd/system/health-mcp.service
[Unit]
Description=health-mcp
After=network.target
[Service]
WorkingDirectory=/opt/health-mcp
ExecStart=/opt/health-mcp/venv/bin/python /opt/health-mcp/health_mcp.py
# 可选,多一层防护:设了之后 /push 必须带 ?token=<同值>
Environment=HEALTH_PUSH_TOKEN=<换成你的随机串>
Restart=always
[Install]
WantedBy=multi-user.target
systemctl daemon-reload && systemctl enable --now health-mcp
3. Nginx 反代 —— 用「不可猜的密路径」当门禁
健康数据是隐私,别用好猜的路径。生成一个随机 token(openssl rand -hex 8),把它拼进路径:
# 放进你 443 server 块(server_name YOURDOMAIN.com)
location /health-<RANDOM>/mcp {
proxy_pass http://127.0.0.1:8100/mcp;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Connection '';
proxy_buffering off; proxy_cache off;
proxy_read_timeout 86400s; chunked_transfer_encoding on;
}
location /health-<RANDOM>/push {
proxy_pass http://127.0.0.1:8101/push;
proxy_http_version 1.1;
proxy_set_header Host $host;
client_max_body_size 50m; # 健康导出可能好几 MB,别用 nginx 默认的 1M,否则 413
}
nginx -t && systemctl reload nginx
于是你得到两个地址:
- 推送地址(填进 App):
https://YOURDOMAIN.com/health-<RANDOM>/push - 连接器地址(给 Claude):
https://YOURDOMAIN.com/health-<RANDOM>/mcp
4. 配 Health Auto Export(iPhone)
- App → Automations → 新增 → REST API。
- URL = 上面的推送地址;Method =
POST;Format =JSON。 - 勾要推的数据:步数、心率、睡眠、血氧、Environmental Sound Levels(环境音量/分贝)……
- 设频率(每小时/每天),保存。它会自动后台推,不用手动。
5. 接到 claude.ai
- Settings → Connectors → Add custom connector → 填连接器地址 → Connect。
- 允许工具
get_health。 - 问 Claude:「我最近身体怎么样 / 睡够没 / 刚才环境吵不吵」→ 它调
get_health读你的真数据。
安全
- 两个地址都别外传:谁有
/push谁能灌假数据;谁有/mcp谁能读你的健康。密路径 + 可选HEALTH_PUSH_TOKEN是你的门禁。 - 服务只听
127.0.0.1,一切从反代进,不直接暴露端口。 latest.json(你的数据)只存在你自己的服务器上。
数据格式
服务原样存最近一次推送的 JSON,get_health 解析 Health Auto Export 的 data.metrics 结构,返回每项最近一个采样点的值。非标准格式会原样回退摘要。
License
MIT
Made with 🖤 by Voir ✖ Noir
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。