mcpField
G
Garmin Connect

Garmin Connect

リモート
garmin.ficdev.xyzヘルスケア22 日前に更新
リポジトリ公式サイト

Garmin Connect について

Garmin Connectは、MCPクライアント経由でGarminデータを読み取り、管理し、ワークアウトを作成したい人向けの非公式MCPサーバーです。健康指標やアクティビティ、予定設定を扱い、保存前にワークアウトをプレビューして確認します。

主な機能

  1. 01睡眠、HRV、ストレス、トレーニング指標の取得
  2. 02アクティビティの検索、確認、管理
  3. 03プレビュー付きワークアウト作成と予定設定
  4. 04ワークアウトをGarminデバイスへ送信
  5. 05ギア、コース、デバイス、体重データの管理

活用シーン

  1. 01睡眠とトレーニングレディネスの確認
  2. 02距離、ペース、心拍数でランを比較
  3. 03ワークアウトを作成して日程を設定
  4. 04アクティビティファイルのアップロードやダウンロード

MCP 対応

MCPクライアントにGarmin Connectのデータとワークアウト管理ツールを提供します。stdioでローカル実行でき、ホスト型のストリーミングHTTPサーバーも利用できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://garmin.ficdev.xyz/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

@dynamicsninja/garminconnect-mcp

Claude と会話しながら Garmin のワークアウトを作成したり、garminconnect-js をベースに構築された MCP サーバーを通じて、その他の Garmin Connect データを読み取ったり管理したりできます。

「5 km のペースで 400 m を6本、2分間のジョグで回復するセッションを作成して、木曜日に設定し、時計に送ってください。」

Claude はワークアウトをプレビューして、あなたの承認を待ってから、Garmin のワークアウトライブラリに保存し、スケジュールを設定してデバイスに送信します。

非公式のプロジェクトです。Garmin が作成したものではなく、Garmin との提携関係もありません。

インストールせずに使う

ホスト版は https://garmin.ficdev.xyz/mcp で実行されています。ブラウザーウィンドウで一度 Garmin にサインインするだけで、インストール不要で同じツールを利用できます。

  • claude.ai: [Settings]→[Connectors]→[Add custom connector]を選択します。URL を貼り付け、開いたウィンドウで Garmin にサインインしてください。同じアカウントの Claude Desktop とモバイル版にも表示されます。
  • Claude Code: claude mcp add --transport http garmin https://garmin.ficdev.xyz/mcp
  • その他の MCP クライアント: その URL を使って、ストリーム可能な HTTP サーバーを追加します。

ローカルサーバーとの違い:

  • sign_in_to_garmin ツールはありません。コネクターを追加するときにサインインします。
  • アップロードツールでは filename と content を指定します。.fit ファイルの場合は encoding: "base64" も指定します。上限は 10 MB です。
  • ダウンロードしたファイルはフォルダーに保存されず、チャットに返されます。上限は 5 MB です。

接続を解除するには、コネクターを削除してください。次回のサインイン時に「Disconnect my other Garmin connections」にチェックを入れることもできます。プライバシーの詳細については、PRIVACY.md をご覧ください。

必要なもの

セットアップ

最も簡単な方法:Claude Desktop Extension
  1. 最新リリースから garminconnect-mcp-<version>.mcpb をダウンロードします。
  2. ダブルクリックする(または Claude Desktop の[Settings]→[Extensions]にドラッグする)と、Install を選択できます。
  3. Garmin データについて Claude に質問します。初回は Claude がブラウザーで Garmin のサインインページを開くので、そこでサインインし(MFA コードを使用している場合は入力して)、完了したことを Claude に伝えてください。

ツールグループやダウンロードフォルダーなどのオプション設定は、[Settings]→[Extensions]→[Garmin Connect]にあります。

その他のインストール方法:npm
1. インストール
npm install -g @dynamicsninja/garminconnect-mcp

npx 経由で実行するのではなく、一度だけインストールしてください。Claude Desktop は複数のサーバーを同時に起動するため、npx が同じキャッシュフォルダーに並行してインストールすると、互いに不具合を起こすことがあります(ERR_MODULE_NOT_FOUND … ajv/dist/2020.js)。

