Sync WHOOP recovery, sleep, strain, and workouts into Postgres and query them from any MCP client.
MCPpedia last refreshed this data
io.github.cunicopia-dev/whoop-postgres-mcp is an MCP server that sync WHOOP recovery, sleep, strain, and workouts into Postgres and query them from any MCP client. Its tool list has not been published yet over stdio and http, requires no API key, and scores 56/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"whoop": {
"env": {
"WHOOP_DB_URL": "postgresql://whoop:whoop@localhost:5432/whoop",
"WHOOP_CLIENT_ID": "...",
"WHOOP_REDIRECT_URI": "http://localhost:8765/callback",
"WHOOP_CLIENT_SECRET": "..."
},
"args": [
"whoop-postgres-mcp"
],
"command": "uvx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Sync WHOOP recovery, sleep, strain, and workouts into Postgres and query them from any MCP client.
Run this in your terminal to verify the server starts. Then let us know if it worked - your result helps other developers.
uvx 'whoop-postgres-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked whoop-postgres-mcp against OSV.dev.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in data / health
Token-efficient database MCP server for PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLite
Manage Supabase projects — databases, auth, storage, and edge functions
Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡
Firecrawl, the context API for AI agents: search, scrape, interact with the web, plus paper search.
MCP Security Weekly
Get CVE alerts and security updates for io.github.cunicopia-dev/whoop-postgres-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP 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:
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
Two write-side tools talk to the WHOOP API; everything else reads Postgres only.
| Tool | Args | What it does |
|---|---|---|
whoop_auth_url | none | Returns the OAuth authorization URL to open in a browser. |
whoop_connect | code | Exchanges the OAuth code for tokens, stores them, returns the connected user. |
whoop_sync | days=7, full=false | Pulls data from WHOOP into Postgres. Returns per-collection counts and errors. |
whoop_status | none | Per-collection sync health: last sync, watermark, row count, last error. |
whoop_overview | days=7 | Latest recovery and vitals vs. 30-day baseline, last night's sleep, recent workouts and strain. |
whoop_recovery | days=7, limit=50 | Recent recovery scores, resting HR, HRV, SpO2, skin temperature. |
whoop_sleep | days=7, limit=50 | Recent sleeps and naps with stage breakdown, need, performance, efficiency. |
whoop_workouts | days=14, limit=50 | Recent workouts with strain, HR, energy, distance, and zone minutes. |
whoop_cycles | days=7, limit=50 | Recent physiological cycles (WHOOP days) with day strain and HR. |
whoop_baseline | none | 30-day mean and standard deviation per vital. |
days is capped at 365 and limit at 200. All tools return JSON text.
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.
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 <code> # 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 se