
Garmin Connect
io.github.DynamicsNinja由 GitHub 帳號 DynamicsNinja 發布v0.11.0更新於 Nov 1, 2026
Unofficial Garmin Connect access: sleep, HRV, training, activities, workouts and weight.
概覽
非官方 Garmin Connect 連接器,讓助理讀取睡眠、HRV、活動與訓練指標,並建立、安排訓練並推送到 Garmin 手錶。
- 可以做什麼
- 讀取健康與指標資料:睡眠、HRV、壓力、Body Battery、訓練準備度與狀態、比賽預測、整日彙總
- 列出、搜尋、檢視、下載與上傳活動,並記錄 RPE 與感受
- 建立訓練:預覽、建立、更新、搜尋動作,以及列出、安排、傳送到手錶和刪除
- 管理裝備、路線、比賽行事曆、裝置、徽章、體重紀錄、體重目標與飲食紀錄
- 透過瀏覽器頁面登入 Garmin,支援 MFA
- 適用情境
- 適合想用對話方式安排跑步、騎車、游泳或肌力訓練,並回顧訓練歷史、睡眠與恢復趨勢,而不必開啟 Garmin Connect 的運動愛好者與教練。
- 執行需求
- 需要 Garmin Connect 帳號,並在瀏覽器中完成 OAuth 登入(支援 MFA)。託管端點無需安裝;本機 npm 套件需要 Node.js 18 或更新版本,並需在終端機登入一次,或提供 GARMIN_EMAIL 與 GARMIN_PASSWORD。選用設定:GARMIN_MCP_TOKEN_DIR、GARMIN_MCP_DOWNLOAD_DIR、GARMIN_MCP_GROUPS、GARMIN_MCP_ENABLE_GRAPHQL。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Garmin Connect,將其新增到工作區。
- 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
- 為需要使用其工具的對話啟用該服務。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
交給代理程式安裝
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.DynamicsNinja%2Fgarminconnect/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。其他 MCP 客戶端
把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。
{
"mcpServers": {
"garmin-connect": {
"type": "http",
"url": "https://garmin.ficdev.xyz/mcp"
}
}
}README
@dynamicsninja/garminconnect-mcp
Talk to Claude to create Garmin workouts, and read or manage the rest of your Garmin Connect data, through an MCP server built on garminconnect-js.
"Make me a 6×400 m session at 5k pace with 2-minute jog recoveries, put it on Thursday, and send it to my watch."
Claude previews the workout, waits for your OK, saves it to your Garmin workout library, schedules it, and pushes it to your device.
Unofficial: not made by, or affiliated with, Garmin.
Use it without installing
A hosted copy runs at https://garmin.ficdev.xyz/mcp. You sign in to Garmin once in a browser
window and get the same tools, with nothing to install.
- claude.ai: Settings, Connectors, Add custom connector. Paste the URL and sign in to Garmin in the window that opens. It then shows up in Claude Desktop and mobile on the same account.
- Claude Code:
claude mcp add --transport http garmin https://garmin.ficdev.xyz/mcp - Other MCP clients: add a streamable-HTTP server with that URL.
How it differs from the local server:
- There is no
sign_in_to_garmintool. You sign in when you add the connector. - Upload tools take
filenameandcontent, plusencoding: "base64"for.fitfiles. The cap is 10 MB. - Downloads come back in the chat instead of being saved to a folder. The cap is 5 MB.
To disconnect, remove the connector. You can also tick "Disconnect my other Garmin connections" on your next sign-in. Privacy details are in PRIVACY.md.
What you need
- Node.js 18 or newer (
node --versionto check). - A Garmin Connect account.
- Claude Desktop, or any other MCP client (see Other MCP clients).
Set up
Easiest: the Claude Desktop Extension
- Download
garminconnect-mcp-<version>.mcpbfrom the latest release. - Double-click it (or drag it onto Claude Desktop's Settings → Extensions) and choose Install.
- Ask Claude something about your Garmin data. The first time, Claude opens a Garmin sign-in page in your browser; sign in there (with your MFA code if you use one) and tell Claude you're done.
Optional settings (tool groups, download folder) are under Settings → Extensions → Garmin Connect.
Other ways to install: npm
1. Install
Install it once rather than running it through npx: Claude Desktop starts several copies of a
server at the same moment, and parallel npx installs into one cache folder can break each other
(ERR_MODULE_NOT_FOUND … ajv/dist/2020.js).
2. Sign in to Garmin
In a terminal (your password never passes through Claude):
It asks for your Garmin email (or, on older accounts, your username), password and, if you use it, your MFA code. The session is saved to
~/.garminconnect-mcp/tokens and renews itself as long as it is used at least once every 30 days.
3. Add it to Claude Desktop
Settings → Developer → Edit Config, and add a garmin entry to claude_desktop_config.json.
Point node at the installed server. To find the path, run npm root -g and append
/@dynamicsninja/garminconnect-mcp/dist/cli.js.
Windows (use forward slashes):
macOS / Linux:
If node itself is not found (common with nvm), use its full path from which node as command.
4. Restart Claude Desktop
Quit it completely: tray / menu-bar icon → Quit. Closing the window leaves it running, and it will not read the new config. Start it again, open a new chat, and the Garmin tools appear under the tools icon in the message box.
Using it
Just ask. Some things to try:
- "Create a strength workout: 3 rounds of 10 back squats at 60 kg, 12 push-ups and a 1-minute plank, 90 s rest between rounds."
- "Build a swim set for a 25 m pool: 400 easy, 8×100 free on 15 s rest, 200 cool-down."
- "Schedule that workout for Thursday and send it to my watch."
- "How did I sleep last night, and what's my training readiness today?"
- "Summarise my last run: distance, pace, average heart rate and training effect."
- "What are my race predictions, and how has my HRV trended this month?"
- "Find my runs over 10 km since June, longest first, and compare their average heart rate."
Workouts are always previewed first. Claude shows the workout in readable form (steps, targets, paces in /km and /mi) and saves nothing until you confirm. Exercise names are checked against Garmin's catalogue, and a mistake in a workout comes back to Claude with exactly where it is, so it can fix it.
Claude Desktop asks before each tool call. You can allow a tool once or always. Tools that delete or overwrite data (deleting activities, workouts, gear, weigh-ins, and so on) are marked destructive, and Claude is told to confirm with you before using them.
What it can do
sign_in_to_garmin: signs you in through a page that opens in your browser, MFA included, with no terminal needed. See Easiest: the Claude Desktop Extension above.- Workouts:
preview_workout,create_workout,update_workout,search_exercises, for running, cycling, swimming, strength, HIIT, yoga, pilates, mobility, cardio, rucking and multi-sport; plus listing, scheduling, sending to your watch and deleting. - Everything else in garminconnect-js: sleep, HRV, stress, Body Battery, whole-day summaries over up to a year at a time, training readiness and status, race predictions, activities (list, search by type, distance, duration, power, dates, text or place, details, the workout done, download, upload files, RPE and feel), gear, courses, race calendar, devices, badges, weigh-ins and weight goals, food logging (with Garmin Connect+), and more. One tool per library method.
Not exposed: logout (it would delete your saved session), the raw-JSON workout uploads (the
checked create_workout replaces them), and the raw GraphQL passthrough unless you opt in.
Settings (environment variables)
Set them under "env" in the config entry, for example:
GARMIN_EMAIL (an email or, on older accounts, a username) and GARMIN_PASSWORD, when both are set, work like the extension's email and password
settings: the server signs in by itself when there is no saved session (not with MFA).
If you change GARMIN_MCP_TOKEN_DIR, sign in with the same value
(GARMIN_MCP_TOKEN_DIR=/path/to/dir garminconnect-mcp login), or the server won't find your
session.
Troubleshooting
- The tools don't appear. Make sure Claude Desktop was fully quit and restarted (step 4). Then
Settings → Developer →
garminshows the server's status and a link to its log. - "Not logged in to Garmin" or "session expired": ask Claude to sign in again (it calls
sign_in_to_garmin), or rungarminconnect-mcp loginagain. The running server picks up the new session on the next request; no restart needed. - Sign-in page didn't open: Claude's reply includes the link; open it in any browser on this computer. It expires after 15 minutes; ask Claude to sign in again.
ERR_MODULE_NOT_FOUNDafter tryingnpx: delete the_npxfolder in your npm cache (npm config get cacheshows where) and use the global install above.- "Garmin is rate limiting requests": Garmin throttles bursts of calls. Wait a minute and ask again.
- HTTP 412 when saving anything (EU accounts): grant upload consent in Garmin Connect's settings once; until then Garmin refuses every write.
- Very detailed activity data looks cut off: a single tool result is capped at 100,000
characters, and per-second activity data (
get_activity_details) is usually larger. Ask for a summary instead, or download the activity file (download_activity) and open it elsewhere.
Updating
then quit and restart Claude Desktop. Your saved session is kept.
Other MCP clients
Any client that can start a stdio server works. The command is garminconnect-mcp (or
node …/dist/cli.js). For example, in Claude Code:
Good to know
- Dates are calendar dates in UTC (
YYYY-MM-DD). - Everything runs on your machine. Your Garmin session stays in your token folder and is sent only to Garmin. See PRIVACY.md for the full picture.
- Garmin Connect's API is unofficial and can change. This server is released in lockstep with garminconnect-js, and each release is tested against the library version it contains.
來源:mcp/README.md,提交 380eec4
工具
0版本歷史
4- v0.11.0最新Nov 1, 2026
- v0.10.0Oct 23, 2026
- v0.9.4Oct 15, 2026
- v0.9.2Oct 13, 2026
評分
已滿足適用檢查項的 85%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通必需25 分
- 已宣告認證方式必需10 分
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分