关于 Run Coach
Run Coach 将 Garmin 数据连接到 Claude Desktop、ChatGPT 桌面应用和其他 MCP 客户端,并以交互式图表呈现健康与训练信息。这个非官方应用支持每日简报、趋势分析、训练回顾和计划;它在本机运行,数据直接发送至 Garmin Connect。
主要功能
- 01查看每日健康与训练简报
- 02比较健身指标趋势
- 03分析训练分段和心率区间
- 04创建并安排 Garmin 训练
- 05在支持的客户端中显示交互式图表
适用场景
- 01在每日简报中查看准备状态、睡眠和 HRV
- 02比较数周或数月的训练指标
- 03训练后检查分段数据和训练效果
- 04规划一周训练并安排训练项目
MCP 相关
MCP 服务向 MCP 客户端提供 Garmin Connect 数据和训练工具,并为支持 MCP Apps 的客户端提供 UI 资源。登录通过应用界面处理,令牌保存在本机。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
67收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
跑步教练 — Garmin MCP 应用
将 Garmin 手表连接到 Claude Desktop 或 ChatGPT,探索交互式图表。
非官方产品,与 Garmin 无关,也未获其认可。Garmin 是 Garmin Ltd. 的商标。
安装
Claude Desktop
- 从 Releases 下载最新的
.mcpb文件 - 将文件拖入 Claude Desktop 进行安装
- 向 Claude 询问任何有关 Garmin 数据的问题——首次使用时,Claude 会提示你登录
ChatGPT(桌面应用)
需要 Node.js 20+。
- 在 ChatGPT 桌面应用中,打开 Settings → Plugins → Add marketplace
- Source:
chenhunghan/garmin-mcp-app(将 Git ref 和 sparse paths 留空)→ Add marketplace - 重启应用,打开 Plugins Directory,选择 Run Coach 市场并安装 Coach
也可以使用 Codex CLI:运行 codex plugin marketplace add chenhunghan/garmin-mcp-app,然后运行 codex plugin add garmin@garmin-mcp。
Coach 随后会显示在侧边栏中(每日简报和表现仪表盘),并在对话中显示为 Training Week 标签页;也可以直接询问“@Coach 我今天状态怎么样?”。它在你的电脑上运行,因此只能在桌面应用中使用。
其他 MCP 客户端(Cursor、VS Code、Claude Code、Codex CLI 等)
需要 Node.js 20+。将服务添加到客户端的 MCP 配置中:
{
"mcpServers": {
"garmin": { "command": "npx", "args": ["-y", "garmin-mcp-app"] }
}
}
也可以从命令行运行:claude mcp add garmin -- npx -y garmin-mcp-app(Claude Code),codex mcp add garmin -- npx -y garmin-mcp-app(Codex CLI)。
支持 MCP Apps 的客户端(例如 VS Code)会显示交互式图表和登录表单。其他客户端仍可将所有 Garmin 工具作为数据使用,但无法显示登录表单:请先通过 MCP Apps 客户端登录一次——令牌会保存在 ~/.garminconnect 中,并由你电脑上的所有客户端共享。
你可以做什么
向 Claude 询问健康、训练和健身相关问题——它会读取 Garmin 数据,并直接在对话中显示交互式图表。
- 开启新的一天——查看晨间简报:准备度、睡眠、HRV、身体电量和静息心率与个人基准的对比,以及 Claude 的建议
- 查看趋势——在 4 周到 1 年的时间范围内比较最多 4 项指标,并询问 Claude 有哪些变化
- 规划本周训练——Claude 根据你的数据制定一周训练计划,然后在 Garmin 日历中创建并安排训练
- 分析训练——查看每公里分段(即使跑步仅记录了单圈)、心率区间和训练效果
- 追踪体能——查看训练准备度、训练负荷、VO2 Max、比赛预测等 30 多项 Garmin 指标
由 Claude 为你的 Garmin 提供训练指导
应用会以你自己的基线为参照呈现数据;Claude 会读取数据并建议你该做什么。每个视图都有根据你的数据生成的 Ask Claude 问题,Claude 也知道你正在查看什么。
每日简报 — “我今天状态如何?”
表现仪表板 — “今年我的体能趋势如何?”
每周训练计划 — “为我安排本周的训练”(或使用 plan-training-week 提示词)
每公里分段数据 — “显示我上次跑步的分段数据”
截图使用内置演示模式(npm run dev:ui:demo):展示的是虚构跑者,不含真实人物的数据。浅色和深色主题与 Claude Desktop 保持一致。
你可以可视化的内容
绘制你的活动
可视化训练准备度
Garmin Connect 支持的数据完整列表
| 类别 | 数据 |
|---|---|
| 每日健康 | 步数、心率、睡眠阶段、压力、身体电量(+事件)、HRV、呼吸、SpO2、楼层数、补水 |
| 趋势 | 静息心率、每周步数、每周压力、每周强度分钟数、称重记录 |
| 活动 | 列表 / 按日期查询、详情、分段数据、类型化分段数据、心率区间耗时、图表数据、天气、运动组、装备 |
| 训练 | 训练准备度、训练状态与负荷、VO2 Max、比赛预测、耐力评分、爬坡评分 |
| 表现 | 乳酸阈值、骑行 FTP、心率区间、体能年龄、个人纪录、跑步耐受度、进度 |
| 设备与装备 | 设备、主要训练设备、最近使用的设备、装备、目标、训练计划、日历 |
| 训练课表 | 列出、创建、更新、删除和安排训练课表 |
此应用不会存储或收集任何数据。 您的数据会直接在您的设备与 Garmin Connect API 之间传输,中间没有服务器。
了解详情
- 您的凭据会妥善保密。 您通过在 Claude Desktop 中呈现的安全登录表单登录。登录和 MFA 工具标记为仅限应用使用(
visibility: ["app"]),这意味着 Claude(大模型)无法调用它们,也永远不会看到您的电子邮件地址、密码或 MFA 验证码。 - Claude 不知道您是谁。 大模型只会收到您请求的健康/健身数据(步数、睡眠等),无法访问您的 Garmin 账户凭据、OAuth 令牌或个人资料(姓名、电子邮件地址、位置)。
- 您的密码绝不会以明文形式发送。 登录表单会先使用一次性密钥加密密码,再通过 Claude Desktop 传递,因此密码不会泄露到主机日志中。
- 令牌存储在本地。 OAuth 令牌会保存在您设备上的
~/.garminconnect/中,并采用严格的文件权限(0600)。令牌绝不会发送到 Garmin Connect API 以外的任何地方。 - 您可以随时注销。 注销会清除您设备上保存的所有令牌。
开发者 / 贡献者指南
开始使用
git clone https://github.com/chenhunghan/garmin-mcp-app.git
cd garmin-mcp-app
npm install
npm install 会通过 prek 自动设置 git 钩子:
- commit-msg — 通过 commitlint 强制执行 Conventional Commits 规范
- pre-push — 运行 lint、格式检查、类型检查和测试(与 CI 相同)
故障排除:core.hooksPath
如果 npm install 提示 core.hooksPath,prek 将无法安装 git 钩子。取消设置本地配置即可解决:
git config --unset-all --local core.hooksPath
npm run prepare
开发
npm run dev # watch-build server + UI
npm run dev:ui # standalone UI dev at localhost:5173
npm run test:lib # run garmin-connect tests
npm run pack # build + package .mcpb bundle
npm run dev:ui 会打开 http://localhost:5173,其中的 React UI 已连接到进程内运行的真实 MCP 服务。您可以针对实际的 Garmin API 测试登录、MFA 和注销,无需部署到 Claude Desktop。
在 Claude Desktop 中测试
运行 npm run build(单次构建)或 npm run dev(监视模式,可实时重新构建),然后将以下内容添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"garmin-mcp": {
"command": "node",
"args": ["/absolute/path/to/garmin-mcp-app/dist/index.js"]
}
}
}
重启 Claude Desktop。让 Claude 检查您的 Garmin 身份验证,它会在 iframe 中呈现应用 UI,并运行真实的登录/MFA 流程。
架构
- MCP 服务(
src/server.ts)— 通过 stdio 运行的 Node.js 服务,注册工具和 UI 资源 - React UI(
src/app.tsx)— 在主机的沙箱 iframe 中呈现,通过postMessage通信 - garmin-connect(
packages/garmin-connect/)— 用于 Garmin Connect OAuth 和 API 的 TypeScript 客户端库
提交规范
提交必须遵循 Conventional Commits 格式:
type(optional-scope): description
允许的类型:feat、fix、chore、docs、ci、refactor、test
免责声明
Run Coach 是一个独立的开源项目,与 Garmin Ltd. 或其子公司无关联,也未获得其认可或赞助。Garmin 和 Garmin Connect 是 Garmin Ltd. 或其子公司的商标;此处仅用于说明兼容性。此应用使用非官方的 Garmin Connect API,并通过您自己的账户访问。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。