プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

WHOOP MCP

作者:cunicopia-devバージョン 0.1.0i★ –iパソコンで動く
レジストリ名io.github.cunicopia-dev/whoop-postgres-mcp

インストール

概要

作者による説明(英語の原文)

Sync WHOOP recovery, sleep, strain, and workouts into Postgres and query them from any MCP client.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: データベース・データセット
  • 入力が必要なもの:WHOOP_CLIENT_ID, WHOOP_CLIENT_SECRET, WHOOP_REDIRECT_URI, WHOOP_DB_URL

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • 自分で入力するもの: WHOOP_CLIENT_ID, WHOOP_CLIENT_SECRET, WHOOP_REDIRECT_URI, WHOOP_DB_URL

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

  • PyPIPythonのuvのインストール(uvxコマンドに必要)

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます

{
  "mcpServers": {
    "whoop-postgres": {
      "command": "uvx",
      "args": [
        "whoop-postgres-mcp"
      ],
      "env": {
        "WHOOP_CLIENT_ID": "your-value",
        "WHOOP_CLIENT_SECRET": "your-value",
        "WHOOP_REDIRECT_URI": "your-value",
        "WHOOP_DB_URL": "your-value"
      }
    }
  }
}

ターミナルでこれを実行します

claude mcp add whoop-postgres --env WHOOP_CLIENT_ID=your-value --env WHOOP_CLIENT_SECRET=your-value --env WHOOP_REDIRECT_URI=your-value --env WHOOP_DB_URL=your-value -- uvx whoop-postgres-mcp

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "whoop-postgres": {
      "command": "uvx",
      "args": [
        "whoop-postgres-mcp"
      ],
      "env": {
        "WHOOP_CLIENT_ID": "your-value",
        "WHOOP_CLIENT_SECRET": "your-value",
        "WHOOP_REDIRECT_URI": "your-value",
        "WHOOP_DB_URL": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "whoop-postgres": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "whoop-postgres-mcp"
      ],
      "env": {
        "WHOOP_CLIENT_ID": "your-value",
        "WHOOP_CLIENT_SECRET": "your-value",
        "WHOOP_REDIRECT_URI": "your-value",
        "WHOOP_DB_URL": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • WHOOP_CLIENT_ID 秘密 必須 env
    Client ID of your WHOOP developer app (developer.whoop.com).
  • WHOOP_CLIENT_SECRET 秘密 必須 env
    Client secret of your WHOOP developer app.
  • WHOOP_REDIRECT_URI 必須 env
    OAuth redirect URI, exactly as registered on the WHOOP app (e.g. http://localhost:8765/callback).
  • WHOOP_DB_URL 秘密 必須 env
    Postgres DSN the server syncs into and reads from (e.g. postgresql://user:pass@localhost:5432/whoop). Tokens are stored in this database.

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント cunicopia-dev で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

データベース・データセットのほかのサーバーとの比較i

  • このカテゴリのほかの953件のうち0%よりスターが多い
  • このカテゴリのほかの953件のうち37%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの953件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

WHOOP MCPは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:WHOOP_CLIENT_ID, WHOOP_CLIENT_SECRET, WHOOP_REDIRECT_URI, WHOOP_DB_URL

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.1.0)がレジストリに届いたのは2 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。

代わりに使えるものは?

同じカテゴリには:Supabase, MongoDB MCP Server, Elasticsearch MCP Server

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Supabase

作者:supabase

MCP server for interacting with the Supabase platform

パソコンでもクラウドでも★ 2,993Apache-2.0昨日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

whoop-mcp

An [MCP](https://modelcontextprotocol.io) server that syncs your WHOOP data into Postgres and lets AI agents query it.

WHOOP's public API is rate-limited, cursor-paginated, and returns one record at a time. That is fine for a sync job and terrible for an agent that wants to answer "how does my HRV this week compare to my baseline?". So this server splits the job in two:

  • a sync path that pulls cycles, recovery, sleep, workouts, and body measurements from the WHOOP API into a documented Postgres schema, keeping the raw JSON of every record alongside the typed columns;
  • a query path of MCP tools that read Postgres only. They are fast, never hit WHOOP's rate limits, and keep working offline once data is synced.

Your data lands in a database you own, in a schema you can read with any SQL client, and nothing leaves your machine except calls to WHOOP itself.

Python 3.12+ · MIT · stdio MCP server + CLI · Postgres storage


Contents

  • Tools
  • Install
  • Quickstart
  • Configuration
  • Register with an MCP client
  • How sync works
  • Security model
  • Development
  • Project layout
  • License

Tools

Two write-side tools talk to the WHOOP API; everything else reads Postgres only.

ToolArgsWhat it does
whoop_auth_urlnoneReturns the OAuth authorization URL to open in a browser.
whoop_connectcodeExchanges the OAuth code for tokens, stores them, returns the connected user.
whoop_syncdays=7, full=falsePulls data from WHOOP into Postgres. Returns per-collection counts and errors.
whoop_statusnonePer-collection sync health: last sync, watermark, row count, last error.
whoop_overviewdays=7Latest recovery and vitals vs. 30-day baseline, last night's sleep, recent workouts and strain.
whoop_recoverydays=7, limit=50Recent recovery scores, resting HR, HRV, SpO2, skin temperature.
whoop_sleepdays=7, limit=50Recent sleeps and naps with stage breakdown, need, performance, efficiency.
whoop_workoutsdays=14, limit=50Recent workouts with strain, HR, energy, distance, and zone minutes.
whoop_cyclesdays=7, limit=50Recent physiological cycles (WHOOP days) with day strain and HR.
whoop_baselinenone30-day mean and standard deviation per vital.

days is capped at 365 and limit at 200. All tools return JSON text.

Install

uv tool install whoop-postgres-mcp      # or: pipx install whoop-postgres-mcp

Or run it without installing:

uvx whoop-postgres-mcp --help

You also need a Postgres database (any recent version; 14+ is fine) and a WHOOP developer app. docs/SETUP.md walks through both.

Quickstart

export WHOOP_CLIENT_ID=...

export WHOOP_CLIENT_SECRET=... export WHOOP_REDIRECT_URI=http://localhost:8765/callback export WHOOP_DB_URL=postgresql://whoop:whoop@localhost:5432/whoop

whoop-mcp init-db # create the whoop schema (idempotent) whoop-mcp auth-url # print the URL to visit; approve access in a browser whoop-mcp connect # paste the code from the redirect URL whoop-mcp sync --all # first backfill; later runs: whoop-mcp sync --days 7 whoop-mcp # serve MCP over stdio

The same flow is available as MCP tools (whoop_auth_url, whoop_connect, whoop_sync) so an agent can drive the whole setup.

Configuration

All configuration is by environment variable. The server validates every variable at startup and exits with a message naming each missing one.

VariableRequiredMeaning
WHOOP_CLIENT_IDyesClient ID of your WHOOP developer app.
WHOOP_CLIENT_SECRETyesClient secret of your WHOOP developer app.
WHOOP_REDIRECT_URIyesRedirect URI, exactly as registered on the app. Any URL works; the server does not listen on it. You copy the code from the address bar.
WHOOP_DB_URLyesPostgres DSN, e.g. postgresql://user:pass@host:5432/db. Tokens and data live here.

Register with an MCP client

Claude Code:

claude mcp add whoop -e WHOOP_CLIENT_ID=... -e WHOOP_CLIENT_SECRET=... \

-e WHOOP_REDIRECT_URI=http://localhost:8765/callback \ -e WHOOP_DB_URL=postgresql://whoop:whoop@localhost:5432/whoop \ -- uvx whoop-postgres-mcp

Claude Desktop (claude_desktop_config.json) or any client that takes a stdio command:

{

"mcpServers": { "whoop": { "command": "uvx", "args": ["whoop-postgres-mcp"], "env": { "WHOOP_CLIENT_ID": "...", "WHOOP_CLIENT_SECRET": "...", "WHOOP_REDIRECT_URI": "http://localhost:8765/callback", "WHOOP_DB_URL": "postgresql://whoop:whoop@localhost:5432/whoop" } } } }

How sync works

WHOOP's collection endpoints filter on when a record *occurred*, not when it was last modified, and records change after creation (a sleep is created as PENDING_SCORE and scored later). The sync therefore:

  1. always re-fetches the last days days, which catches late re-scores;
  2. tracks a per-collection watermark (newest_updated_at in whoop_sync_state). If the last sync is older than days, the window is stretched back to the watermark minus a two-day lookback so a gap never leaves a hole;
  3. upserts every record on its natural key (id, or cycle_id for recovery), so overlapping windows are harmless and re-running is safe;
  4. records per-collection errors in whoop_sync_state and carries on with the other collections rather than aborting the run.

full=true (or whoop-mcp sync --all) drops the lower bound and walks the account's entire history. Body measurements are a single current record and are refreshed on every sync.

Token refresh is proactive (five minutes before expiry) and serialized through a Postgres advisory lock, so the MCP server and a cron-driven whoop-mcp sync can share one token row without racing.

The full data model is documented in docs/SCHEMA.md.

Security model

  • Database access is token access. OAuth tokens are stored in plaintext in whoop.whoop_tokens. Anyone who can read that table can call the WHOOP API as you until the refresh token is revoked. Restrict database grants accordingly and treat WHOOP_DB_URL as a secret.
  • Read tools never reach the network. Only whoop_connect and whoop_sync talk to WHOOP. Everything else is a SQL query against your database.
  • Nothing is written outside Postgres. No files, no caches, no telemetry.
  • Scopes are read-only. The app requests read:* scopes plus offline for refresh tokens. It cannot modify anything in your WHOOP account.
  • To revoke access, delete the row from whoop_tokens and remove the app from your WHOOP account settings.

Development

git clone https://github.com/cunicopia-dev/whoop-mcp

cd whoop-mcp uv venv && source .venv/bin/activate uv pip install -e ".[dev]"

ruff check . mypy src pytest # pure-logic tests WHOOP_TEST_DB_URL=postgresql://whoop:whoop@localhost:5432/whoop pytest # + live DB tests

The live tests apply the schema and truncate every table in the target database before each test. Point them at a scratch database.

A throwaway Postgres for local testing:

docker run -d --rm --name whoop-pg -e POSTGRES_USER=whoop -e POSTGRES_PASSWORD=whoop \

-e POSTGRES_DB=whoop -p 5432:5432 postgres:16-alpine

Project layout

src/whoop_mcp/

config.py environment variables, validated at startup auth.py OAuth2 flow, token persistence, locked refresh client.py httpx client: pagination, backoff, Retry-After schema.sql the Postgres DDL (applied by whoop-mcp init-db) db.py connection + schema helpers sync.py incremental sync with per-collection watermarks queries.py read-side SQL behind the MCP tools server.py MCP server over stdio + CLI entry point docs/ SETUP.md WHOOP app registration, OAuth walkthrough, DB init, first sync SCHEMA.md column-by-column data model tests/ config, schema, client, auth, sync, and stdio protocol tests

License

MIT. See LICENSE.

PopNxに聞く