关于 Garmin Connect Personal API
Garmin Connect Personal API 是面向 AI 助手的非官方只读 MCP 服务,用于查询 Garmin Connect 健康与活动数据。它通过 Garmin Personal API 提供个人指标,不能修改账户内容。
主要功能
- 01睡眠、HRV 和心率数据
- 02步数、压力和 Body Battery
- 03活动搜索与详情
- 04体重、营养和月经周期数据
适用场景
- 01比较不同日期范围的睡眠
- 02查看月度 HRV 趋势
- 03汇总近期跑步活动
- 04分析睡眠时长与压力的关系
MCP 相关
它将 Garmin Connect Personal API 数据作为工具提供给 MCP 客户端。服务为只读模式,并使用 Garmin Personal API 密钥进行身份验证。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y garmin-connect-personal-api-mcpGARMIN_PERSONAL_API_KEY密钥Garmin Connect Personal API key from connect.garmin.com/app/settings/personalApiToken. Optional if the key is saved in ~/.config/garmin/connect-personal-api-key.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
24收录的工具列表 · 更新于 5 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 活动数量上限。默认值为 20。 |
| start | integer | 否 | 从 0 开始的结果偏移量。默认值为 0。 |
| endDate | string | 否 | 仅包含此日期或之前的活动,格式为 YYYY-MM-DD。 |
| startDate | string | 否 | 仅包含此日期及之后的活动,格式为 YYYY-MM-DD。 |
| activityType | string | 否 | 活动类型筛选条件,例如 running、cycling 或 hiking。 |
详细介绍
Garmin Connect Personal API MCP 服务
非官方。 这是一个社区项目,与 Garmin 无关,也未获 Garmin 认可。
这是一个 MCP 服务,可让 Claude 和其他 AI 助手通过 Garmin 官方的 Personal API读取你的 Garmin Connect 数据。你可以提出这类问题:
- “我本周的睡眠情况与上周相比如何?”
- “这个月我的 HRV 是在上升还是下降?”
- “总结一下我最近五次跑步。”
- “在睡眠少于 6 小时的日子里,我的压力情况如何?”
它基于 garmin-connect-personal-api-js 构建,且为只读服务:无法更改你账户中的任何内容。
设置
- 在 Garmin Connect上创建 Personal API 密钥。
- 按照下方说明,将此服务添加到你的 AI 客户端,并将密钥设为
GARMIN_PERSONAL_API_KEY。你需要 Node.js 20.4 或更高版本。
Claude Desktop
打开 Settings → Developer → Edit Config,然后添加:
{
"mcpServers": {
"garmin": {
"command": "npx",
"args": ["-y", "garmin-connect-personal-api-mcp"],
"env": {
"GARMIN_PERSONAL_API_KEY": "your-personal-api-key"
}
}
}
}
之后重启 Claude Desktop。
Claude Code
claude mcp add garmin --env GARMIN_PERSONAL_API_KEY=your-personal-api-key -- npx -y garmin-connect-personal-api-mcp
其他 MCP 客户端
将 GARMIN_PERSONAL_API_KEY 设好后,以 stdio 服务的方式运行 npx -y garmin-connect-personal-api-mcp。
避免将密钥放在客户端配置中
你可以将密钥保存到
~/.config/garmin/connect-personal-api-key(Windows 上为
%USERPROFILE%\.config\garmin\connect-personal-api-key),并在配置中省略 env,以此替代环境变量。这与 gc-personal CLI 使用的是同一个密钥文件。
工具
| 工具 | 数据 |
|---|---|
get_daily_sleep_summaries | 每晚一份摘要:时长、睡眠阶段、睡眠评分 |
get_daily_sleep | 某一晚的详细睡眠数据 |
get_daily_summaries | 每日步数、卡路里、心率、压力、Body Battery、强度分钟数 |
get_daily_hrv、get_daily_hrv_summaries | 某一晚的心率变异性,或日期范围内每晚的心率变异性 |
get_daily_heart_rate、get_heart_rate_zones | 某一天的心率采样数据,以及心率区间 |
get_daily_stress、get_daily_steps、get_daily_hydration | 日期范围内的每日统计数据 |
get_daily_body_battery、get_daily_spo2 | Body Battery 和 SpO2 |
search_activities、get_activity、get_activity_workouts | 活动及其详情 |
get_weight_measurements、get_effective_weight_goals、get_daily_food_logs | 体重、目标和营养 |
get_fitness_age、get_user_profile_settings | 体能年龄和个人资料设置 |
get_menstrual_cycle_summary、get_menstrual_cycle_day_view | 月经周期数据 |
get_wellness_activity_summaries | 健康活动摘要 |
api_get | 其他任意 Personal API GET 端点 |
日期使用 YYYY-MM-DD 格式,默认为今天。日期范围包含起止日期。
工作原理
服务会将你的 API 密钥换成 Bearer 令牌,并将其缓存在
~/.config/garmin/connect-personal-api-bearer-token.json中,与
gc-personal CLI 共用。令牌会在过期前续期;如果令牌遭拒,会自动替换。
你的数据会从 Garmin 传输到你连接的 AI 客户端,因此受该客户端的隐私条款约束。
许可证
Apache 2.0。请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。