Garmin Workouts MCP

io.github.pranciskus由 GitHub 帳號 pranciskus 發布v0.1.2更新於 Oct 24, 2026

Manage Garmin Connect workouts, including strength workouts with mapped exercises.

已驗證STDIO僅桌面位置與生活效率與工作流

概覽

AI 產生的概覽

一個本機 MCP 伺服器,讓助理建立、驗證、預覽、上傳並管理 Garmin Connect 訓練計畫,著重於重量訓練。

可以做什麼
建立並預覽 Garmin 訓練計畫資料,包含帶次數與動作對應的重量訓練步驟,再進行上傳。驗證訓練計畫結構、解析支援的重量訓練動作,或查看輸入結構說明。列出、取得、刪除與安排訓練計畫,並查看 Garmin Connect 中的行事曆與活動資料。上傳訓練計畫,支援步行等運動類型。
適用情境
適合讓助理草擬或調整結構化的 Garmin 訓練計畫,尤其是帶動作對應的重量訓練,並在檢查資料後推送到 Garmin Connect。也適合查看、安排或清理既有的訓練計畫與行事曆項目。
執行需求
以本機 stdio 程序執行,通常使用已發布的 Docker 映像。涉及 Garmin 的工具需要 Garmin Connect 帳號,透過 GARMIN_EMAIL 與 GARMIN_PASSWORD 環境變數提供;沒有憑證也能啟動,預覽與結構查看工具無需憑證。帳號相關工具需要連線至 Garmin Connect 的網路存取。
安裝前請注意
需要以環境變數提供 Garmin Connect 電子郵件與密碼,請妥善保管,避免出現在日誌或共用設定中。上傳、刪除與安排工具會變更 Garmin 帳號中的資料,建議先預覽與驗證。憑證會傳送給第三方 Garmin Connect。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Garmin Workouts MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Garmin Workouts MCP

garmin-workouts-mcp is a standalone MCP server for Garmin Connect workouts.

It is intended as a focused extension for workflows that need a bit more structure around Garmin workout payloads, especially strength training.

This project is packaged as a stdio MCP server and can be published as an OCI image for MCP registries and Glama deployment. It is not a standalone public HTTP MCP endpoint.

[Garmin Workouts MCP server]

Additions

  • Supports Garmin strength workout steps with reps end conditions.
  • Supports exercise metadata via explicit Garmin enums or friendly aliases.
  • Adds preview_workout_payload so payloads can be inspected before upload.
  • Adds validate_workout for early schema and mapping errors.
  • Adds resolve_supported_strength_exercise for quick mapping checks.
  • Adds get_workout_input_schema for machine-readable client integration.
  • Includes walking as a supported sport type, which is also reflected in the prompt/schema.
  • Keeps the familiar list/get/delete/schedule/calendar/activity tools.

Environment

Garmin-backed tools authenticate lazily when they are called:

  • Authentication path: GARMIN_EMAIL and GARMIN_PASSWORD

The server can start without credentials. Tools that do not talk to Garmin, such as payload preview and schema inspection, still work without secrets.

Workout Input

The upload and preview tools accept a JSON object shaped like this:

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    }  ]}

For strength exercises, either pass a friendly alias:

json
{ "exercise": "t bar row" }

or explicit Garmin enums:

json
{  "exercise": {    "category": "ROW",    "exerciseName": "T_BAR_ROW"  }}

You can also inspect the accepted structure programmatically through get_workout_input_schema, or resolve likely Garmin strength mappings with resolve_supported_strength_exercise.

Development

Run tests in Docker Compose:

bash
docker compose run --rm tests

Build the runtime image:

bash
docker build -t garmin-workouts-mcp:local .

Smoke test the stdio server startup without Garmin credentials:

bash
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

Publishing

The intended OCI image location is:

text
ghcr.io/pranciskus/garmin-workouts-mcp

Registry metadata lives in server.json. The OCI image carries the required label:

text
io.modelcontextprotocol.server.name=io.github.pranciskus/garmin-workouts-mcp

Glama ownership metadata lives in glama.json. It declares the GitHub maintainer account that can claim and manage the Glama listing.

來源:README.md,提交 106b5b9

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分