关于 Garmin Connect Personal API
Garmin Connect Personal API MCP 是只读服务,让 AI 助手访问个人 Garmin Connect 训练、恢复和健康数据。它可在本地运行或部署到用户自己的 Cloudflare 账户,并提供详细的活动、睡眠和健康记录。
主要功能
- 01只读访问 Garmin Connect 数据
- 02活动详情、时间序列与分段
- 03睡眠和 HRV 记录
- 04每日恢复与健康摘要
- 05体重、补水和饮食记录
- 06健康活动与周期数据
适用场景
- 01查看训练活动及运动指标
- 02按日期范围追踪睡眠和 HRV
- 03检查每日恢复和心率数据
- 04查看补水、营养或周期记录
MCP 相关
通过 MCP 工具只读提供 Garmin Connect Personal API 数据。服务可在本地运行,也可托管于 Cloudflare,供远程 MCP 客户端连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
27收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| date | string | 否 | 日历日期,YYYY-MM-DD。默认:用户时区中的今天。 |
详细介绍
Garmin Connect Personal API MCP
与 Garmin 无关,也未获其认可。Garmin 和 Garmin Connect 是 Garmin Ltd. 的商标。
一个只读的 MCP 服务,通过官方 Garmin Connect Personal API,为 AI 助手提供你自己的 Garmin Connect 训练、恢复和健康数据。你可以在自己的计算机上运行,也可以托管在自己的 Cloudflare 账户中,以便随时随地使用。
AI Agent:如需为用户完成设置,请按照 docs/AGENT-SETUP.md 操作。
设置
你需要一个 Garmin Connect Personal API 密钥,可在 Garmin Connect 网站上创建。
本地运行
这是面向 Claude Code、Claude Desktop、Cursor、VS Code 和其他可运行本地服务的客户端的最快方式。需要 Node.js 22+。
将以下内容粘贴到你的编码 Agent 中:
Connect @hannta/garmin-connect-personal-api-mcp
或者自行操作:docs/LOCAL.md。
托管到 Cloudflare
适用于网页版和移动版 Claude,以及任何通过 OAuth 连接远程服务的其他客户端。免费套餐已足够,但有一项已知限制。
-
一键部署:
-
手动部署: 按照 docs/DEPLOY.md 操作。
然后连接你的 MCP 客户端,例如 Claude、 ChatGPT、Cursor 或 VS Code。
工具
| 工具 | 返回内容 |
|---|---|
garmin_get_day | 一天概览:睡眠、HRV、Body Battery、压力、静息心率、强度分钟数、活动 |
garmin_get_days | 日期范围内的每日数据,每天一行,包含每日活动总量和训练负荷 |
garmin_search_activities | 日期范围内的活动及 Garmin ID 和最快分段,或按周汇总 |
garmin_get_activity | 单项活动的详细数据:配速、心率区间、跑步动态、功率、训练效果、间歇总量、按动作分类的力量训练组数 |
garmin_get_activity_streams | 单项活动的时间序列(心率、配速、坡度调整配速、步频、功率、海拔……) |
garmin_get_activity_laps | 每圈和每组间歇一行,数据来自活动的 FIT 文件 |
garmin_get_sleep | 单晚睡眠详情:包含最佳范围的评分组成项、睡眠需求及其变化原因、午睡 |
garmin_get_sleep_summaries | 日期范围内每晚的睡眠数据 |
garmin_get_hrv | 单晚 HRV,包含基线、状态和夜间读数 |
garmin_get_hrv_summaries | 日期范围内每晚的 HRV 数据 |
garmin_get_daily_summaries | 日期范围内每日的静息心率、Body Battery、压力、强度分钟数和步数 |
garmin_get_weight | 日期范围内的称重记录和身体成分 |
garmin_get_profile | 个人资料设置和心率区间 |
garmin_get_body_battery | 每日 Body Battery:充能、消耗,以及背后的睡眠/活动事件 |
garmin_get_stress | 每日压力:平均水平,以及处于静息/低/中/高压力的分钟数 |
garmin_get_steps | 每日步数、目标和距离 |
garmin_get_heart_rate | 单日静息/最低/最高心率,可选择按 15 分钟取平均值 |
garmin_get_spo2 | 单日血氧(Pulse Ox),可选择按小时统计并附带海拔 |
garmin_get_fitness_age | 健身年龄及其组成项(静息心率、BMI、高强度活动天数/分钟数) |
garmin_get_heart_rate_zones | 各运动类型的心率区间 |
garmin_get_weight_goals | 当前生效的体重目标(目标 kg) |
garmin_get_activity_workouts | 活动所遵循的结构化训练:步骤、目标(心率、配速、功率)和重复次数 |
garmin_get_hydration | 每日补水数据:摄入量、目标、汗液流失量(ml) |
garmin_get_food_log | 单日饮食记录:每餐和每种食物的摄入热量及宏量营养素与目标的对比 |
garmin_get_wellness_activities | 健康活动(例如 Health Snapshot、呼吸训练),包含心率、压力、HRV、SpO2 |
garmin_get_menstrual_cycle | 周期日、经期和易孕期、预测及周期分析 |
garmin_get_menstrual_day | 单日记录的经量、症状和情绪,以及当天的周期摘要 |
须知
- 范围工具默认查询最近 7 天。如果某个范围对单次 Garmin 请求来说过长,错误会说明最大范围,助手会将其拆分为多个请求。
- 输出采用公制单位,每个字段名都包含单位。日期采用你所在时区的
YYYY-MM-DD格式;睡眠和 HRV 数据按醒来日期标记。 - 不会返回位置、性活动和性欲数据。
- 已知限制:
garmin_get_activity_laps在 Cloudflare 免费方案上处理较长的活动时可能会失败。请参阅已知限制。
开发
需要 Node.js 24+。
npm install
cp .dev.vars.example .dev.vars # then add GARMIN_API_KEY and OWNER_PASSPHRASE
npm run check # typecheck, lint, format check, tests
npm run today # print today's recovery data using your key
npm run dev # MCP server at http://localhost:8787/mcp
npm run build # local server in dist/cli.mjs
要试用本地服务,请将
MCP Inspector 连接到它,并使用
OWNER_PASSPHRASE 登录。
架构和约定:docs/DEVELOPMENT.md。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。