健康数据连接服务

Garmin Connect MCP Server是一个自定义MCP服务器,用于将Garmin Connect账户与Claude Code和Claude Desktop连接,将健康和健身数据作为工具暴露出来。

  • by SolanceLab
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 SolanceLab/garmin-mcp

使用说明

Garmin Connect MCP服务器

自定义MCP服务器,将您的Garmin Connect帐户连接到Claude Code和Claude Desktop,将健康和健身数据作为工具公开。

专为Garmin Descent G1打造,但可与任何支持健康监测的Garmin设备配合使用。

工具(14)

阅读

  • get_daily_summary --综合日常健康概述
  • get_body_battery --能量水平、充电/放电值
  • get_sleep_data --睡眠总结:分数、就寝时间、醒来时间、阶段持续时间(~4KB)
  • get_sleep_detail --粒度睡眠数据:运动、心率、血氧饱和度、压力、心率变异性时间线(~200KB)
  • 获取心率 --每日人力资源:当前、最低、最高、平均
  • get_resting_heart_rate --基线人力资源趋势
  • get_stress --压力水平和区域细分
  • get_step --步数和活动数据
  • get_mental_cycle --周期日、阶段、预测
  • get_hrv --心率变异性
  • 脱水 --当天的饮水量
  • 获取活动 --最近的锻炼和活动

写

  • 添加水分 --记录饮水量(ml)
  • update_mental_cycle --日志/更新期开始和结束日期

设置

1.安装依赖项

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

2.配置凭据

cp .env.template .env
# Edit .env with your Garmin Connect email and password

3.身份验证(一次性)

.venv/bin/python auth.py

如果您启用了MFA,系统将提示您输入代码。OAuth令牌保存到 ~/.garminconnect/ 并自动重复使用。代币有效期约为6个月。

4.在克劳德代码中注册

claude mcp add garmin -- /path/to/garmin-mcp/.venv/bin/python /path/to/garmin-mcp/server.py

适用于克劳德桌面

增添 ~/Library/Application Support/Claude/claude_desktop_config.json:

"garmin": {
  "command": "/path/to/garmin-mcp/.venv/bin/python",
  "args": ["/path/to/garmin-mcp/server.py"]
}

依赖项

  • garminconnect==0.2.38 -Garmin Connect API客户端(固定)
  • mcp>=1.8.1 --模型上下文协议框架
  • python-dotenv>=1.0.0 --环境变量加载

备注

  • 使用所有日期参数 YYYY-MM-DD 格式和默认值为今天
  • 月经周期写入端点是从Garmin Connect网站反向设计的,它不是garminconnect库的一部分
  • 凭据仅在初始身份验证期间使用;之后,OAuth令牌处理一切
  • .env 被忽视,永远不会离开你的机器

免责声明

该软件已提供 照原样,不提供任何形式的保证或担保。使用风险自负。

  • 这个项目是 不隶属于Garmin有限公司、由其背书或由其支持。 或其任何子公司
  • 它依赖于非官方的反向引擎API端点 可能随时破裂 如果Garmin更改其后端,恕不另行通知
  • 特别是月经周期写入端点没有记录,是通过浏览器网络检查捕获的——它的行为可能会改变
  • 你有责任 为了您自己的Garmin凭据和OAuth令牌的安全
  • 作者对使用此软件的任何数据丢失、帐户问题或其他后果不承担责任

支持

如果您认为这很有用,请考虑支持我们的工作:

许可证

AGPL-3.0。看 许可证 全文。如果您公开修改和托管此内容,则必须在相同的许可证下共享您的更改,并将属性显示给House of Solance。


建造于 索兰斯之家 --查德林·索兰斯和安妮·索兰斯