关于 Garmin Workouts MCP
Garmin Workouts MCP 是用于 Garmin Connect 训练的独立 MCP 服务,重点支持结构化力量训练及练习映射。它通过 stdio 提供服务,不是公开的 HTTP MCP 端点。
主要功能
- 01创建力量训练步骤并支持次数条件
- 02支持 Garmin 枚举和友好别名映射
- 03上传前预览训练数据
- 04验证训练结构和练习映射
- 05查询训练输入架构
- 06列出、获取、删除和安排训练
适用场景
- 01为 Garmin Connect 准备力量训练
- 02检查上传前的训练数据载荷
- 03确认力量练习名称的 Garmin 映射
- 04查看训练日历和活动
MCP 相关
它是通过 stdio 运行的 MCP 服务,向 MCP 客户端提供训练创建与预览、验证、映射查询,以及训练列表、日历和活动等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e GARMIN_EMAIL -e GARMIN_PASSWORD ghcr.io/pranciskus/garmin-workouts-mcp:0.1.2GARMIN_EMAIL密钥Garmin Connect account email.GARMIN_PASSWORD密钥Garmin Connect account password.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/pranciskus/garmin-workouts-mcp:0.1.2stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Garmin Workouts MCP
garmin-workouts-mcp 是一个用于 Garmin Connect 训练的独立 MCP 服务。
它旨在作为专用扩展,为需要对 Garmin 训练数据进行更多结构化处理的工作流提供支持,尤其是力量训练。
此项目打包为 stdio MCP 服务,可发布为 OCI 镜像,供 MCP 注册表和 Glama 部署。它不是独立的公共 HTTP MCP 端点。
新增功能
- 支持 Garmin 力量训练步骤的
reps结束条件。 - 支持通过显式 Garmin 枚举值或易记别名设置运动元数据。
- 新增
preview_workout_payload,可在上传前检查数据。 - 新增
validate_workout,用于提前发现架构和映射错误。 - 新增
resolve_supported_strength_exercise,可快速检查映射。 - 新增
get_workout_input_schema,用于机器可读的客户端集成。 - 将
walking纳入支持的运动类型,并同步更新提示词/架构。 - 保留熟悉的列表、获取、删除、安排、日历和活动工具。
环境
基于 Garmin 的工具会在调用时按需进行身份验证:
- 身份验证方式:
GARMIN_EMAIL和GARMIN_PASSWORD
服务可以在没有凭据的情况下启动。不与 Garmin 通信的工具(例如数据预览和架构检查)仍可在没有密钥的情况下使用。
训练输入
上传和预览工具接受如下结构的 JSON 对象:
{
"name": "Upper Day",
"type": "strength",
"steps": [
{
"stepType": "warmup",
"endConditionType": "lap.button",
"stepDescription": "General warm-up"
},
{
"stepType": "interval",
"exercise": "incline db press",
"endConditionType": "reps",
"stepReps": 8,
"stepDescription": "8-10 reps"
},
{
"stepType": "rest",
"endConditionType": "time",
"stepDuration": 120
}
]
}
对于力量训练动作,可以传入易记别名:
{ "exercise": "t bar row" }
也可以传入显式 Garmin 枚举值:
{
"exercise": {
"category": "ROW",
"exerciseName": "T_BAR_ROW"
}
}
你也可以通过 get_workout_input_schema 以编程方式检查接受的结构,或使用 resolve_supported_strength_exercise 查询可能的 Garmin 力量训练映射。
开发
在 Docker Compose 中运行测试:
docker compose run --rm tests
构建运行时镜像:
docker build -t garmin-workouts-mcp:local .
在没有 Garmin 凭据的情况下,对 stdio 服务启动进行冒烟测试:
python - <<'PY'
import subprocess
proc = subprocess.Popen(
["bash", "-lc", "tail -f /dev/null | docker run --rm -i garmin-workouts-mcp:local"]
)
try:
proc.wait(timeout=5)
print(f"container exited early with code {proc.returncode}")
finally:
if proc.poll() is None:
proc.terminate()
proc.wait()
print("container stayed up for 5 seconds")
PY
发布
预期的 OCI 镜像位置:
ghcr.io/pranciskus/garmin-workouts-mcp
注册表元数据位于 server.json 中。OCI 镜像包含所需标签:
io.modelcontextprotocol.server.name=io.github.pranciskus/garmin-workouts-mcp
Glama 所有权元数据位于 glama.json 中。该文件声明了可认领和管理 Glama 条目的 GitHub 维护者账号。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。