SuperAPI AI 工具集

trainbud

TrainBud 是一个开源 MCP 服务器,用于将 Garmin Connect 健身数据连接到 Claude、Cursor 等 AI 助手。用户可以用自然语言询问训练、睡眠、心率、恢复和身体成分等信息,数据在本地处理,凭据保存在本地 .env 文件中。它提供本地 SQLite 缓存、仪表盘、语音交互以及 Garmin 手表 Connect IQ 小部件,支持 Windows、macOS、Linux(需 Node.js 22.12+)。该项目为非官方社区项目,与 Garmin Ltd. 无关联。

访问官网

工具介绍

TrainBud 是一个开源 MCP(Model Context Protocol)服务器,旨在将 Garmin Connect 的健身数据连接到 Claude、Cursor 及其他兼容 MCP 的 AI 助手。用户可以用自然语言询问训练、睡眠、心率、恢复和身体成分等信息,所有数据在本地机器上处理,凭据仅保存在本地 .env 文件中。

用途

TrainBud 让用户通过 AI 助手以对话方式查询自己的 Garmin 训练数据。连接 MCP 客户端后,可以询问诸如“我今天做了什么?”“这周睡眠怎么样?”“我恢复得足够明天高强度训练吗?”“我的静息心率是否呈下降趋势?”等问题。

主要能力

  • 本地优先:使用 SQLite 缓存,会话令牌存储在 .trainbud/ 目录,数据缓存在本机。
  • 跨平台:支持 Windows、macOS、Linux,需要 Node.js 22.12+。
  • 兼容任意 MCP 客户端:如 Claude Desktop、Cursor 及其他 stdio 兼容客户端。
  • 智能获取:批量 API 调用,会话过期时自动重新认证。
  • 仪表盘:trainbud serve 在 /dashboard 提供手机优先的仪表盘,展示当日突出指标、本周与上周对比、静息心率和睡眠与 30 天中位数的对比,数据来自本地历史存储,即使 Connect 会话过期也能即时显示。
  • 用量监控:仪表盘显示每次调用的 token 和成本、月度累计及 30 天图表。
  • Garmin 手表小部件(Connect IQ):通过 ciq/ 中的 Connect IQ 小部件在 Garmin 手表上查看恢复、睡眠、活动、压力和 VO2 max。需要 trainbud serve 运行并配合 HTTPS 隧道。
  • 语音交互(/voice):在手机上按住按钮提问,语音回答。Android/Chrome 使用浏览器语音识别(免费);iPhone/Safari 通过 Groq 服务端转录(whisper-large-v3-turbo,约 $0.04/小时音频)。
  • 始终在线:可注册计划任务和看门狗,使服务器和隧道在重启后自动恢复。
  • Docker 支持:提供已发布镜像 ghcr.io/zsadigzade/trainbud,也可自行构建。

使用方式

  1. 安装:需要 Node 22.12+。可通过 npx trainbud <command> 直接运行,或 npm install -g trainbud 全局安装,或在克隆仓库后运行 npm link。
  2. 设置向导:引导完成凭据、认证以及连接 Cursor 或 Claude Desktop,无需手动编辑 MCP 配置。
  3. 连接 Claude Desktop:编辑 claude_desktop_config.json(Windows: %APPDATA%\Claude\claude_desktop_config.json;macOS: ~/Library/Application Support/Claude/claude_desktop_config.json),将客户端指向 trainbud 命令。
  4. Claude Code 插件:可作为 Claude Code 插件安装,一步包含技能和 MCP 服务器。
  5. 仪表盘:运行 trainbud serve 后访问 /dashboard,首次通过 /dashboard?token=YOUR_API_KEY 获取会话 cookie。
  6. 手表小部件:启动服务器和隧道(trainbud serve cloudflared tunnel --url http://127.0.0.1:3847),构建并侧载小部件,在 Garmin Connect Mobile 中设置服务器 URL,然后在手表上打开小部件获取配对码并在仪表盘批准。
  7. 语音:打开 https://YOUR-HOST/voice?token=YOUR_API_KEY 一次,换取 cookie 后重定向到干净 URL。
  8. Docker:挂载卷到 /app/.trainbud 以保留 SQLite 历史、缓存会话和日志。作为 MCP 服务器时使用 -i 标志;作为 HTTP 服务器时设置 TRAINBUD_HOST=0.0.0.0。

适用场景

  • 希望用自然语言查询个人 Garmin 训练数据的运动爱好者。
  • 需要将 Garmin 数据集成到 AI 助手工作流的用户。
  • 关注恢复、睡眠、心率变异性等指标的健身人群。
  • 希望在 Garmin 手表上快速查看关键指标的跑者或骑行者。

限制

  • 非官方项目:与 Garmin Ltd. 无关联,使用非官方 garmin-connect npm 包,Garmin 可能随时更改 API。
  • 不支持 MFA:底层库不支持多因素认证,需禁用 MFA 或使用应用专用密码。
  • AI 功能需自备密钥:AI 功能运行在用户自己的 Anthropic 密钥上,费用由用户承担。
  • 非托管服务:没有 TrainBud 账户或服务器,需自行在本地运行。
  • 语音非手表功能:Connect IQ 不向小部件暴露麦克风或扬声器;移动浏览器在标签页后台时会暂停麦克风。
  • 安全注意:会话令牌 .trainbud/session.json 与密码同等敏感;服务器默认绑定 127.0.0.1,仅当指向隧道时才可从互联网访问。
  • 许可证:MIT。