intervals-icu-mcp について
intervals-icu-mcp は Intervals.icu のトレーニングデータと分析機能を MCP クライアントに提供します。活動、回復指標、計画を確認・管理するアスリート向けで、読み書き操作、リソース、プロンプト、削除防止設定に対応します。
主な機能
- 01トレーニング活動の検索と管理
- 02データストリーム、インターバル、パフォーマンス曲線の分析
- 03HRV、睡眠、回復指標の確認
- 04カレンダー、トレーニング計画、ギアの管理
- 05トレーニング分析のプロンプトとリソース
- 06削除操作の安全モード設定
活用シーン
- 01最近の活動とパフォーマンスを確認する
- 02HRV、睡眠、回復の推移を調べる
- 03カレンダーでワークアウトやレースを計画する
- 04トレーニング内容を作成し、ギアを記録する
MCP 対応
MCP サーバーは stdio 経由で 69 個のツール、4 個のリソース、9 個のプロンプトを提供し、Intervals.icu の活動、ウェルネス指標、カレンダー、ワークアウトライブラリなどを扱います。リモート配置向けに HTTP と SSE にも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx intervals-icu-mcpINTERVALS_ICU_API_KEYシークレットYour Intervals.icu API key (from Settings → Developer)INTERVALS_ICU_ATHLETE_IDYour Intervals.icu athlete ID (e.g. i12345)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
67掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 取得するアクティビティ数 |
| days_back | integer | いいえ | 遡る日数 |
| athlete_id | any | いいえ | アスリート ID(複数のアスリートを管理するコーチ向け) |
詳細
Intervals.icu MCP サーバー

