原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Garmin Connect

作者:DynamicsNinja版本 0.11.0i★ –i在云端运行
注册名称io.github.DynamicsNinja/garminconnect

安装

概览

作者提供的说明(英文原文)

Unofficial Garmin Connect access: sleep, HRV, training, activities, workouts and weight.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

你需要

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

适用于网页版、桌面版和手机版 Claude:

  1. 打开 Settings → Connectors
  2. 点击 Add custom connector
  3. 粘贴下面的地址,然后点击 Add
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Add2https://…3
https://garmin.ficdev.xyz/mcp

在终端中运行这条命令

claude mcp add --transport http garminconnect https://garmin.ficdev.xyz/mcp

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "garminconnect": {
      "url": "https://garmin.ficdev.xyz/mcp"
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "garminconnect": {
      "type": "http",
      "url": "https://garmin.ficdev.xyz/mcp"
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

ChatGPT 只能连接互联网上的服务器:

  1. 打开网页版 ChatGPT → Settings → Connectors (Apps)
  2. 点击 Create 或 Add(部分套餐需要先在 Advanced 中开启 Developer mode)
  3. 粘贴下面的地址,起个名字,然后保存
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Create2https://…3
https://garmin.ficdev.xyz/mcp

菜单名称可能因套餐和版本不同而略有差异。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

服务器要求先登录,才会列出它的工具。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 DynamicsNinja 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • ✓ 通过

    端点有响应

    在 942 毫秒内响应(HTTP 401)

  • ✓ 通过

    使用 OAuth 登录

    声明支持 OAuth 登录,你的 AI 应用可以带你去登录

  • … 尚未检查

    工具描述中没有隐藏指令

    尚未检查;我们会在检查端点时读取工具列表

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 32583 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 32583 个服务器的 84% 更新
  • 基础检查结果等于或优于此分类中其他 32583 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Garmin Connect 安全吗?

它在 3 项适用的基础检查中通过了 3 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.11.0)于6天前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, sync. labs

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

作者:formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

在你的电脑上运行★ 440MIT14个月前更新
安装

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

在云端运行★ 211昨天更新
安装

sync. labs

作者:synchronicity-labs

Lipsync videos, dub them into other languages, make talking videos and open sync. Studio.

电脑或云端今天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

@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_garmin tool. You sign in when you add the connector.
  • Upload tools take filename and content, plus encoding: "base64" for .fit files. 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 --version to check).
  • A Garmin Connect account.
  • Claude Desktop, or any other MCP client (see Other MCP clients).

Set up

Easiest: the Claude Desktop Extension
  1. Download garminconnect-mcp- .mcpb from the latest release.
  2. Double-click it (or drag it onto Claude Desktop's Settings → Extensions) and choose Install.
  3. 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
npm install -g @dynamicsninja/garminconnect-mcp

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):

garminconnect-mcp login

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):

{

"mcpServers": { "garmin": { "command": "node", "args": ["C:/Users/ /AppData/Roaming/npm/node_modules/@dynamicsninja/garminconnect-mcp/dist/cli.js"] } } }

macOS / Linux:

{

"mcpServers": { "garmin": { "command": "node", "args": ["/usr/local/lib/node_modules/@dynamicsninja/garminconnect-mcp/dist/cli.js"] } } }

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)

VariableDefaultMeaning
GARMIN_MCP_TOKEN_DIR~/.garminconnect-mcp/tokensWhere the session is saved
GARMIN_MCP_DOWNLOAD_DIR~/Downloads/garminWhere downloaded files (FIT, GPX, …) go
GARMIN_MCP_GROUPSallComma-separated tool groups: wellness, activities, metrics, workouts, gear, courses, calendar-events, devices, badges-challenges, body-composition-weight, womens-health, golf, profile-and-misc. Matched case-insensitively; an unknown name is ignored (and if none you list are valid, everything loads). The workout-builder tools are always on. Fewer groups means less of Claude's context used.
GARMIN_MCP_ENABLE_GRAPHQLoffSet to 1 to expose query_garmin_graphql

Set them under "env" in the config entry, for example:

"garmin": {

"command": "node", "args": ["…/dist/cli.js"], "env": { "GARMIN_MCP_GROUPS": "workouts,metrics,wellness,activities" } }

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 → garmin shows 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 run garminconnect-mcp login again. 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_FOUND` after trying npx: delete the _npx folder in your npm cache (npm config get cache shows 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

npm install -g @dynamicsninja/garminconnect-mcp@latest

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:

claude mcp add garmin -- garminconnect-mcp

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.
问 PopNx