2. Garmin にサインイン

ターミナルで実行します(パスワードが Claude を経由することはありません)。

garminconnect-mcp login

Garmin のメールアドレス(古いアカウントの場合はユーザー名)、パスワード、MFA を使用している場合は MFA コードの入力を求められます。セッションは ~/.garminconnect-mcp/tokens に保存され、30 日ごとに少なくとも1回使用すれば自動的に更新されます。

3. Claude Desktop に追加

[Settings]→[Developer]→[Edit Config]を開き、claude_desktop_config.json に garmin エントリを追加します。node のパスをインストール済みのサーバーに設定します。パスを調べるには npm root -g を実行し、その末尾に /@dynamicsninja/garminconnect-mcp/dist/cli.js を追加します。

Windows(スラッシュを使用):

{
  "mcpServers": {
    "garmin": {
      "command": "node",
      "args": ["C:/Users/<you>/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"]
    }
  }
}

node が見つからない場合(nvm を使用しているとよく発生します)は、which node で確認したフルパスを command として使用します。

4. Claude Desktop を再起動

完全に終了してください:トレイ/メニューバーのアイコン → [Quit]。ウィンドウを閉じただけではアプリは実行中のままなので、新しい設定は読み込まれません。もう一度起動して新しいチャットを開くと、メッセージボックスのツールアイコンの下に Garmin ツールが表示されます。

使用方法

そのまま頼むだけです。試してみたい例をいくつか紹介します。

  • 「筋力トレーニングを作成してください。60 kg のバックスクワットを 10 回、腕立て伏せを 12 回、プランクを 1 分間行うセットを 3 ラウンド。ラウンド間の休憩は 90 秒です。」
  • 「25 m プール用のスイムセットを作ってください。ゆっくり 400 m、15 秒休憩でクロール 100 m を 8 本、クールダウン 200 m。」
  • 「そのワークアウトを木曜日に予定して、ウォッチに送信してください。」
  • 「昨夜の睡眠はどうでしたか? 今日のトレーニングレディネスはどうですか?」
  • 「直近のランを要約してください。距離、ペース、平均心拍数、トレーニング効果を教えてください。」
  • 「レース予測を教えてください。また、今月の HRV の推移はどうですか?」
  • 「6 月以降の 10 km 超のランを、距離の長い順に探して、平均心拍数を比較してください。」

ワークアウトは必ず最初にプレビューされます。 Claude はワークアウトを読みやすい形式(ステップ、目標、/km と /mi 単位のペース)で表示し、確認されるまで保存しません。エクササイズ名は Garmin のカタログと照合され、ワークアウトに間違いがあれば、どこにあるかを正確に示して Claude に返されるので、修正できます。

Claude Desktop では、ツールを呼び出すたびに確認を求められます。 ツールを 1 回だけ、または常に許可できます。データを削除または上書きするツール(アクティビティ、ワークアウト、ギア、体重測定値などの削除)は破壊的な操作としてマークされており、Claude は使用前に確認するよう指示されます。

できること

  • sign_in_to_garmin:MFA を含め、ブラウザーで開くページからサインインします。ターミナルは不要です。上記の最も簡単な方法:Claude Desktop Extensionをご覧ください。
  • ワークアウト:ランニング、サイクリング、水泳、筋力トレーニング、HIIT、ヨガ、ピラティス、モビリティ、カーディオ、ラッキング、マルチスポーツに対応する preview_workout、create_workout、update_workout、search_exercises に加え、一覧表示、スケジュール設定、ウォッチへの送信、削除ができます。
  • garminconnect-js のその他すべての機能:睡眠、HRV、ストレス、Body Battery、最長 1 年分の全日サマリー、トレーニングレディネスとステータス、レース予測、アクティビティ(一覧表示、種類による検索、距離、時間、パワー、日付、テキストまたは場所による検索、詳細、実施したワークアウト、ダウンロード、ファイルのアップロード、RPE と感覚)、ギア、コース、レースカレンダー、デバイス、バッジ、体重測定と体重目標、食事の記録(Garmin Connect+ を利用)などに対応します。ライブラリのメソッドごとに 1 つのツールを用意しています。

