Whoop Mcp について
Whoop Mcpは、WHOOPのフィットネス・生体データをClaude、LLM、対応アプリに提供するMCPサーバーです。日次概要、睡眠、回復、負荷、ヘルススパンを個別のツールで分析できます。
主な機能
- 01日次指標の概要
- 02睡眠パフォーマンスと品質
- 03回復スコアと要因
- 04負荷、アクティビティ、心拍ゾーン
- 05WHOOP Ageと老化ペース
活用シーン
- 01日々のWHOOP指標の確認
- 02睡眠パフォーマンスの分析
- 03回復状況と30日基準値の比較
- 04ヘルススパンと生物学的年齢の確認
MCP 対応
概要、睡眠、回復、負荷、ヘルススパン分析を含む5種類のWHOOPデータツールを、MCPクライアントに公開します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
http://localhost:3000/mcpclaude mcp add --transport http whoop http://localhost:3000/mcp{"mcpServers":{"whoop":{"type":"http","url":"http://localhost:3000/mcp"}}}Cursor で開く{"servers":{"whoop":{"type":"http","url":"http://localhost:3000/mcp"}}}VS Code で開く{"mcpServers":{"whoop":{"type":"http","url":"http://localhost:3000/mcp"}}}{"mcpServers":{"whoop":{"serverUrl":"http://localhost:3000/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Whoop MCP Server
Whoop のフィットネスデータにアクセスするための Model Context Protocol(MCP)サーバーです。WHOOP の生体データを Claude、LLM、その他の MCP 互換アプリケーションに統合できます。
特長
- 包括的な概要 - 毎日のすべての指標を 1 回の呼び出しで取得
- 睡眠分析 - 睡眠パフォーマンスと質を詳細に分析
- 回復指標 - HRV、RHR、回復に影響する要因
- ストレインの追跡 - 心拍数ゾーンとアクティビティを含む、その日のストレイン
- ヘルススパン - 生物学的年齢と老化ペースの指標
クイックスタート
- リポジトリをクローンします:
git clone https://github.com/yourusername/whoop-mcp.git
cd whoop-mcp
- WHOOP の認証情報を記載した
.envファイルを作成します:
echo "[email protected]" > .env
echo "WHOOP_PASSWORD=your-password" >> .env
echo "PORT=3000" >> .env
または、環境変数として設定します:
export WHOOP_EMAIL='[email protected]'
export WHOOP_PASSWORD='your-password'
- 依存関係をインストールします:
bun install
- サーバーを起動します:
bun run start
または、ホットリロードを有効にして開発する場合:
bun run dev
デフォルトでは、サーバーは http://localhost:3000/mcp で実行されます。
Docker によるデプロイ
- 認証情報を記載した
.envファイルを作成します:
cp .env.example .env
# Edit .env with your actual credentials
- Docker イメージをビルドします:
docker build -t whoop-mcp .
- コンテナを実行します:
docker run -d \
--name whoop-mcp \
whoop-mcp
--env-file .env フラグにより、.env ファイルからすべての環境変数が自動的に読み込まれます。
- ログを表示します:
docker logs -f whoop-mcp
- コンテナを停止します:
docker stop whoop-mcp
Docker イメージは公式の Bun Alpine イメージをベースにしています。コンテナには、サーバーの状態を監視するヘルスチェック機能が含まれています。
Smithery へのデプロイ
このサーバーは、MCP サーバーをデプロイするプラットフォームである Smithery で動作するように設定されています。Smithery にデプロイすると、次のようになります。
-
クエリパラメーターによる設定:Smithery は、認証情報をクエリパラメーターとして
/mcpエンドポイント(smithery.yamlで定義)に渡します。whoopEmail- Whoop アカウントのメールアドレスwhoopPassword- Whoop アカウントのパスワードmcpAuthToken- オプションの認証トークン
-
設定の自動適用:Smithery 上で実行する場合、サーバーはクエリパラメーターからこれらの値を自動的に取得するため、環境変数を手動で設定する必要はありません。
-
デプロイボタン:上記の Railway デプロイボタンを使ってすばやくデプロイするか、その他のデプロイ方法については Smithery のドキュメントを参照してください。
リポジトリのルートにある smithery.yaml ファイルでは、Smithery が認証情報を安全に収集するために使用する設定スキーマを定義しています。
設定
認証情報の設定
認証情報を指定する方法は 2 つあります。
-
クエリパラメーター(Smithery で使用):認証情報をクエリパラメーターとして
/mcpエンドポイントに渡します。whoopEmail- Whoop アカウントのメールアドレスwhoopPassword- Whoop アカウントのパスワードmcpAuthToken- オプションの認証トークン
-
環境変数(ローカルまたは Docker でのデプロイ時に使用):
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
WHOOP_EMAIL | はい | - | Whoop アカウントのメールアドレス |
WHOOP_PASSWORD | はい | - | Whoop アカウントのパスワード |
MCP_AUTH_TOKEN | いいえ | - | MCP リクエスト用のオプションの認証トークン |
PORT | いいえ | 3000 | サーバーのポート |
サーバーはまずクエリパラメーターを確認し、指定されていない場合は環境変数を使用します。
オプションの認証
MCP サーバーを不正アクセスから保護するには、環境変数 MCP_AUTH_TOKEN を設定します。設定すると、/mcp エンドポイントへのすべてのリクエストに、一致する Bearer トークンを含める必要があります。
export MCP_AUTH_TOKEN='your-secret-token-here'
または、.env ファイルに追加します。
echo "MCP_AUTH_TOKEN=your-secret-token-here" >> .env
クライアントは、Authorization ヘッダーにトークンを含める必要があります。
curl -X POST http://localhost:3000/mcp \
-H "Authorization: Bearer your-secret-token-here" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
注意: MCP_AUTH_TOKEN が設定されていない場合、サーバーはすべてのリクエストを受け付けます(ローカル開発に便利です)。
Claude Desktop での使用
Claude Desktop の設定ファイルに次の設定を追加します。
MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
Windows:%APPDATA%/Claude/claude_desktop_config.json
認証なし(ローカル開発)
{
"mcpServers": {
"whoop": {
"command": "bun",
"args": ["run", "/absolute/path/to/whoop-mcp/index.ts"],
"env": {
"WHOOP_EMAIL": "[email protected]",
"WHOOP_PASSWORD": "your-password"
}
}
}
}
認証あり(推奨)
{
"mcpServers": {
"whoop": {
"command": "bun",
"args": ["run", "/absolute/path/to/whoop-mcp/index.ts"],
"env": {
"WHOOP_EMAIL": "[email protected]",
"WHOOP_PASSWORD": "your-password",
"MCP_AUTH_TOKEN": "your-secret-token-here"
}
}
}
}
/absolute/path/to/whoop-mcp/ を、このディレクトリの実際のパスに置き換えてください。
利用可能なツール
このサーバーは、Whoop データにアクセスするための 5 つの主要なツールを提供します。
whoop_get_overview
1 回の API 呼び出しで、指定した日付の Whoop の包括的な概要データを取得します。
パラメーター:
date(任意) - YYYY-MM-DD 形式の日付です。デフォルトは今日です。
戻り値:
- サイクル情報:サイクル ID、日数、日付表示、睡眠状態
- リアルタイム指標:リカバリースコア、1 日のストレイン、睡眠時間、消費カロリー
- ゲージ:ホーム画面に表示されるすべてのスコアゲージ
- アクティビティ:今日のアクティビティとスコア、時刻
- 主要な統計情報:HRV、RHR、VO2 Max、呼吸数、歩数と過去 30 日間の推移
- ジャーナル:ジャーナルの完了状況
使用例:
"Can you check my Whoop data for today?"
"What was my recovery score on 2024-01-15?"
"Show me my Whoop stats from yesterday"
"How many steps did I take and what were my activities today?"
whoop_get_sleep
詳細な睡眠分析とパフォーマンス指標を取得します。
パラメーター:
date(任意) - YYYY-MM-DD 形式の日付です。デフォルトは今日です。
戻り値:
- 睡眠パフォーマンススコア
- 必要な睡眠時間に対する実際の睡眠時間
- 睡眠の一貫性
- 睡眠効率
- 高い睡眠ストレスの割合
- 個別のインサイトと推奨事項
使用例:
"How did I sleep last night?"
"What's my sleep performance for October 27?"
"Why is my sleep score low today?"
whoop_get_recovery
要因や推移を含む、包括的なリカバリーの詳細分析を取得します。
パラメーター:
date(任意) - YYYY-MM-DD 形式の日付です。デフォルトは今日です。
戻り値:
- リカバリースコア(0~100%)
- リカバリーの要因:
- 心拍変動(HRV)
- 安静時心拍数(RHR)
- 呼吸数
- 睡眠パフォーマンス
- 過去 30 日間の基準値との比較を示す傾向
- 個別のコーチによるインサイト
使用例:
"What's my recovery score today?"
"Show me my recovery analysis for yesterday"
"How is my HRV trending compared to my baseline?"
whoop_get_strain
要因、アクティビティ、推移を含む、包括的なストレインの詳細分析を取得します。
パラメーター:
date(任意) - YYYY-MM-DD 形式の日付です。デフォルトは今日です。
戻り値:
- 目標範囲と最適範囲を含むストレインスコア
- ストレインの要因:
- 心拍ゾーン 1~3
- 心拍ゾーン 4~5
- 筋力トレーニングの時間
- 歩数
- 今日のアクティビティと個別のストレインスコア
- 過去 30 日間の基準値との比較を示す傾向
- 個別のコーチによるインサイト
使用例:
"What's my strain score today?"
"Show me my strain analysis and activities"
"How much time did I spend in heart rate zones 4-5?"
"Did I reach my optimal strain target?"
whoop_get_healthspan
WHOOP Age(生物学的年齢)と老化速度の指標を含む、包括的な健康寿命分析を取得します。
パラメーター:
date(任意) - YYYY-MM-DD 形式の日付です。デフォルトは今日です。
戻り値:
- WHOOP Age(生物学的年齢)
- 年齢の状態(暦年齢と比較して若い、同じ、年上)
- 暦年齢との差(年数)
- 老化速度(例:0.5x は平均より老化が遅いことを示します)
- 前の期間との比較
- 健康寿命の測定に用いる週ごとの日付範囲
使用例:
"What's my WHOOP Age?"
"Show me my biological age and healthspan data"
"How fast am I aging compared to average?"
"Am I aging slower or faster than my chronological age?"
動作の仕組み
サーバーは認証を自動的に処理します。
- 初回のリクエスト時に、メールアドレスとパスワードでログインします
- アクセストークンを保存します(有効期間は 24 時間です)
- トークンの期限が切れる前に、自動的に再認証します
- 再認証後、失敗したリクエストを再試行します
セキュリティ
ベストプラクティス
.envファイルは絶対にコミットしないでください。WHOOP の認証情報も共有しないでください。- サーバーは Whoop の認証トークンをメモリ内にのみ保存します(24 時間後に期限切れになります)。
- サーバーをネットワークや信頼できないクライアントに公開する場合は、
MCP_AUTH_TOKENを使用してください。 MCP_AUTH_TOKENには、強力でランダムなトークンを生成してください(例:openssl rand -hex 32を使用)。- 本番環境またはネットワーク上で実行する場合は、必ず
MCP_AUTH_TOKENを設定してください。
コントリビューション
コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
MIT - 詳細については LICENSE ファイルを参照してください
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。