Long Run Hybrid Coach について
Long Run Hybrid Coachは、ランニングと筋力トレーニングを組み合わせる人向けの適応型コーチングMCPサーバーです。Intervals.icuの活動・回復データを使って28日間の計画を管理し、承認後にカレンダーへ予定を登録します。
主な機能
- 01ランニングと筋トレの両立
- 02活動・回復データの読み取り
- 0328日間のトレーニング計画
- 04承認後のカレンダー登録
- 05過去のトレーニング記録の取り込み
活用シーン
- 01ランニングと筋トレを両立する計画
- 02実施内容に応じた週間計画の調整
- 03承認済みメニューのIntervals.icu登録
MCP 対応
ClaudeやChatGPTなどのクライアントに接続し、コーチング用のツールとプロンプトを提供するMCPサーバーです。Intervals.icuから記録を読み取り、承認後にカレンダーへ書き込みます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.paceandstaystrong.com/mcpclaude mcp add --transport http atomchung-long-run-hybrid-coach https://mcp.paceandstaystrong.com/mcp{"mcpServers":{"atomchung-long-run-hybrid-coach":{"type":"http","url":"https://mcp.paceandstaystrong.com/mcp"}}}Cursor で開く{"servers":{"atomchung-long-run-hybrid-coach":{"type":"http","url":"https://mcp.paceandstaystrong.com/mcp"}}}VS Code で開く{"mcpServers":{"atomchung-long-run-hybrid-coach":{"type":"http","url":"https://mcp.paceandstaystrong.com/mcp"}}}{"mcpServers":{"atomchung-long-run-hybrid-coach":{"serverUrl":"https://mcp.paceandstaystrong.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Long Run Hybrid Coach
公式サイト paceandstaystrong.com | お困りの際はサポートページをご覧ください。
URL を Claude または ChatGPT に貼り付けるだけで、実際のトレーニングを把握できるコーチを利用できます。
Intervals.icu アカウントにあるアクティビティとリカバリーデータを読み取り、28 日間のランニング+筋力トレーニングの方針と今週のトレーニングメニューを一貫して維持します。計画と実際に行ったことを照らし合わせ、あなたが同意した後に、各セッションをカレンダーに登録します。無料で利用でき、有料プランはありません。
Garmin は利用の前提条件ではありません。 Garmin は、現時点で実機検証済みの最初の下流デバイス経路にすぎません。Apple Watch、COROS、Polar、Suunto、Wahoo、その他のアプリや時計、さらには時計を持っていない場合でも、同じコーチを利用できます。違いは、信頼できるトレーニング記録がどれだけコーチに届くか、また Intervals の先にあるデバイス同期経路が検証済みかどうかです。
一般ユーザーはホスト版をそのままご利用ください:
https://mcp.paceandstaystrong.com/mcp。Intervals.icu アカウントは必要ですが、Intervals に OAuth App を申請したり、サーバーを自分で運用したりする必要はありません。
接続:2 ステップ
公式サイトでは、同じ手順を 4 つのクリックに分けて説明しています:利用を開始する。
必要なもの
- Intervals.icu アカウント。 無料です。Google でログインすれば、約 30 秒で作成できます。
- Claude または ChatGPT。
- Claude(claude.ai/Claude Desktop):無料プランで利用できます。無料アカウントではカスタムコネクターを 1 つに制限しています。この経路は本番 OAuth、コーチとの会話、Intervals へのトレーニングメニュー送信まで、実機で完全に検証済みです。
- ChatGPT:現在は Business、Enterprise、または Edu のウェブ版ワークスペースで、Apps/developer mode から custom app を作成する必要があります。個人プランの custom MCP は read/fetch のみ対応しており、本製品の「計画の作成+トレーニングメニューの登録」フローを完了できません。個人プランをご利用の場合は、このコーチが ChatGPT ディレクトリに掲載されるまでお待ちください。最新の制限についてはOpenAI 公式の説明をご確認ください。
- その他の MCP クライアント:OpenClaw とセルフホストのクライアントについては以下のセクションをご覧ください。
- 任意:アクティビティを Intervals.icu に同期済みの時計またはトレーニングアプリ。時計がなくても利用できます。取得できない項目は「不明」として扱い、0 とはみなしません。
ステップ 1:URL を AI に貼り付ける
AI のコネクター設定でリモート MCP サーバーを追加し、次の URL を入力します:
https://mcp.paceandstaystrong.com/mcp
- claude.ai/Claude Desktop:Settings → Connectors → Add custom connector → URL を貼り付けます。
- ChatGPT:Apps/developer mode → custom app を作成 → 同じ URL を指定します。
ほかに入力する項目や、貼り付けるキーはありません。
ステップ 2:Intervals.icu を認可する
ブラウザーで Intervals.icu の同意画面が開きます。ご自身の Intervals.icu アカウントにログインし、4 つの権限すべてにチェックを入れてください:
| 権限 | コーチでの用途 |
|---|---|
ACTIVITY:READ | 完了したトレーニングを読み取ります。 |
WELLNESS:READ | Intervals が保持するリカバリーデータを読み取ります。 |
CALENDAR:WRITE | トレーニングカレンダーを読み書きし、確認済みのメニューを登録して、登録後に読み戻して照合します。 |
SETTINGS:WRITE | 閾値ペースを読み取ります。書き込むのは、閾値ペースがまだ設定されていない場合のみで、確認済みのトレーニングメニューを登録する時点に限られます。すでに設定済みの値を上書きすることはありません。 |
Intervals には設定の読み取り専用権限もありますが、ここでは補完する値を書き込むため、書き込み権限が必要です。この権限が必要な理由は、Intervals 側に閾値ペースが設定されていなくても、ペース指定付きのトレーニングメニューは受け付けられる一方、時計に送信する際にペース目標が削除されてしまうためです。その結果、距離は正しいのに目標が何も設定されていないトレーニングメニューが届くことになります。必要な権限のチェックを外すと、その権限を必要とする機能が動作しなくなり、原因もわかりにくくなります。再接続して権限を追加すれば解決できます。
Intervals のパスワード、API key、token を会話に貼り付けないでください。
Intervals アカウントを作成したばかり、または空の状態ですか?
コーチが読み取るのは、Intervals.icu にすでにあるデータです。アカウントを作成したばかりの場合は、次の 2 つの方法で過去のデータを追加できます:
- 現在使っているデバイスまたはアプリを接続する。 Intervals.icu 自体の Settings で Garmin またはお使いの時計/トレーニングアプリを接続すると、過去のアクティビティが自動的に追加されます。データが取り込まれたら、コーチにもう一度読み取るよう依頼してください。
- エクスポートファイルをコーチに直接渡す。 会話で CSV、Apple Health のエクスポートファイル、または
.fitファイルを渡し、インポートするよう依頼してください。同じファイルや同じアクティビティは自動的に重複排除され、判断できない場合にだけ確認します。(ファイルはコーチに渡すものであり、Intervals.icu には取り込まれません。)
デバイスで計測できないことも、会話で直接伝えられます。筋力トレーニングの実際のセット数・重量・回数、今週トレーニングできる時間や器具、体重や体脂肪率、時計を着けていなかった日のこと、「最近疲れています」「よく眠れていません」といった内容、さらに時計で実際に確認した睡眠、HRV、安静時心拍数、readiness の数値などです。「疲れています」という言葉を、コーチが勝手に偽の readiness スコアに変換することはありません。
接続するとどうなるか
普通のコーチへの質問をそのまま聞く
先にアンケートに答える必要はありません:
讀我最近的訓練,告訴我這週該怎麼練。
または:
我想提升 VO2max,又不想掉力量,幫我排第一個 28 天方向。
コーチはまず既存のデータを読み取り、そのうえで、判断を本当に左右する不足情報だけを確認します。たとえば、今週トレーニングできる日、器具、あるいはデバイスではわからない筋力トレーニングの基準などです。
初回はまず 28 日間のプレビューを確認し、同意した場合にのみ書き込みます
- 今週:具体的で実行可能な、カレンダーにそのまま登録できるトレーニングメニューです。
- その後の 3 週間:大まかな方針を示し、現時点で詳細まですべて把握しているかのように装いません。
その後の変更も、毎回同じ流れです:変更前後を比較 → 1 回同意 → その後に書き込み。
カレンダーに登録するときに、もう一度確認する
登録には別途確認が必要です:トレーニングメニューのプレビュー → 1 回同意 → Intervals.icu に書き込み → 読み戻して照合。
プレビューには、どの Intervals.icu アカウントに書き込むかが事前に表示されます。Intervals 上のメールアドレスを先に、その後に表示名を示すため、通常のアカウントとテストアカウントを両方持っている場合は、書き込む前にどちらかを判別できます。同じ表示名を複数のアカウントで使っていることがよくあるため、メールアドレスを先に表示します。どちらもその時点で Intervals から読み取る情報で、この回答に限って使用し、保存されることはありません。
本製品が証明できるのは、Intervals.icu が受け付けたところまでです。Intervals での成功は、トレーニングメニューが Garmin、Apple Watch、その他の時計に届いたことを意味しません——Intervals の先にある同期は外部経路であり、それぞれ個別に検証する必要があります。
この製品における Intervals.icu の役割
Intervals.icu は現在の中継地点です。コーチがさまざまなデバイスやアプリのアクティビティとリカバリーデータを受け取り、確認済みのトレーニングメニューをカレンダーに登録するために使います。計画そのものを保存する場所ではありません。
手錶 / 訓練 app
│
▼
Intervals.icu ───── 已完成活動 + 恢復數據 ─────► 教練
▲ │
│ │
└────────── 你確認過的日曆課表 ◄───────────┘
│
▼
Garmin / Apple Watch / 其他下游同步
役割分担:
- Intervals.icu:外部のトレーニングデータを統合し、カレンダーを保持します。
- Long Run Hybrid Coach:唯一の現行計画、意思決定の履歴、あなた自身が報告した記録、確認のたびに紐付けられた内容、そしてコーチングの全プロセスを保持します。
- あなたの時計/アプリ:アクティビティを Intervals に取り込むことができ、Intervals から送られるトレーニングメニューを受け取る場合もあります。ただし、最後の同期が成功したかどうかは別途検証が必要です。
必要なのはアカウントだけです。Intervals にアクティビティやリカバリーデータがあれば、コーチが自動的に取得できる情報がより充実します。データがない項目は「不明」のまま扱い、0 とはみなしません。また、任意の数値が 1 つ足りないからといって、通常のコーチとの会話を妨げることもありません。
ホステッド版 vs セルフホスト
実際に感じる違いは一つだけです。**ホステッド版はスマートフォンから直接使えますが、セルフホスト版はサーバーを実行しているコンピューター上でしか使えません。**以下の各項目は、すべてこの違いに伴うものです。
| ホステッド版(推奨) | セルフホスト | |
|---|---|---|
| スマートフォンで使えますか | はい——スマートフォンアプリのあるクライアントに接続するだけです | いいえ。ただし、自分でサーバーを外部に公開し、TLS を設定する場合を除きます |
| URL | https://mcp.paceandstaystrong.com/mcp | ご自身のサーバー(例:http://127.0.0.1:8422/mcp) |
| 運用保守 | ご自身で管理する必要はありません | ご自身で起動、更新、バックアップ、運用保守を行います |
| Intervals OAuth App | 不要です | ご自身の OAuth application 認証情報が必要です |
| 計画の保存先 | ホステッド環境。ユーザーごとに分離されます | ご自身のサーバーの state root |
| 対象ユーザー | 一般ユーザー、複数のクライアントで同じ計画を共有したい人 | 開発者、環境やデータを完全に自分で管理したい人 |
ホステッド版は dynamic client registration、PKCE、token とユーザーの紐付けを自動で処理します。一般ユーザーに ID、API key、client secret、環境変数は必要ありません。
その他の MCP クライアント
- OpenClaw:
openclaw mcp addで同じ URL を指定し、--auth oauthを追加します。1 つの instance を複数の人が使う場合、OAuth identity を per-requester に設定しないと、全員が同じ Intervals アカウントに接続されます。設定については entrypoints/openclaw/ をご覧ください。 - その他:同じ URL を remote Streamable HTTP MCP server として設定します。お使いのコンピューター上で動作するクライアント(OAuth callback が loopback に戻るもの)は、そのまま接続できます。クラウドホスト上で動作し、独自ドメインで callback を受けるクライアントも、自分で登録して接続できます。ただし、Intervals の認可に進む前に、本製品独自の確認画面が表示され、認可情報の送信先となる origin が明記されます。Continue を押すと続行します。該当する origin が運用担当者によって検証され、リストに追加済みであれば、この画面はスキップされます。詳細は entrypoints/mcp/README.md をご覧ください。
各エントリーポイントの「実環境での完全な検証済み」または「パッケージ化済み、実際の接続による検証待ち」という状態は、entrypoints/ をご確認ください。
セルフホスト版の実行方法
Repo は Python 3.11 を使用し、バージョンを固定した依存関係は 1 つだけです。公式 MCP Python SDK(requirements.txt にバージョンを記載し、requirements.lock で解決された各パッケージとともに sha256 を固定)で、/mcp のプロトコルとトランスポート層を担います。コーチの判断、検証、store、配信、ID 管理は、引き続き標準ライブラリだけを使います。
- Repo を Clone し、
python3 -m pip install --require-hashes -r requirements.lockを実行します。 - **Intervals.icu に申請して OAuth application を作成します。**現在、Intervals の公開手順では Settings から自分で追加できません。公式の案内に従って app name、description、website、logo、privacy policy、redirect URI とご自身の Intervals ID を提供します。app の作成後、Settings に表示されるので、Manage App から
client_id/ secret を取得します。手順は Intervals.icu OAuth support をご覧ください。 - Intervals app に callback を登録します:
<gateway-origin>/oauth/callback。ローカルクライアントでは loopback を使用できます。remote client には到達可能な HTTPS または安全なトンネルが必要です。 - 必要な環境変数を設定します。
export GARMIN_COACH_LOOP_GATEWAY_STATE_ROOT="$HOME/.local/share/long-run-hybrid-coach-gateway"
export GARMIN_COACH_LOOP_TOKEN_HMAC_KEY="$(openssl rand -base64 32)"
export GARMIN_COACH_LOOP_INTERVALS_CLIENT_ID="..."
export GARMIN_COACH_LOOP_INTERVALS_CLIENT_SECRET="..."
- 起動します。
python3 -m garmin_coach_loop.cli serve-gateway --host 127.0.0.1 --port 8422
- ローカル MCP クライアントで
http://127.0.0.1:8422/mcpを指定します。
remote client に正式に提供する場合、loopback の例を production runbook として使わないでください。Persistent volume、TLS、信頼する client origin、single replica、release identity、デプロイの検証については docs/deploy-gateway.md をご覧ください。
1 人につき、現在の計画は 1 つにしてください
ローカルで GARMIN_COACH_LOOP_GATEWAY_URL をホステッド版に設定すると、ローカルへの書き込みはデフォルトでブロックされます。--offline を明示的に追加した場合のみ、「意図して別のローカル計画を作成している」ものとして扱われます。すでにローカルにデータがある場合は、ホステッド版に移行できます。手順は docs/ops/migrate-local-store-to-hosted.md をご覧ください。
現在できること
- 28 日間の方針を維持できます。今週の正確なメニューと、その後 3 週間の大まかな方針を管理します。
- Intervals のアクティビティ、回復データ、カレンダーを読み込み、信頼できる「予定と実績」の情報を現在の計画に自動で照合します。
- 週ごとの同じ計画で、ランニングと筋力トレーニングをまとめて扱えます。
- ご自身で報告した内容を記録できます。プロフィール、トレーニング可能な時間、長期目標、トレーニング習慣、実際の筋力トレーニング、体重・体脂肪、デバイスが記録しなかったアクティビティ、主観的なコンディションなどです。
- 会話ごとに、その時点の回復数値を取り込めます。ホステッド版が、お使いのコンピューターにある健康データベースを読み取ることはなく、その必要もありません。
- 過去のデータをインポートできます。対応形式の CSV、Apple Health XML、FIT ファイルに対応しています。同じファイルや同じアクティビティは自動で重複排除され、判断できない場合のみ確認します。
- メニューにはコーチのメモを添えて Intervals に登録できます。別のメニュー記法が勝手に作られることはありません。
- 毎週、「実際に何をトレーニングしたか、進歩の証拠があるか、次のステップは何か」を振り返ります。「メニューを完了した」ことを、そのまま体力の向上と見なすことはありません。
- 計画の変更は、差分を確認して同意した後にのみ適用されます。
- カレンダーへの登録は、プレビューを確認して同意した後にのみ行われます。安全な再試行、本製品が登録したメニューの置き換えや取り消しにも対応しています。
- 会話の中で、本製品が保持するデータを直接エクスポートできます。アカウント全体の削除はメールでの申請に変更されており、コーチが送信内容を説明するページを直接案内します。
重要な境界
- コーチとの会話を開始すると自動照合が行われ、新しい計画バージョンが書き込まれる場合があります。現在保存されている内容の確認だけを行い、データに一切変更を加えたくない場合は、読み取り専用の経路(
getCoachState)を使用してください。 - ご自身で報告したアクティビティは参考情報であり、デバイスで確認された完了記録として、知らないうちに扱われることはありません。
- 回復数値として受け付けるのは、実際に観測された値のみです。モデルがテキストから数値を推測して作り出すことはできません。
- 本製品は医療診断を行いません。
- 配信の確認は Intervals から読み戻して照合するところまでです。時計に届いたとは主張しません。
データ、エクスポート、削除
ホステッド環境では、同じ計画を維持するために必要な情報を保存します。計画のバージョン履歴、決定と応答、ご自身で報告した記録、ID の紐付け、未完了の配信記録です。
エクスポートに含めないものは、意図的に 3 つあります。認証情報の fingerprint(内部の記録管理にのみ使用する一方向の指紋)、プロバイダーの raw payload と GPS 軌跡(元のアクティビティファイルはプロバイダーから取得してください)、内部の owner id(本製品の保存場所を示す番号)です。
削除には、明確な境界が 3 つあります。以下は本製品で削除できません。
- すでに Intervals.icu カレンダーに書き込まれたメニュー
- Intervals.icu Settings でお客様が許可した認可
- 計画、健康、ID の内容を含まない最小限のプラットフォーム運用記録
エクスポートは会話の中でご自身で行えます。アカウント全体の削除はメールで申請してください。手順はサポートページにあります。必要なのは、お客様の Intervals.icu athlete id と、Intervals.icu Settings ページのスクリーンショットです。パスワード、API key、token を求めることはありません。会話の中で全データの削除を依頼した場合、コーチが案内するのはこのページのみです。お客様がメールを送信するまでは、申請は送信されず、データも削除されません。
1.4.5 より前は、2 回の tool call と 1 回の確認が必要でした。一部の AI クライアントでは、独自の承認レイヤーがその確認をブロックし、サーバーにメッセージがまったく届かないため、ユーザーにはプレビューだけが残り、データは削除されないことがありました。途中で止まる可能性のある 2 つの経路を、最後まで確実に進められる 1 つの経路に置き換えました。
ライフサイクル全体については docs/account-lifecycle.md をご覧ください。公開プライバシーポリシーは paceandstaystrong.com/zh/privacy.html をご覧ください(英語版が正式版です)。
現在の制限
- コーチは Apple Health、Garmin Connect、その他のデバイスアカウントに直接ログインしません。現在、主な自動データ取得経路は Intervals.icu です。
- ホスト版では、ご提供いただいた睡眠スコア、睡眠時間、昨夜の HRV、安静時心拍数を日付ごとに保存し、アカウントデータを削除するまで保持します。コーチは毎回直近 28 日分を読み込みますが、これは保存期間ではありません。その他の入力された回復指標は、その場での判断にのみ使用します。特定の日の回復記録を削除するには、その日の記録を無効にするよう伝えてください。ただし、その日の記録全体が削除され、数値を 1 つだけ残すことはできません。詳しくはデータに関する説明をご覧ください。
- 本製品は、Intervals が受信した後のデバイス同期を逐一監視していません。そのため、「Intervals が受信しました」を「ウォッチに反映済み」とは表現しません。
- セルフホスト版は開発者/自分で管理する方向けです。一般ユーザーにはホスト版の利用をおすすめします。
- デバイスとの互換性は経路ごとの証拠に基づくものであり、Garmin で検証済みだからといって、他のデバイスでも同じだとは推定しません。
- これは個人プロジェクトであり、企業ではありません。サービスの継続を保証するものではなく、変更される場合もあります。
問題が発生した場合
- サポートページ:エクスポート、削除、訂正、認可の取り消しについて説明しています。エクスポートと訂正は会話内でご自身で行ってください。アカウント全体の削除は、このページに記載されているメールでの申請が必要です。開発者に直接連絡できるメールアドレスも掲載されています。
- Issue tracker:バグや機能の提案を報告できます。公開され、永続的に残るため、健康/トレーニング/計画の内容、Intervals の athlete id、token、その他の認証情報は投稿しないでください。自分のアカウントを特定するには、データのエクスポートファイルに含まれる復元不可能な参照コードだけで十分です。
- セキュリティまたはプライバシーの脆弱性だと思われる場合は、詳細を公開せず、直接メールでご連絡ください。
技術ドキュメント
- 安定版ユーザーストーリー:docs/user-story.md
- ユーザーフローと対応する呼び出し:docs/user-flows.md
- データソースとフィールドの境界:docs/data-sources.md
- エントリーポイントとプラットフォーム設定:entrypoints/
- MCP protocol、OAuth、tool の動作:entrypoints/mcp/README.md
- ホスト版のデプロイ:docs/deploy-gateway.md
- アカウントのライフサイクル:docs/account-lifecycle.md
- 公開掲載/reviewer 向け資料:docs/distribution/
- Release inventory:docs/release-inventory.md
- Repository invariants と検証:AGENTS.md
現在のリリースでは、23 個の MCP tool、2 個の prompt、34 個の CLI コマンド、4 個の JSON Schema contract、10 個の identity テーブルを外部に提供しています。これらの数はテストが実際のコードから導出しており、このドキュメント自体の記述が実態とずれるのを防いでいます。
Long Run Hybrid Coach は独立したプロジェクトであり、Garmin、Intervals.icu、Apple、その他のデバイス/プラットフォームのベンダーとは、提携、推奨、スポンサー関係にありません。コードは MIT License に基づいて公開されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。