mcpField
R
Run Coach

Run Coach

本地服务
github.com健康医疗16今天更新

关于 Run Coach

Run Coach 将 Garmin 数据连接到 Claude Desktop、ChatGPT 桌面应用和其他 MCP 客户端,并以交互式图表呈现健康与训练信息。这个非官方应用支持每日简报、趋势分析、训练回顾和计划;它在本机运行,数据直接发送至 Garmin Connect。

主要功能

  1. 01查看每日健康与训练简报
  2. 02比较健身指标趋势
  3. 03分析训练分段和心率区间
  4. 04创建并安排 Garmin 训练
  5. 05在支持的客户端中显示交互式图表

适用场景

  1. 01在每日简报中查看准备状态、睡眠和 HRV
  2. 02比较数周或数月的训练指标
  3. 03训练后检查分段数据和训练效果
  4. 04规划一周训练并安排训练项目

MCP 相关

MCP 服务向 MCP 客户端提供 Garmin Connect 数据和训练工具,并为支持 MCP Apps 的客户端提供 UI 资源。登录通过应用界面处理,令牌保存在本机。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"chenhunghan-garmin-mcp-app": {
"command": "npx",
"args": [
"-y",
"garmin-mcp-app"
]
}
}
}
启动命令npx -y garmin-mcp-app

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmgarmin-mcp-app0.9.1

工具

67

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

跑步教练 — Garmin MCP 应用

将 Garmin 手表连接到 Claude Desktop 或 ChatGPT,探索交互式图表。

非官方产品,与 Garmin 无关,也未获其认可。Garmin 是 Garmin Ltd. 的商标。

演示

安装

Claude Desktop
  1. 从 Releases 下载最新的 .mcpb 文件
  2. 将文件拖入 Claude Desktop 进行安装
  3. 向 Claude 询问任何有关 Garmin 数据的问题——首次使用时,Claude 会提示你登录
ChatGPT(桌面应用)

需要 Node.js 20+。

  1. 在 ChatGPT 桌面应用中,打开 Settings → Plugins → Add marketplace
  2. Source: chenhunghan/garmin-mcp-app(将 Git ref 和 sparse paths 留空)→ Add marketplace
  3. 重启应用,打开 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 也知道你正在查看什么。

每日简报 — “我今天状态如何?”

每日简报:训练准备度为 72,附有影响因素;还有睡眠、HRV、身体电量、静息心率、压力和步数的卡片,每项都与个人基线进行比较

表现仪表板 — “今年我的体能趋势如何?”

表现仪表板在 12 周和 1 年视图之间切换:静息心率、带有基线范围的 HRV、VO2 max 和睡眠评分的迷你趋势图

每周训练计划 — “为我安排本周的训练”(或使用 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,并通过您自己的账户访问。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。