whoop-mcp-server について
whoop-mcp-serverはWHOOPの健康記録をMCPクライアントに接続し、AIが説明する前にサマリー、トレンド、相関を計算します。回復、睡眠、負荷、ワークアウトを会話で確認したいWHOOPユーザー向けで、データとトークンはローカルに保存されます。
主な機能
- 01回復・睡眠・負荷・ワークアウトを要約
- 02トレンド・トレーニング負荷・相関を分析
- 03期間比較と自己記録の取得
- 04記録をローカルのJSONとCSVに出力
- 05デモデータ、セットアップ案内、診断
活用シーン
- 01毎日のコンディションと負荷を確認
- 02回復に関連する要因を調べる
- 03期間ごとの健康指標を比較
- 04WHOOPの履歴をローカルで確認するために出力
MCP 対応
MCPツール、リソース、プロンプトを通じてWHOOPデータと分析機能を提供し、ChatGPT用のsearchとfetchツールにも対応します。stdio、HTTP、SSEトランスポートを利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
23掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
whoop-mcp-server
WHOOP はチャートを表示してくれます。しかし、「今日はハードなトレーニングをすべきか」「回復に実際に影響しているのは何か」には答えられません。このサーバーなら答えられます。
WHOOP のデータを Claude、ChatGPT、その他あらゆる MCP クライアントに接続します。自然な英語で質問すると、自分の記録をもとに答えを算出し、AI がその内容を説明します。
You: should I train hard today?
AI: Recovery 81% (green). HRV trending up. Sleep debt cleared.
Your 7-day load is 0.94x your 28-day base.
You are conditioned for more.
お使いのマシン上で動作します。読み取り専用です。ネットワーク接続先は api.prod.whoop.com のみです。テレメトリーはありません。MIT ライセンスです。
必要なもの
- WHOOP アカウント。どのメンバーシップでも利用できます。
- uv または pipx。コマンドラインツールをインストールするために使います。
- MCP クライアント:Claude Desktop、Claude Code、Cursor、Windsurf、VS Code、または ChatGPT。
始める前に知っておくべき制約が一つあります。WHOOP には共有の開発者アプリがないため、セットアップ中にご自身の無料アプリを作成します。クリック操作にかかる時間は約 2 分です。これが、設計上プライバシーが守られる理由でもあります。トークンはご自身のアプリに紐づき、お使いのマシンに保存され、健康データが他人のサーバーを経由することはありません。私のサーバーも含めてです。
セットアップ
ツールをインストールします:
uv tool install whoop-mcp-server
(pipx install whoop-mcp-server でも同じように動作します。)
次に、すべてを実行するコマンドを一つ実行します:
whoop-mcp-server setup
何も予想外のことが起きないよう、処理の流れを順に説明します:
-
WHOOP アプリ。 ウィザードが WHOOP の開発者ダッシュボードを開き、クリックする場所を正確に案内します。チームを作成し、アプリを作成し、
offlineを含むすべてのスコープを有効にして、リダイレクト URL を正確にhttp://localhost:8765/callbackに設定します。フォームにはプライバシーポリシーの URL が必要です。このリポジトリの URL を使用してください:https://github.com/rajdeepmondaldotcom/whoop-mcp-server/blob/main/PRIVACY.md。Client ID と Secret をコピーし、ターミナルに貼り付けます。これらはローカルに権限 0600 で保存されます。 -
認証。 ブラウザーで WHOOP の同意画面が開きます。承認してください。トークンは
~/.whoop-mcpに保存され、その後は自動的に更新されます。この操作は二度と必要ありません。 -
動作確認。 ウィザードが API を呼び出し、最新の回復データを実際に表示します。設定に問題があれば、後でチャット画面を見ることにならず、この時点でターミナル上に表示されます。
-
クライアント。 Claude Desktop、Cursor、Windsurf、VS Code、Claude Code を検出し、設定を書き込みます。編集前に既存の設定をバックアップします。Claude Desktop が起動中の場合、ウィザードは最初に終了するよう求めます。起動中は、設定の編集内容が Desktop によって気づかないうちに上書きされるためです。続いて、設定したコマンドを一度実行し、サーバーが応答することを確認します。「完了」は期待ではなく、検証済みという意味です。
クライアントを再起動して、「昨夜はどれくらい眠れた?」と尋ねてみてください。次に、より良い質問をしてみましょう:「今四半期の健康状態を全体的に教えて。」
補足を二つ。何かに接続する前にツールの動作を確認したい場合は、whoop-mcp-server serve --demo を実行すると、同じパイプラインを通じて、現実的に生成された 150 日分のデータを提供します。また、後で何かがうまく動作しなくなった場合は、whoop-mcp-server doctor が問題とその修正方法を示します。
質問できること
24 個のツールで、WHOOP API の一般ユーザーが読み取り可能なすべてのエンドポイントに加え、記録を回答に変換する分析レイヤーもカバーします。
| 質問 | 裏側で使われるツール |
|---|---|
| 「健康状態を全体的に教えて」 | get_health_overview:ステータス、傾向、トレーニング負荷、記録、相関関係を 1 回の呼び出しで取得します |
| 「今日はどんな調子?」 | get_daily_summary:任意の日のリカバリー、睡眠、ストレイン、ワークアウトを取得します |
| 「実際にリカバリーに影響しているものは?」 | get_correlations:ストレインと翌朝のリカバリー、睡眠とリカバリーの相関関係を分かりやすく示します |
| 「オーバートレーニングになっている?」 | get_strain_trends:急性負荷と慢性負荷、スポーツ別の内訳を確認できます |
| 「HRV は改善している?」 | get_recovery_trends:傾向、信頼度、通常と異なる日を確認できます |
| 「夜間の心拍数の推移を見せて」 | get_sleep_stream:分単位の心拍数と皮膚温、最低値とその時刻を表示します。include_raw=true を指定すると、WHOOP の未加工ストリームを保持します |
| 「今月と先月を比較して」 | compare_periods:すべての指標について、改善または低下を確認できます |
| 「今年の自己記録は?」 | get_personal_records:最高記録、最低記録、連続グリーン日数を確認できます |
| 「すべてエクスポートして」 | export_data:コレクションの全履歴をローカルの JSON と CSV に出力します。デフォルトでは未加工の記録も含まれます |
| 週ごとのグリッド、未加工の記録、プロフィール | get_weekly_report、get_sleeps/workouts/cycles/recoveries、include_raw を指定できる ID 別ツール、get_profile(include_raw=true) |
| 「古い WHOOP アクティビティ ID がある」 | get_activity_mapping:旧 v1 アクティビティ ID を v2 UUID に対応付けます |
| 接続の問題 | get_connection_status、connect_whoop_account |
日付はすべて平易な英語で指定できます:昨日、過去 30 日間、今週、2 年前、2026-05。
ChatGPT で必須の search および fetch ツールも実装済みです。さらに、4 つのリソースと、すぐに使える 4 つのプロンプト(morning_readiness、weekly_review、sleep_coach、training_planner)も用意されています。
質問のアイデアはこちらをご覧ください:docs/PROMPTS.md。
対応クライアント
| クライアント | セットアップ |
|---|---|
| Claude Desktop | whoop-mcp-server setup が自動で設定します。ターミナルは不要です。最新リリースから whoop-mcp-server.mcpb をダウンロードして開きます(uv のインストールが必要です。デモモードは設定画面で切り替えられます) |
| Claude Code | claude mcp add whoop -- whoop-mcp-server serve(セットアップでもこの設定を選べます) |
| Cursor | セットアップで自動設定するか、 |
| Windsurf | セットアップで自動設定 |
| VS Code | セットアップで自動設定するか、 |
| ChatGPT | リモートコネクター。下記を参照してください |
| Docker | docker build -t whoop-mcp-server . && docker run -i --rm -e WHOOP_MCP_DEMO=1 whoop-mcp-server(実データを使用する場合は ~/.whoop-mcp をマウントしてください) |
| 任意の MCP クライアント | command: whoop-mcp-server、args: ["serve"] を指定します。インスペクター:npx @modelcontextprotocol/inspector whoop-mcp-server serve |
ChatGPT のセットアップ
ChatGPT はリモート MCP サーバーに接続するため、HTTP トランスポートを公開してトンネル経由で接続します:
whoop-mcp-server serve --transport http --port 8000 # endpoint: /mcp
ngrok http 8000
次に ChatGPT で、Settings、Apps & Connectors、Advanced settings の順に開き、Developer mode を有効にします。https://<your-tunnel>/mcp を指定し、認証なしでコネクターを作成してください。
ここでは注意が必要です。認証なしのトンネルでは、URL を知っている人なら誰でも健康データを読み取れます。URL は非公開にし、トンネルの有効期間を短くしてください。Claude の stdio セットアップでは、情報が外部に公開されることはありません。
この製品において、モデルが担うのはおそらく20%です。残りの80%は、数値を正しく扱うことです。モデルは90日分の記録を使った計算が苦手なため、このサーバーが先に計算し、モデルはその結果を説明します。
- トレンドラインは、日付順に並べた系列に当てはめます。WHOOP は記録を新しい順に返します。取得順のまま当てはめると、すべてのトレンドが逆向きになります。
- 変化の方向は、指標の意味に沿って判定します。HRV の上昇は改善ですが、安静時心拍数の上昇はそうではありません。
- 記録は、それぞれのタイムゾーンオフセットに基づいて暦日に割り当てます。旅行中でも、睡眠は目覚めた朝に紐づきます。
- WHOOP は更新のたびに両方の OAuth トークンをローテーションします。このサーバーでは、トークンの更新を直列化し、使用前に保存して、複数の同時リクエスト間で共有します。認証を再実行すれば、サーバーを再起動せずに稼働中のサーバーを復旧できます。
- クライアントは WHOOP のレート制限ヘッダーに従い、バックオフ付きで再試行し、ページネーションに上限を設けます。結果が途中で切れていたり、概算だったりする場合は、完全な結果であるかのように見せかけず、その旨を出力します。
対応していないこと:WHOOP の公開 API には、ストレスモニターやヘルススパンなどの Peak 機能向けエンドポイントがまだありません。WHOOP が提供を開始したら、ここにも追加します。夜間センサーストリームはすべてのアカウントで有効になっているわけではないため、ツールは失敗するのではなく、その旨を報告します。一括エクスポートでは意図的にコレクションエンドポイントを取得します。生の睡眠ストリームは、get_sleep_stream(include_raw=true) を使って睡眠ごとに取得できます。
テストは105件で、すべて偽の WHOOP API を使ってオフラインで実行します。CI は Python 3.10〜3.13 で実行されます。
CLI
whoop-mcp-server setup Guided setup: app, authorize, auto-configure clients
whoop-mcp-server serve Run the server (--demo, --transport stdio|http|sse, --host, --port)
whoop-mcp-server status Config and token state
whoop-mcp-server doctor Diagnose setup and connectivity
whoop-mcp-server auth Scriptable OAuth flow
whoop-mcp-server logout Delete tokens (--revoke also revokes at WHOOP)
設定
whoop-mcp-server setup の実行後に、追加で必要な設定はありません。優先順位の高い順に、プロセス環境変数、./.env、~/.whoop-mcp/.env、~/.whoop-mcp/config.json が適用されます。
| 変数 | デフォルト | 用途 |
|---|---|---|
WHOOP_CLIENT_ID / WHOOP_CLIENT_SECRET | なし | WHOOP アプリの認証情報 |
WHOOP_REDIRECT_URI | http://localhost:8765/callback | ダッシュボードと完全に一致する必要があります |
WHOOP_MCP_DEMO | オフ | 1 を指定するとデモデータを提供します(--demo と同じです) |
WHOOP_MCP_DIR | ~/.whoop-mcp | トークン、設定、エクスポート |
WHOOP_MCP_TZ | システムのタイムゾーン | 「今日」と週の範囲に使う IANA タイムゾーン |
WHOOP_MCP_CACHE_TTL / WHOOP_MCP_TIMEOUT | 60 / 30 | 秒 |
WHOOP_MCP_LOG_LEVEL | INFO | ログは stderr に出力されます。stdout は MCP 用です |
WHOOP_ACCESS_TOKEN | なし | テスト用の固定トークン。更新は行いません |
プライバシー
WHOOP に対して読み取り専用で動作します。トークンは、アクセス許可を 0600 に設定してローカルに保存されます。書き込みが発生するのは、要求したローカルファイル(export_data)と、開始した OAuth フローだけです。知っておくべき点が1つあります。トレンドや相関関係などの集計データからは、個々の記録よりも多くの情報が明らかになる場合があります。健康データを預けられると信頼できる AI クライアントにのみ接続してください。ポリシー全文:PRIVACY.md。脆弱性について:SECURITY.md。
貢献
uv venv && uv pip install -e ".[dev]" && pytest && ruff check .
テストスイート全体をオフラインで実行できます。CONTRIBUTING.md には、データの正確性を保つための不変条件を記載しています。アーキテクチャの概要は次のとおりです。client.py が WHOOP と通信し、transform.py が記録を整理し、summaries.py と analytics.py が計算を行い、server.py がツールを公開します。oauth.py と tokens.py が認証を担当します。demo.py は生成されたアカウントです。
トラブルシューティング
| 症状 | 対処方法 |
|---|---|
| 「WHOOP authorization required」と表示される | whoop-mcp-server setup を実行するか、AI に WHOOP アカウントへの接続を依頼します |
| 同意後にリダイレクトが失敗する | ダッシュボードのリダイレクト URI が http://localhost:8765/callback と完全に一致している必要があります |
403 missing scope | アプリですべての読み取りスコープと offline を有効にしてから、whoop-mcp-server auth を再実行します |
| クライアントにツールが表示されない | whoop-mcp-server setup を再実行してから、クライアントを完全に再起動します |
| 今日の回復スコアが表示されない | WHOOP は起床後の同期を受けてスコアを算出します。その旨は概要に記載されます |
| 睡眠ストリームが「not available」と表示される | WHOOP はすべてのアカウントに対して睡眠ストリームを公開していません。毎晩の概要は引き続き利用できます |
| その他 | whoop-mcp-server doctor を実行するか、チャットから get_connection_status を実行するか、issue を作成します |
ライセンス
MIT。詳しくはLICENSEをご覧ください。WHOOP とは提携しておらず、WHOOP の推奨も受けていません。WHOOP は WHOOP, Inc. の商標です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。