Intervals.icu と連携するための Model Context Protocol(MCP)サーバーです。Claude、ChatGPT、その他の LLM を通じて、トレーニングデータ、ウェルネス指標、パフォーマンス分析にアクセスできます。
元のプロジェクトは eddmann/intervals-icu-mcp(MIT ライセンス)に基づいています。このプロジェクトは、大幅なバグ修正と新機能を加えた独立した継続プロジェクトです。詳細は CHANGELOG.md をご覧ください。
概要
アクティビティ、アクティビティ分析、アクティビティメッセージ、アスリートプロフィール、ウェルネス、イベント/カレンダー、パフォーマンス曲線、ワークアウトライブラリ、ギア、スポーツ設定、カスタム項目にわたる69個のツールに加え、4つのMCPリソース(アスリートプロフィール、ワークアウト構文、イベントカテゴリ、カスタム項目スキーマ)と9つのMCPプロンプト(トレーニング分析、リカバリーチェック、週間計画など)を提供します。カテゴリごとの内訳は利用可能なツールをご覧ください。
クイックスタート
または、Claude Desktop なら30秒で設定できます。
- APIキーとアスリートIDを取得します。
- Claude Desktop の設定に以下を追加します。
{
"mcpServers": {
"intervals-icu": {
"command": "uvx",
"args": ["intervals-icu-mcp"],
"env": {
"INTERVALS_ICU_API_KEY": "your-api-key-here",
"INTERVALS_ICU_ATHLETE_ID": "i123456"
}
}
}
}
- Claude を再起動して、*「過去7日間のアクティビティを見せてください。」*と尋ねます。
Claude Code、Cursor、ChatGPT を使う場合は、クライアントの設定をご覧ください。ソースから実行する場合や Docker を使う場合は、インストールとセットアップをご覧ください。
前提条件
uvをインストールしてください。Python、依存関係、実行を1つのツールで管理できます。macOS/Linux では curl -LsSf https://astral.sh/uv/install.sh | sh(または brew install uv。Homebrew は Intel Mac へのインストールを終了しています)、Windows では powershell -c "irm https://astral.sh/uv/install.ps1 | iex"を実行します。その後、uvxが Python とパッケージを自動的に取得します。MCP クライアントが uvxを見つけられない場合は、which uvxで表示されるフルパスを commandに設定してください。代替手段として Docker も利用できます。
Intervals.icu API キーの設定
インストールする前に、Intervals.icu の API キーを取得してください。
- https://intervals.icu/settings → Developer → Create API Key に移動します。
- キーをコピーし、プロフィール URL に記載されているアスリートID(形式:
i123456)を控えます。
インストールとセットアップ
推奨セットアップを使用する場合、個別にインストールするものはありません。 uv に同梱されている uvx が、MCP クライアントから初めて起動された際に intervals-icu-mcp パッケージを自動的にダウンロードしてキャッシュします。クライアント設定の設定スニペットをクライアントに貼り付けるだけで完了です。
別の方法:ソースから — 開発またはローカルでの変更向け
git clone https://github.com/hhopke/intervals-icu-mcp.git
cd intervals-icu-mcp
uv sync
uv run intervals-icu-mcp-auth # interactive credential setup; or create .env manually:
# INTERVALS_ICU_API_KEY=your_api_key_here
# INTERVALS_ICU_ATHLETE_ID=i123456
次に、このチェックアウトを MCP クライアントに指定します。各クライアントの下にあるソースからのスニペットをご覧ください。
別の方法:Docker
docker build -t intervals-icu-mcp .
# Interactive credential setup (creates intervals-icu-mcp.env in the current directory):
touch intervals-icu-mcp.env # pre-create the file so Docker mounts it as a file, not a dir
docker run -it --rm \
-v "$(pwd)/intervals-icu-mcp.env:/app/.env" \
--entrypoint= intervals-icu-mcp:latest \
python -m intervals_icu_mcp.scripts.setup_auth
または、intervals-icu-mcp.env を手動で作成します(上記の .env と同じ形式です)。
次に、Docker イメージを MCP クライアントに指定します。各クライアントの下にあるDockerのスニペットをご覧ください。
クライアント設定
このサーバーは stdio 経由で MCP と通信し、仕様に準拠したすべてのクライアントで動作します。クライアントをクリックして展開してください。クイックスタート(uvx)に従った場合は最初の設定ブロックを使用してください。上記のソースまたは Docker の別の方法を使用した場合は、同じ折りたたみセクション内の該当するバリエーションを使用してください。
Claude Desktop
設定ファイルに追加します。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"intervals-icu": {
"command": "uvx",
"args": ["intervals-icu-mcp"],
"env": {
"INTERVALS_ICU_API_KEY": "your-api-key-here",
"INTERVALS_ICU_ATHLETE_ID": "i123456"
}
}
}
}
ソースから(git clone + uv sync + uv run intervals-icu-mcp-auth が必要です):
{
"mcpServers": {
"intervals-icu": {
"command": "uv",
"args": ["run", "--directory", "/ABSOLUTE/PATH/TO/intervals-icu-mcp", "intervals-icu-mcp"]
}
}
}
Docker:
{
"mcpServers": {
"intervals-icu": {
"command": "docker",
"args": ["run", "-i", "--rm", "-v", "/ABSOLUTE/PATH/TO/intervals-icu-mcp.env:/app/.env", "intervals-icu-mcp:latest"]
}
}
}
Claude Code
ユーザースコープの MCP サーバーとして登録します。
claude mcp add intervals-icu --scope user \
--env INTERVALS_ICU_API_KEY=your-key \
--env INTERVALS_ICU_ATHLETE_ID=i123456 \
-- uvx intervals-icu-mcp
次に、任意の Claude Code セッションで /mcp を実行し、intervals-icu が接続されていることを確認します。
Cursor
~/.cursor/mcp.json(またはプロジェクトローカルの .cursor/mcp.json)に追加します。
{
"mcpServers": {
"intervals-icu": {
"command": "uvx",
"args": ["intervals-icu-mcp"],
"env": {
"INTERVALS_ICU_API_KEY": "your-api-key-here",
"INTERVALS_ICU_ATHLETE_ID": "i123456"
}
}
}
}
Cursor を再起動し、設定 → MCP を開いてサーバーが一覧に表示されていることを確認します。
ChatGPT — 有料プラン、開発者モード、および外部からアクセス可能な URL が必要です (手順全体の動作はまだ検証されていません)
ChatGPT のカスタム MCP コネクターを使用するには、サーバーを HTTP 経由で実行してトンネル経由で公開し、その URL を ChatGPT の開発者モード設定に登録する必要があります。手順の詳細、プランごとの要件、セキュリティに関する注意事項については、docs/chatgpt-connector.mdをご覧ください。
使用方法
自然言語で Claude に依頼して、Intervals.icu のデータを操作できます。最初に試せるプロンプトをいくつか紹介します。
"Show me my activities from the last 30 days"
"Am I overtraining? Check my CTL, ATL, and TSB"
"How's my recovery this week? Show HRV and sleep trends"
"Create a sweet spot cycling workout for tomorrow"
"What's my 20-minute power and FTP?"
カテゴリ別のプロンプト例の全リストについては、docs/examples.mdをご覧ください。
利用可能なツール
69 個のツール、4 個のリソース、9 個のプロンプトテンプレートがあります。以下に概要を1行で示します。詳細はdocs/tools.mdをご覧ください。
| カテゴリ | ツール | 概要 |
|---|---|---|
| アクティビティ | 13 | アクティビティの照会、検索、更新、削除、ダウンロード |
| アクティビティ分析 | 8 | ストリーム、インターバル、ベストエフォート、ヒストグラム |
| アクティビティメッセージ | 2 | アクティビティのメモ、コメント、コーチからのフィードバックの読み取りと投稿 |
| アスリート | 5 | アクセス可能なアスリート、プロフィールとアスリートのメモ、CTL/ATL/TSB 分析、フィットネスチャートの時系列データ |
| ウェルネス | 3 | HRV、睡眠、回復指標 |
| イベント/カレンダー | 12 | 計画済みワークアウト、レース、メモ、ATP ピリオダイゼーション(一括操作に対応) |
| パフォーマンス/カーブ | 3 | ゾーン付きのパワー、心拍数、ペースのカーブ |
| ワークアウトライブラリ | 8 | フォルダーとトレーニングプランの参照、作成、削除、ライブラリ内ワークアウトの作成(一括作成を含む)、更新、削除 |
| ギア管理 | 6 | 用具とメンテナンスのリマインダーの管理 |
| スポーツ設定 | 4 | FTP、FTHR、ペースのしきい値、ゾーン |
| カスタム項目 | 5 | ユーザーによるカスタマイズ:カスタムチャート、フィールド、ゾーン、ダッシュボードパネル |
削除セーフティモード
破壊的な操作を行うツールは、オプションの INTERVALS_ICU_DELETE_MODE 環境変数(safe / full / none、デフォルトは safe)によって制限されます。これはモデルがアクセスできないサーバー側の制御機構であり、登録されていないツールは呼び出せません。モードの一覧、レスポンスの形式、TZ バッファーの根拠については、docs/tools.mdをご覧ください。
リモートデプロイ(HTTP / SSE)
サーバーはデフォルトで stdio 経由で動作します。これは Claude Desktop、Claude Code、Cursor などのローカルクライアントに適したトランスポートです。リモートまたはホスト型での利用には、HTTP および SSE トランスポートを使用できます。
⚠️ MCP には認証機能が組み込まれていません。トンネル(Tailscale、Cloudflare Tunnel)または認証機能を持つリバースプロキシを使用せずに、HTTP モードのサーバーを信頼できないネットワークに公開しないでください。
トランスポートのフラグとセキュリティモデルの詳細については、docs/remote-deployment.mdをご覧ください。
ドキュメント
- プロンプト例 — カテゴリー別の自然言語プロンプトを網羅したカタログ
- ツールリファレンス — ツール、リソース、プロンプトの完全な一覧
- アーキテクチャ概要 — サーバー、ミドルウェア、クライアント、ツールの連携方法
- リモートデプロイ(HTTP/SSE) — ホスト型/リモート環境向けのトランスポート、フラグ、セキュリティモデル
- テストガイド — pytest + respx の規約、フィクスチャ、テストスイートの実行方法
- 変更履歴 — リリース履歴
- 新しいツールの追加 — コントリビューター向けの手順を追ったワークフロー
フィードバック
どのように使っていますか? よく使うツール、プロンプトの内容、使いづらい点を教えてください。そうした声は、私自身の推測よりもロードマップの策定に大きく役立ちます。
使い方の紹介 · Q&A · アイデア · 一般 — または、再現可能なバグについてはイシューを作成してください。
コントリビューション
コントリビューションを歓迎します。小さなものでも大歓迎です — 誤字の修正、パラメーターの説明の改善、テストの追加、新しいツールの作成など、何でも歓迎します。Python や MCP の知識は必要ありません。CONTRIBUTING.mdをご覧ください。要約すると、PR を作成する前に make can-release を実行してください。初めての方におすすめのイシューから始めるのがおすすめです。
スポンサー
MIT License のもとで無料で利用でき、私が空き時間にメンテナンスしています。役に立った場合は、GitHub Sponsorsを通じて継続的な開発を支援できます。支援は完全に任意です。フィードバックや PR も同じように助けになります。
ライセンス
MIT License です。詳細はLICENSEファイルをご覧ください。
免責事項
このプロジェクトは Intervals.icu との提携、承認、スポンサー関係はありません。すべての製品名、ロゴ、ブランドは、それぞれの所有者に帰属します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。