garmin-mcp
garmin-mcp
Cloudflare Workers(無料プラン)上で動作するGarmin Connect向けリモートMCPサーバー。taxuspt/garmin_mcpの完全なTypeScript移植版です。全138ツールに加え、garmin_getパススルー(合計139)と、5つのワークアウトテンプレート/参照用MCPリソースを備えています。
モジュール:アクティビティ管理(21)、健康とウェルネス(29)、トレーニングとパフォーマンス(15)、ワークアウト+ビルダー(19)、栄養(14)、チャレンジ/デバイス/ギア(18)、体重/ボディ/女性の健康/コース(14)、FITファイル分析(4)、ユーザープロフィール(4)、パススルー(1)。
認証:このサーバーはOAuth 2.1認可サーバーです(@cloudflare/workers-oauth-provider による)。MCPクライアントに追加すると、ブラウザページが開き、Garminのメールアドレスとパスワード(アカウントが2FAを使用している場合はMFAコードも)を入力します。WorkerはGarminのSSOウェブウィジェットログインフローをサーバーサイドで実行します。これはデータセンターIPからボットブロックされない唯一のログイン経路です。これにより、長期有効(約1年)のOAuth1トークンを取得し、認証情報を破棄して、grant内に暗号化してそのトークンのみを保存します。その後、要求に応じて connectapi.garmin.com 用の短期有効なOAuth2ベアラトークンを発行します。Garminがサーバーサイドのログインをブロックし始めた場合に備えて、「トークンを貼り付け」フォールバック(下記のローカルスクリプト経由)が詳細トグルの背後に用意されています。
デプロイ
npm installnpx wrangler kv namespace create OAUTH_KV— そのIDをwrangler.jsoncに貼り付けますnpx wrangler deploy
Related MCP server: Garmin Open MCP
クライアントを接続する
claude mcp add garmin --transport http https://garmin-mcp.<your-subdomain>.workers.dev/mcpClaude Codeはブラウザで認可ページを開きます。その2つの手順に従ってください。claude.aiウェブ版:Settings → Connectors → Add custom connector で同じURLを指定します。Claude Desktopや他のstdio専用クライアントでは、mcp-remote がOAuthフローも処理します。
アクセスはOAuthのみです。rawヘッダーによる経路はありません。すべての /mcp リクエストはプロバイダーが発行したアクセストークンで保護され、アクセストークンはログインフローを完了した場合にのみ発行されます。
自分のアカウントにロックする
wrangler.jsonc の OWNER_GARMIN_IDS に、あなたのGarmin displayName(get_user_profile が返す値)を設定します。これはカンマ区切りの許可リストです。リストにないGarminアカウントでのログインは認可ステップで拒否されるため、見知らぬ人が自分の有効なGarmin認証情報を使っても、あなたのデプロイメントを利用することはできません。空のままにすると、任意のGarminアカウントを許可します。
オリジナルからの変更点(リモート/サーバーレス適応)
download_activity_fileは、ローカルディスクに書き込む代わりに、ファイル内容をインラインで返します(fitはbase64、gpx/tcx/csvはテキスト、サイズ上限あり)。set_fit_download_dirは、ドキュメント上はno-op(何もしない操作)です。upload_courseはローカルファイルパスの代わりにgpx_content(GPX XMLテキスト)を受け取ります。get_activity_fit_dataは session/laps/records とパワー分析(NP、VI、パワーカーブ、W/kg)をカバーします。オリジナルのDi2シフト、登坂検出、HRV分析は移植されていません。無料プランのサブリクエスト予算(1回の呼び出しあたり約50回):
get_training_load_trendは45日間(以前は90日)、get_power_duration_curveは15アクティビティ(以前は20)に制限されています。get_hrv_trendはレンジエンドポイントを1回の呼び出しで使用します。目標/歩数/月経のページネーションループにも上限があります。ツールは事前にシリアライズされた文字列ではなくJSONオブジェクトを返します。エラーはMCPツールエラーとして表示されます。
注意事項
GarminトークンはWorkers KV内のgrantに暗号化して保存されます。期限が切れると(約1年)、ツール呼び出しが失敗し始めます。クライアントでサーバーを再認証して、フローを再度実行してください。
アクセストークンはベアラ資格情報です。有効なトークンを保持している人は、期限が切れるまであなたのデータにアクセスできます。したがって、セキュリティはMCPクライアントが保存したトークンを秘密に保つことに依存しています。
ローカル開発:
npm run devを実行し、クライアントをhttp://localhost:8787/mcpに向けます。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePersonal MCP server for interacting with your Garmin Connect data. Exposes 62 tools across 11 domains including activities, health, training, and workouts.1MIT
- AlicenseAqualityBmaintenanceUnofficial MCP server bridging Garmin Connect to MCP clients and ChatGPT, providing tools to access health data, activities, and trends via a self-hosted API.11MIT
- AlicenseAqualityBmaintenanceMCP server for reading and querying Garmin Connect data, including activities, strength history, recovery, trends, and optionally creating workouts.12MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Garmin Connect that enables users to access and manage their personal health and fitness data, including daily summaries, heart rate, sleep, HRV, stress, body composition, activities, and training readiness, with secure per-user authentication.Apache 2.0
Related MCP Connectors
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rohankmr414/garmin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server