mcpField
W
Whoop Mcp

Whoop Mcp

リモート
github.com/JedPattersonnヘルスケア1352 週間前に更新
リポジトリ

Whoop Mcp について

Whoop Mcpは、WHOOPのフィットネス・生体データをClaude、LLM、対応アプリに提供するMCPサーバーです。日次概要、睡眠、回復、負荷、ヘルススパンを個別のツールで分析できます。

主な機能

  1. 01日次指標の概要
  2. 02睡眠パフォーマンスと品質
  3. 03回復スコアと要因
  4. 04負荷、アクティビティ、心拍ゾーン
  5. 05WHOOP Ageと老化ペース

活用シーン

  1. 01日々のWHOOP指標の確認
  2. 02睡眠パフォーマンスの分析
  3. 03回復状況と30日基準値の比較
  4. 04ヘルススパンと生物学的年齢の確認

MCP 対応

概要、睡眠、回復、負荷、ヘルススパン分析を含む5種類のWHOOPデータツールを、MCPクライアントに公開します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttp://localhost:3000/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

Whoop MCP Server

Whoop のフィットネスデータにアクセスするための Model Context Protocol(MCP)サーバーです。WHOOP の生体データを Claude、LLM、その他の MCP 互換アプリケーションに統合できます。

Railway にデプロイ

特長

  • 包括的な概要 - 毎日のすべての指標を 1 回の呼び出しで取得
  • 睡眠分析 - 睡眠パフォーマンスと質を詳細に分析
  • 回復指標 - HRV、RHR、回復に影響する要因
  • ストレインの追跡 - 心拍数ゾーンとアクティビティを含む、その日のストレイン
  • ヘルススパン - 生物学的年齢と老化ペースの指標

クイックスタート

  1. リポジトリをクローンします:
git clone https://github.com/yourusername/whoop-mcp.git
cd whoop-mcp
  1. 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'
  1. 依存関係をインストールします:
bun install
  1. サーバーを起動します:
bun run start

または、ホットリロードを有効にして開発する場合:

bun run dev

デフォルトでは、サーバーは http://localhost:3000/mcp で実行されます。

Docker によるデプロイ

  1. 認証情報を記載した .env ファイルを作成します:
cp .env.example .env
# Edit .env with your actual credentials
  1. Docker イメージをビルドします:
docker build -t whoop-mcp .
  1. コンテナを実行します:
docker run -d \
  --name whoop-mcp \
  whoop-mcp

--env-file .env フラグにより、.env ファイルからすべての環境変数が自動的に読み込まれます。

  1. ログを表示します:
docker logs -f whoop-mcp
  1. コンテナを停止します:
docker stop whoop-mcp

Docker イメージは公式の Bun Alpine イメージをベースにしています。コンテナには、サーバーの状態を監視するヘルスチェック機能が含まれています。

Smithery へのデプロイ

このサーバーは、MCP サーバーをデプロイするプラットフォームである Smithery で動作するように設定されています。Smithery にデプロイすると、次のようになります。

  1. クエリパラメーターによる設定:Smithery は、認証情報をクエリパラメーターとして /mcp エンドポイント(smithery.yaml で定義)に渡します。

    • whoopEmail - Whoop アカウントのメールアドレス
    • whoopPassword - Whoop アカウントのパスワード
    • mcpAuthToken - オプションの認証トークン
  2. 設定の自動適用:Smithery 上で実行する場合、サーバーはクエリパラメーターからこれらの値を自動的に取得するため、環境変数を手動で設定する必要はありません。

  3. デプロイボタン:上記の Railway デプロイボタンを使ってすばやくデプロイするか、その他のデプロイ方法については Smithery のドキュメントを参照してください。

リポジトリのルートにある smithery.yaml ファイルでは、Smithery が認証情報を安全に収集するために使用する設定スキーマを定義しています。

設定

認証情報の設定

認証情報を指定する方法は 2 つあります。

  1. クエリパラメーター(Smithery で使用):認証情報をクエリパラメーターとして /mcp エンドポイントに渡します。

    • whoopEmail - Whoop アカウントのメールアドレス
    • whoopPassword - Whoop アカウントのパスワード
    • mcpAuthToken - オプションの認証トークン
  2. 環境変数(ローカルまたは 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?"

動作の仕組み

サーバーは認証を自動的に処理します。

  1. 初回のリクエスト時に、メールアドレスとパスワードでログインします
  2. アクセストークンを保存します(有効期間は 24 時間です)
  3. トークンの期限が切れる前に、自動的に再認証します
  4. 再認証後、失敗したリクエストを再試行します

セキュリティ

ベストプラクティス
  • .env ファイルは絶対にコミットしないでください。WHOOP の認証情報も共有しないでください。
  • サーバーは Whoop の認証トークンをメモリ内にのみ保存します(24 時間後に期限切れになります)。
  • サーバーをネットワークや信頼できないクライアントに公開する場合は、MCP_AUTH_TOKEN を使用してください。
  • MCP_AUTH_TOKEN には、強力でランダムなトークンを生成してください(例:openssl rand -hex 32 を使用)。
  • 本番環境またはネットワーク上で実行する場合は、必ず MCP_AUTH_TOKEN を設定してください。

コントリビューション

コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。

ライセンス

MIT - 詳細については LICENSE ファイルを参照してください

コメント

MCP は初めてですか?

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

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