Run Coach について
Run Coach は Garmin のデータを Claude Desktop、ChatGPT デスクトップアプリ、その他の MCP クライアントに接続し、健康・トレーニング情報をインタラクティブなチャートで表示します。非公式のアプリとして、日次ブリーフィング、傾向分析、ワークアウトの確認と計画に対応し、ローカルで動作して Garmin Connect に直接データを送ります。
主な機能
- 01日々の健康・トレーニング概要を表示
- 02フィットネス指標の推移を比較
- 03ワークアウトのスプリットと心拍ゾーンを分析
- 04Garmin のワークアウトを作成・スケジュール
- 05対応クライアントでインタラクティブなチャートを表示
活用シーン
- 01日次概要で準備状態、睡眠、HRVを確認
- 02数週間から数か月のトレーニング指標を比較
- 03ワークアウト後にスプリットとトレーニング効果を確認
- 04週間トレーニングを計画してワークアウトを登録
MCP 対応
MCP サーバーは、Garmin Connect のデータとワークアウト用ツールを MCP クライアントに公開し、MCP Apps 対応クライアントには UI リソースも提供します。サインインはアプリの画面で行い、トークンはローカルに保存されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
67掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
ランコーチ — Garmin MCP アプリ
Garmin ウォッチを Claude Desktop または ChatGPT に接続できます。インタラクティブなグラフを確認できます。
非公式です。Garmin との提携や承認を受けていません。Garmin は Garmin Ltd. の商標です。
インストール
Claude Desktop
- リリースから最新の
.mcpbファイルをダウンロードします - Claude Desktop にドラッグしてインストールします
- Garmin のデータについて Claude に何でも質問してください。初回使用時にサインインを求められます
ChatGPT(デスクトップアプリ)
Node.js 20 以降が必要です。
- ChatGPT のデスクトップアプリで、Settings → Plugins → Add marketplace を開きます
- Source:
chenhunghan/garmin-mcp-app(Git ref と sparse paths は空のままにします)→ Add marketplace - アプリを再起動し、Plugins Directory を開いて、Run Coach マーケットプレイスを選び、Coach をインストールします
または、Codex CLI を使って、codex plugin marketplace add chenhunghan/garmin-mcp-app を実行し、続けて codex plugin add garmin@garmin-mcp を実行します。
Coach はサイドバー(毎日のブリーフィングとパフォーマンスダッシュボード)と、会話内の Training Week タブに表示されます。または、「@Coach 今日はどんな調子?」と尋ねるだけでもかまいません。お使いのコンピューター上で動作するため、デスクトップアプリでのみ利用できます。
その他の MCP クライアント(Cursor、VS Code、Claude Code、Codex CLI など)
Node.js 20 以降が必要です。クライアントの MCP 設定にサーバーを追加します。
{
"mcpServers": {
"garmin": { "command": "npx", "args": ["-y", "garmin-mcp-app"] }
}
}
または、コマンドラインから claude mcp add garmin -- npx -y garmin-mcp-app(Claude Code)、codex mcp add garmin -- npx -y garmin-mcp-app(Codex CLI)を実行します。
MCP Apps に対応するクライアント(例:VS Code)では、インタラクティブなグラフとサインインフォームが表示されます。その他のクライアントでも Garmin のすべてのツールからデータを取得できますが、サインインフォームは表示できません。MCP Apps 対応クライアントから一度サインインすると、トークンは ~/.garminconnect に保存され、お使いのコンピューター上のすべてのクライアントで共有されます。
できること
健康、トレーニング、フィットネスについて Claude に尋ねると、Garmin のデータを読み取り、会話内にインタラクティブなグラフを表示します。
- 一日の始まりに — レディネス、睡眠、HRV、ボディバッテリー、安静時心拍数を自身の基準値と比較した朝のブリーフィングと、Claude からの提案を確認できます
- トレンドを確認 — 最大4つの指標を、4週間から1年間の範囲で比較し、何が変化したのかを Claude に尋ねられます
- 週間計画を立てる — Claude がデータをもとに1週間分のトレーニングを計画し、ワークアウトを作成して Garmin のカレンダーに登録します
- ワークアウトを分析 — 1周のみのランでも1kmごとのスプリット、心拍ゾーン、トレーニング効果を確認できます
- フィットネスを記録 — トレーニングレディネス、トレーニング負荷、VO2 Max、レース予測など、30種類以上の Garmin 指標を確認できます
Claude がコーチする Garmin
アプリは、あなた自身の基準値と照らし合わせてデータを表示し、Claude がそのデータを読み取って、次に何をすべきか提案します。どの画面にも、あなたの数値に基づく Claude に質問 があり、Claude はあなたが何を見ているか把握しています。
毎日のブリーフィング — 「今日はどんな調子?」
パフォーマンスダッシュボード — 「今年、フィットネスはどのように推移した?」
週間トレーニングプラン — 「今週のトレーニングを計画して」(または plan-training-week プロンプト)
1 km ごとのスプリット — 「最後のランニングのスプリットを見せて」
スクリーンショットでは組み込みのデモモード(npm run dev:ui:demo)を使用しています。架空のランナーのデータであり、実在する人物のデータではありません。ライトテーマとダークテーマは Claude Desktop に合わせています。
視覚化できるデータ
アクティビティをプロットする
トレーニングレディネスを視覚化する
対応する Garmin Connect データの全一覧
| カテゴリー | データ |
|---|---|
| 毎日の健康 | 歩数、心拍数、睡眠ステージ、ストレス、ボディバッテリー(イベントを含む)、HRV、呼吸数、SpO2、階数、水分補給 |
| 傾向 | 安静時心拍数、週間歩数、週間ストレス、週間高強度運動時間、体重測定 |
| アクティビティ | 一覧/日付別、詳細、スプリット、タイプ別スプリット、心拍ゾーン別時間、チャートデータ、天気、エクササイズセット、ギア |
| トレーニング | トレーニングレディネス、トレーニングステータスと負荷、VO2 Max、レース予測、持久力スコア、ヒルスコア |
| パフォーマンス | 乳酸閾値、サイクリングFTP、心拍ゾーン、フィットネス年齢、自己記録、ランニング耐性、進捗 |
| デバイスとギア | デバイス、メインのトレーニングデバイス、最後に使用したデバイス、ギア、目標、トレーニングプラン、カレンダー |
| ワークアウト | ワークアウトの一覧表示、作成、更新、削除、スケジュール設定 |
このアプリでは、データの保存も収集も行いません。 データはお使いのマシンと Garmin Connect API の間で直接やり取りされ、中間サーバーはありません。
詳細を見る
- 認証情報はプライベートに保たれます。 Claude Desktop 内に表示される安全なログインフォームからサインインします。ログインツールと MFA ツールはアプリ専用(
visibility: ["app"])としてマークされているため、Claude(LLM)はこれらを呼び出せず、メールアドレス、パスワード、MFA コードを一切見ることはありません。 - Claude はユーザーの身元を知りません。 LLM に渡されるのは、ユーザーが要求した健康・フィットネスデータ(歩数、睡眠など)のみです。Garmin アカウントの認証情報、OAuth トークン、プロフィール(名前、メールアドレス、所在地)にはアクセスできません。
- パスワードがプレーンテキストで送信されることはありません。 ログインフォームは、Claude Desktop を経由する前に使い捨てキーでパスワードを暗号化するため、ホストのログに漏れることはありません。
- トークンはローカルに保存されます。 OAuth トークンは、制限付きのファイル権限(
0600)で、お使いのマシンの~/.garminconnect/に保存されます。Garmin Connect API 以外に送信されることはありません。 - いつでもログアウトできます。 ログアウトすると、お使いのマシンに保存されたトークンがすべて消去されます。
開発者・コントリビューター向けガイド
はじめに
git clone https://github.com/chenhunghan/garmin-mcp-app.git
cd garmin-mcp-app
npm install
npm install は、prek を使って Git フックを自動的に設定します。
- commit-msg — commitlint を使って Conventional Commits に準拠しているか確認します
- pre-push — lint、フォーマットチェック、型チェック、テストを実行します(CI と同じです)
トラブルシューティング:core.hooksPath
npm install で core.hooksPath に関する警告が表示される場合、prek は Git フックをインストールできません。ローカル設定を解除して修正してください。
git config --unset-all --local core.hooksPath
npm run prepare
開発
npm run dev # watch-build server + UI
npm run dev:ui # standalone UI dev at localhost:5173
npm run test:lib # run garmin-connect tests
npm run pack # build + package .mcpb bundle
npm run dev:ui を実行すると、実際の MCP サーバーとプロセス内で連携する React UI が http://localhost:5173 で開きます。Claude Desktop にデプロイしなくても、実際の Garmin API に対してログイン、MFA、ログアウトをテストできます。
Claude Desktop でのテスト
npm run build(1 回のみ)または npm run dev(ライブ再ビルド用のウォッチモード)を実行してから、~/Library/Application Support/Claude/claude_desktop_config.json に追加します。
{
"mcpServers": {
"garmin-mcp": {
"command": "node",
"args": ["/absolute/path/to/garmin-mcp-app/dist/index.js"]
}
}
}
Claude Desktop を再起動します。Claude に Garmin の認証状態を確認するよう依頼すると、アプリ UI が iframe に表示され、実際のログイン・MFA フローが実行されます。
アーキテクチャ
- MCP サーバー(
src/server.ts)— stdio を介した Node.js サーバー。ツールと UI リソースを登録します - React UI(
src/app.tsx)— ホストのサンドボックス化された iframe に表示され、postMessageを介して通信します - garmin-connect(
packages/garmin-connect/)— Garmin Connect の OAuth と API 用の TypeScript クライアントライブラリ
コミット規約
コミットは Conventional Commits 形式に従う必要があります。
type(optional-scope): description
使用可能なタイプ:feat、fix、chore、docs、ci、refactor、test
免責事項
Run Coach は独立したオープンソースプロジェクトです。Garmin Ltd. またはその子会社とは提携、推奨、後援の関係にありません。Garmin および Garmin Connect は Garmin Ltd. またはその子会社の商標であり、ここでは互換性を説明する目的でのみ使用しています。このアプリは、ユーザー自身のアカウントで非公式の Garmin Connect API を使用します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。