mcpField
W
whoop-mcp-server

whoop-mcp-server

ローカル
github.com/Zayden16ヘルスケア016 週間前に更新

whoop-mcp-server について

whoop-mcp-server は公式 Whoop API v2 経由で健康・活動データを取得する Go 製 MCP サーバーです。MCP クライアントから Whoop の記録を確認する用途向けで、API の JSON オブジェクトと平均 strain の集計ツールを提供します。

主な機能

  1. 01サイクル、回復、睡眠、ワークアウト記録の取得
  2. 02プロフィールと身体測定値の取得
  3. 03日付範囲の検索と自動ページネーション
  4. 04指定期間の平均 strain の計算
  5. 05OAuth 認証とトークンの自動更新

活用シーン

  1. 01当日の回復スコアを確認
  2. 02過去 1 週間の睡眠データを確認
  3. 03最近のサイクルの strain を取得
  4. 04直近数日の平均 strain を確認

MCP 対応

Whoop API v2 のプロフィール、サイクル、回復、睡眠、ワークアウト、身体測定データを MCP クライアント向けのツールとして公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

whoop-mcp-server

CI Release Go Version License: MIT

Go で記述された、公式 Whoop API v2 用の MCP サーバーです。 サイクル、リカバリー、睡眠、ワークアウト、プロフィールのデータを MCP ツールとして提供します。

ツール

すべてのツールは JSON を返します。レコードの形式は変更されていない Whoop API v2 オブジェクトであるため、API が提供するすべてのフィールドをモデルが利用できます。

ツール入力戻り値
get_profile—単一オブジェクト:user_id、email、first_name、last_name
get_body_measurement—単一オブジェクト:height_meter、weight_kilogram、max_heart_rate
get_cyclesstart_date、end_date、limit(すべて任意)サイクルレコードの配列 — 生理学的な1日につき1件:start/end、score_state、およびその日の strain、kilojoule、average_heart_rate、max_heart_rate を含む score
get_latest_cycle—単一のサイクルレコード(現在または直近の日)
get_recoveriesstart_date、end_date、limit(すべて任意)リカバリーレコードの配列 — 睡眠ごとに1件:cycle_id、sleep_id、および recovery_score(0~100)、resting_heart_rate、hrv_rmssd_milli、spo2_percentage、skin_temp_celsius を含む score
get_recovery_for_cyclecycle_id(必須)指定したサイクルの単一リカバリーレコード
get_sleepstart_date、end_date、limit(すべて任意)睡眠レコードの配列:start/end、nap フラグ、各睡眠ステージ(浅い睡眠/SWS/REM/覚醒)の時間(ミリ秒)、respiratory_rate、sleep_performance_percentage、sleep_efficiency_percentage、睡眠必要量の内訳を含む score
get_workoutsstart_date、end_date、limit(すべて任意)ワークアウトレコードの配列:sport_name、start/end、ワークアウトの strain、心拍数、kilojoule、distance_meter、altitude_gain_meter、心拍ゾーンごとの滞在時間(zone_durations、各心拍ゾーンのミリ秒)を含む score
get_average_straindays(任意、デフォルトは7)算出された集計値:{days, cycles_counted, average_strain}
check_auth_status—{authenticated: bool} と、成功時のプロフィール、または失敗時の error 文字列

注意事項:

  • 日付は YYYY-MM-DD 形式です。end_date は指定日を含みます(API の end が排他的である仕様に従い、内部では翌日の開始時刻に変換されます)。
  • コレクションは日付の降順(新しいものが先)で、ページネーションは透過的に処理されます。サーバーは limit 件(デフォルトは25件、最大100件)が集まるまで next_token をたどります。
  • スコアは時系列ではなく、各レコードの特定時点の値です。サイクルごとにひとつの負荷値、睡眠ごとにひとつのリカバリー値があります。傾向を調べるには、期間を指定して取得し、モデルに集計させるか(または組み込みの負荷平均を取得する get_average_strain を使用してください)。
  • レコードの score_state は SCORED、PENDING_SCORE、UNSCORABLE のいずれかです。score が存在するのは SCORED の場合のみです。

セットアップ

1. Whoop 開発者アプリを作成する

developer.whoop.com でアプリを作成し、次の項目を設定します。

  • リダイレクト URI: http://localhost:8719/callback
  • スコープ: read:cycles、read:recovery、read:sleep、read:workout、read:profile、read:body_measurement、offline

クライアント ID とクライアントシークレットを控えておきます。

2. インストール

Homebrew:

brew install zayden16/tap/whoop-mcp-server

または、Releases からビルド済みバイナリをダウンロードするか、次を実行します。

go install github.com/Zayden16/whoop-mcp-server@latest

または、ソースからビルドします。

go build -o whoop-mcp-server .
3. 認証する(初回のみ)
export WHOOP_CLIENT_ID=...
export WHOOP_CLIENT_SECRET=...
./whoop-mcp-server auth

OAuth フローを開始するブラウザーが開きます。トークンは ~/Library/Application Support/whoop-mcp/token.json(macOS)に保存され、その後は 自動的に更新されます(更新トークンはローテーションされます)。

4. Claude Code に登録する
claude mcp add whoop --scope user \
  -e WHOOP_CLIENT_ID=... \
  -e WHOOP_CLIENT_SECRET=... \
  -- /path/to/whoop-mcp-server

または Claude Desktop の場合は、claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "whoop": {
      "command": "/path/to/whoop-mcp-server",
      "env": {
        "WHOOP_CLIENT_ID": "...",
        "WHOOP_CLIENT_SECRET": "..."
      }
    }
  }
}

クエリの例

  • 「今日のリカバリースコアは?」
  • 「過去1週間の睡眠を表示して」
  • 「過去7日間の平均ストレインは?」

コメント

MCP は初めてですか?

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

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