Garmin Connect数据服务

将Garmin Connect的健康数据、活动记录和训练指标通过MCP协议暴露,供Claude和其他MCP客户端使用。

  • by BenHCalvert
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 BenHCalvert/garmin_mcp

使用说明

Garmin Connect MCP服务器

将您的Garmin Connect数据(活动、健康指标、培训准备情况等)作为MCP工具公开,供Claude和其他MCP客户使用。

哈哈!!!

设置

1.安装依赖项

pip install -r requirements.txt

2.设置凭据

export GARMIN_EMAIL=you@example.com
export GARMIN_PASSWORD=yourpassword

令牌缓存在 ~/.garmin_tokens/<email>.pkl 首次登录后,您无需对每个会话进行重新身份验证。要覆盖令牌目录,请执行以下操作:

export GARMIN_TOKEN_STORE=/path/to/token/dir

如果您的帐户启用了MFA,则首次运行时会提示您输入OTP。

3.运行服务器

python server.py

或与MCP检查员一起进行测试:

npx @modelcontextprotocol/inspector python server.py

克劳德桌面/Claude代码配置

添加到您的 claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/):

{
  "mcpServers": {
    "garmin": {
      "command": "python",
      "args": ["/path/to/garmin_mcp/server.py"],
      "env": {
        "GARMIN_EMAIL": "you@example.com",
        "GARMIN_PASSWORD": "yourpassword"
      }
    }
  }
}

可用工具

健康与康复

工具 说明
garmin_get_stats 每日总结:步数、卡路里、活动时间、压力
garmin_get_sleep 睡眠阶段、持续时间、睡眠评分
garmin_get_body_battery 车身电池电量超过日期范围
garmin_get_hrv 心率变异性——关键恢复指标
garmin_get_heart_rate 静息心率和日内读数
garmin_get_stress 全天的压力水平
garmin_get_spo2 血氧(SpO2)——海拔后有用
garmin_get_respiration 呼吸速率数据
garmin_get_training_readiness 结合HRV、睡眠、负载的准备度得分

活动

工具 说明
garmin_list_activities 列出最近的活动,可按类型筛选
garmin_get_last_activity 最近的活动
garmin_get_activity 特定活动ID的完整详细信息
garmin_get_activity_splits 活动的重叠/拆分数据
garmin_get_activities_by_date 日期范围内的活动

健身与表现

工具 说明
garmin_get_training_status 最大摄氧量、训练负荷、恢复时间
garmin_get_max_metrics VO2最大估计值
garmin_get_personal_records 跨活动类型的所有时间PR
garmin_get_endurance_score 有氧健身趋势
garmin_get_race_predictions 预计5K/10K/半程/马拉松时间
garmin_get_steps 每日步数在一定范围内
garmin_get_weekly_steps 每周步骤总结

帐户和设备

工具 说明
garmin_get_user_profile 账户资料信息
garmin_get_devices 连接Garmin设备

活动类型筛选器示例

使用 garmin_list_activities 随着 activity_type 设置为:

  • backcountry_skiing --滑雪之旅
  • resort_skiing --度假日
  • cycling / mountain_biking
  • running / trail_running
  • hiking

备注

  • 使用非官方 garminconnect cyberjunky的Python库
  • Garmin Connect API尚未正式发布;Garmin可能会更改它
  • 速率限制:Garmin可能会抑制API的大量使用