Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Unofficial Garmin Connect access: sleep, HRV, training, activities, workouts and weight.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://garmin.ficdev.xyz/mcpターミナルでこれを実行します
claude mcp add --transport http garminconnect https://garmin.ficdev.xyz/mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"garminconnect": {
"url": "https://garmin.ficdev.xyz/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"garminconnect": {
"type": "http",
"url": "https://garmin.ficdev.xyz/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://garmin.ficdev.xyz/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーは、ツール一覧を表示する前にサインインを求めます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント DynamicsNinja で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
942ミリ秒で応答(HTTP 401)
OAuthでのサインインに対応しているため、AIアプリがログイン画面へ案内してくれます
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。
GitHubリポジトリの最終更新は–、最新バージョン(0.11.0)がレジストリに届いたのは6 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Python MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Local-only Python MCP server for the Files.com API.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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.
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 mcp add --transport http garmin https://garmin.ficdev.xyz/mcpHow it differs from the local server:
sign_in_to_garmin tool. You sign in when you add the connector.filename and content, plus encoding: "base64" for .fit files. The cap is 10 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.
node --version to check).garminconnect-mcp- .mcpb from the latest release.Optional settings (tool groups, download folder) are under Settings → Extensions → Garmin Connect.
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).
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.
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.
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.
Just ask. Some things to try:
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.
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.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.
| Variable | Default | Meaning |
|---|---|---|
GARMIN_MCP_TOKEN_DIR | ~/.garminconnect-mcp/tokens | Where the session is saved |
GARMIN_MCP_DOWNLOAD_DIR | ~/Downloads/garmin | Where downloaded files (FIT, GPX, …) go |
GARMIN_MCP_GROUPS | all | Comma-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_GRAPHQL | off | Set 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.
garmin shows the server's status and a link to its log.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.npx: delete the _npx folder in your npm cache (npm config get cache shows where) and use the global install above.get_activity_details) is usually larger. Ask for a summary instead, or download the activity file (download_activity) and open it elsewhere.npm install -g @dynamicsninja/garminconnect-mcp@latest
then quit and restart Claude Desktop. Your saved session is kept.
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
YYYY-MM-DD).