公開されない機能: logout(保存済みセッションが削除されるため)、生の JSON によるワークアウトのアップロード(チェック機能付きの create_workout が代わりに使用されます)、およびオプトインしない限り、生の GraphQL パススルー。

設定(環境変数)

変数デフォルト意味
GARMIN_MCP_TOKEN_DIR~/.garminconnect-mcp/tokensセッションの保存先
GARMIN_MCP_DOWNLOAD_DIR~/Downloads/garminダウンロードしたファイル(FIT、GPX、…)の保存先
GARMIN_MCP_GROUPSallカンマ区切りのツールグループ:wellness、activities、metrics、workouts、gear、courses、calendar-events、devices、badges-challenges、body-composition-weight、womens-health、golf、profile-and-misc。大文字と小文字を区別せず照合されます。不明な名前は無視されます(指定した名前のうち有効なものがない場合は、すべて読み込まれます)。ワークアウト作成ツールは常に有効です。グループを減らすと、Claude が使用するコンテキストを削減できます。
GARMIN_MCP_ENABLE_GRAPHQLoffquery_garmin_graphql を公開するには 1 を設定します

たとえば、設定エントリの "env" に設定します。

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

GARMIN_EMAIL(メールアドレス、または古いアカウントの場合はユーザー名)と GARMIN_PASSWORD を両方設定すると、拡張機能のメールアドレスとパスワードの設定と同様に機能します。保存済みセッションがない場合、サーバーが自動でサインインします(MFA は使用しません)。

GARMIN_MCP_TOKEN_DIR を変更した場合は、同じ値でサインインしてください(GARMIN_MCP_TOKEN_DIR=/path/to/dir garminconnect-mcp login)。そうしないと、サーバーはセッションを見つけられません。

トラブルシューティング

  • ツールが表示されません。 Claude Desktop を完全に終了してから再起動したことを確認してください(手順 4)。次に、 「設定」→「開発者」→ garmin でサーバーの状態とログへのリンクを確認します。
  • 「Garmin にログインしていません」または「セッションの有効期限が切れました」:Claude に再度サインインするよう依頼してください(sign_in_to_garmin を呼び出します)。または、garminconnect-mcp login をもう一度実行します。実行中のサーバーは次のリクエストで新しいセッションを取得するため、再起動は不要です。
  • サインインページが開きませんでした:Claude の返信にリンクが含まれています。このコンピューターの任意のブラウザーで開いてください。有効期限は 15 分です。Claude に再度サインインするよう依頼してください。
  • npx の実行後に ERR_MODULE_NOT_FOUND が表示される:npm キャッシュ内の _npx フォルダーを削除して(場所は npm config get cache で確認できます)、上記のグローバルインストールを使用してください。
  • 「Garmin がリクエストをレート制限しています」:Garmin は短時間に集中する呼び出しを制限します。1 分待ってから、もう一度依頼してください。
  • 保存時に HTTP 412 が発生する(EU アカウント):Garmin Connect の設定で一度アップロードへの同意を行ってください。それまでは Garmin がすべての書き込みを拒否します。
  • 詳細なアクティビティデータが途中で切れているように見える:1 回のツール結果は 100,000 文字に制限されており、秒単位のアクティビティデータ(get_activity_details)は通常それを超えます。代わりに要約を依頼するか、アクティビティファイル(download_activity)をダウンロードして、別の場所で開いてください。

更新

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

その後、Claude Desktop を終了して再起動してください。保存済みのセッションは保持されます。

その他の MCP クライアント

stdio サーバーを起動できるクライアントなら、どれでも動作します。コマンドは garminconnect-mcp(または node …/dist/cli.js)です。たとえば、Claude Code では次のようにします。

claude mcp add garmin -- garminconnect-mcp

知っておくとよいこと

  • 日付は UTC の暦日です(YYYY-MM-DD)。
  • すべての処理はお使いのマシン上で実行されます。Garmin セッションはトークンフォルダーに保存され、Garmin にのみ送信されます。詳細は PRIVACY.md をご覧ください。
  • Garmin Connect の API は非公式であり、変更される可能性があります。このサーバーは garminconnect-js と同時にリリースされ、各リリースは同梱するライブラリのバージョンに対してテストされています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。