Medplum MCP
Securely access and manage FHIR healthcare data stored in Medplum.
WHOOP recovery, sleep, strain, and workouts for any AI. Analysis tools, demo mode, fast setup.
Pick the AI app you use, then copy the settings.
Passed 3/3 checks · Runs on your computer
First: which AI do you use?
Pick your app and the steps appear below.
One time only; it works for every server that needs Python (uv)
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
How to get a key is in the maker’s README below
SettingsDeveloperEdit Config
Checking the commands · copy buttons appear once they pass
Paste the key only into the app’s field, never into a chat or to anyone
Use Whoop MCP Server and tell me what you can do for me, then show me one thing✓ If Claude says it is using Whoop MCP Server or shows a Whoop MCP Server tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
ChatGPT cannot connect Whoop MCP Server yet
Whoop MCP Server runs on your computer, but ChatGPT can only connect servers that run on the web
A · Use an app that can connect Whoop MCP Server
B · Others in Clinics & health that work with ChatGPT
Picked from the most used in the same category, only ones that connect by address with no key
Works with Claude Code, with some setup first
You need a Whoop MCP Server key (create it on the maker’s site) · Install Python (uv) on your computer first (one time)
One time only; it works for every server that needs Python (uv)
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
How to get a key is in the maker’s README below
Mac: press Command+Space and type Terminal · Windows: open PowerShell
Checking the commands · copy buttons appear once they pass
Replace “your-value” with your key before pressing Enter
Paste the key only into the app’s field, never into a chat or to anyone
You should see Whoop MCP Server listed as connected
Use Whoop MCP Server and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using Whoop MCP Server or shows a Whoop MCP Server tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor, with some setup first
You need a Whoop MCP Server key (create it on the maker’s site) · Install Python (uv) on your computer first (one time)
One time only; it works for every server that needs Python (uv)
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
How to get a key is in the maker’s README below
Checking the commands · copy buttons appear once they pass
In the Whoop MCP Server settings, WHOOP_MCP_DEMO is empty; add your key and save
Paste the key only into the app’s field, never into a chat or to anyone
Use Whoop MCP Server and tell me what you can do for me, then show me one thing✓ If Cursor says it is using Whoop MCP Server or shows a Whoop MCP Server tool in the answer, you are connected
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code, with some setup first
You need a Whoop MCP Server key (create it on the maker’s site) · Install Python (uv) on your computer first (one time)
One time only; it works for every server that needs Python (uv)
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
How to get a key is in the maker’s README below
Checking the commands · copy buttons appear once they pass
In the Whoop MCP Server settings, WHOOP_MCP_DEMO is empty; add your key and save
Paste the key only into the app’s field, never into a chat or to anyone
Use Whoop MCP Server and tell me what you can do for me, then show me one thing✓ If VS Code says it is using Whoop MCP Server or shows a Whoop MCP Server tool in the answer, you are connected
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.
JSON settings are under “For developers” below
Claude Code
Checking the commands · copy buttons appear once they pass
Claude Desktop (claude_desktop_config.json)
Checking the commands · copy buttons appear once they pass
Cursor (~/.cursor/mcp.json)
Checking the commands · copy buttons appear once they pass
VS Code (mcp.json)
Checking the commands · copy buttons appear once they pass
WHOOP_MCP_DEMO envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
pypi: whoop-mcp-serverBased on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Run on your computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 13, 2026
The registry name was verified with the GitHub account rajdeepmondaldotcom, which owns the repo
Code last changed 5 months ago
Uses MIT
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
No reviews yet
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed 5 months ago, and the latest version (0.0.12) reached the registry 5 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.
In the same category: Medplum MCP, Mirobody, Apple Health
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Securely access and manage FHIR healthcare data stored in Medplum.
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
Local-first Apple Health MCP server for questions about your sleep, workouts and heart data.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Your WHOOP shows you charts. It can't answer "should I train hard today" or "what actually hurts my recovery". This server can.
It connects your WHOOP data to Claude, ChatGPT, and any MCP client. You ask in plain English. It computes the answer from your own records and lets the AI explain it.
You: should I train hard today?
AI: Recovery 81% (green). HRV trending up. Sleep debt cleared. Your 7-day load is 0.94x your 28-day base. You are conditioned for more.
Runs on your machine. Read-only. The only network peer is api.prod.whoop.com. No telemetry. MIT.
One constraint to know before you start. WHOOP has no shared developer app, so during setup you create your own free one. It takes about two minutes of clicking, and it is the reason this is private by design: your tokens belong to your app, on your machine, and your health data never routes through anyone else's server. Including mine.
Install the tool:
uv tool install whoop-mcp-server
(pipx install whoop-mcp-server works the same.)
Then run the one command that does everything:
whoop-mcp-server setup
Here is what happens, in order, so nothing surprises you:
offline, set the redirect URL to exactly http://localhost:8765/callback. The form requires a privacy policy URL. Use this repo's: https://github.com/rajdeepmondaldotcom/whoop-mcp-server/blob/main/PRIVACY.md. Copy the Client ID and Secret, paste them into the terminal. They're stored locally with 0600 permissions.~/.whoop-mcp and refresh themselves from then on. You never do this again.Restart your client. Ask it: "How did I sleep last night?" Then ask the better question: "Give me the full picture of my health this quarter."
Two useful asides. If you want to see the tools work before connecting anything, whoop-mcp-server serve --demo serves 150 days of realistic generated data through the same pipeline. And if anything misbehaves later, whoop-mcp-server doctor names what's wrong and the fix.
24 tools cover every public user-readable endpoint in WHOOP's API, plus the analysis layer that turns records into answers.
| Ask | Tool behind it |
|---|---|
| "Give me the full picture of my health" | get_health_overview: status, trends, training load, records, and correlations in one call |
| "How am I doing today?" | get_daily_summary: recovery, sleep, strain, workouts for any day |
| "What actually affects my recovery?" | get_correlations: strain vs next-morning recovery, sleep vs recovery, with plain readings |
| "Am I overtraining?" | get_strain_trends: acute vs chronic load, per-sport breakdown |
| "Is my HRV improving?" | get_recovery_trends: direction, confidence, unusual days |
| "Show my overnight heart rate curve" | get_sleep_stream: minute-level HR and skin temp, lowest point and when; include_raw=true keeps WHOOP's untouched stream |
| "This month vs last month?" | compare_periods: every metric, improved or declined |
| "My records this year?" | get_personal_records: bests, worsts, green streaks |
| "Export everything" | export_data: full collection history to local JSON and CSV, with raw records by default |
| Week grids, raw records, profile | get_weekly_report, get_sleeps/workouts/cycles/recoveries, by-id tools with include_raw, get_profile(include_raw=true) |
| "I have an old WHOOP activity id" | get_activity_mapping: map a legacy v1 activity id to its v2 UUID |
| Connection trouble | get_connection_status, connect_whoop_account |
Dates are plain English everywhere: yesterday, last 30 days, this week, 2 years ago, 2026-05.
ChatGPT's required search and fetch tools are implemented too, plus 4 resources and 4 ready-made prompts (morning_readiness, weekly_review, sleep_coach, training_planner).
More questions worth asking: docs/PROMPTS.md.
| Client | Setup |
|---|---|
| Claude Desktop | whoop-mcp-server setup configures it for you. No terminal at all: download whoop-mcp-server.mcpb from the latest release and open it (needs uv installed; demo mode is a toggle in its settings) |
| Claude Code | claude mcp add whoop -- whoop-mcp-server serve (setup offers this too) |
| Cursor | auto via setup, or |
| Windsurf | auto via setup |
| VS Code | auto via setup, or |
| ChatGPT | remote connector, see below |
| Docker | docker build -t whoop-mcp-server . && docker run -i --rm -e WHOOP_MCP_DEMO=1 whoop-mcp-server (mount ~/.whoop-mcp for real data) |
| Any MCP client | command: whoop-mcp-server with args: ["serve"]. Inspector: npx @modelcontextprotocol/inspector whoop-mcp-server serve |
ChatGPT setup
ChatGPT connects to remote MCP servers, so expose the HTTP transport and tunnel it:
whoop-mcp-server serve --transport http --port 8000 # endpoint: /mcp
ngrok http 8000
Then in ChatGPT: Settings, Apps & Connectors, Advanced settings, enable Developer mode, create a connector with https:// /mcp and no auth.
Be careful here: a no-auth tunnel means anyone with the URL can read your health data. Keep the URL private and the tunnel short-lived. Claude's stdio setup never exposes anything.
The model is maybe 20% of this product. The other 80% is making the numbers right. Models are bad at arithmetic over 90 days of records, so this server computes first and lets the model explain.
What it can't do: WHOOP's public API has no endpoints yet for Peak features like the stress monitor and healthspan. When WHOOP ships them, they land here. The overnight sensor stream isn't enabled for every account, and the tool reports that instead of failing. Bulk export intentionally fetches the collection endpoints; raw sleep streams are available per sleep with get_sleep_stream(include_raw=true).
105 tests, all offline against a faked WHOOP API. CI on Python 3.10 to 3.13.
whoop-mcp-server setup Guided setup: app, authorize, auto-configure clients
whoop-mcp-server serve Run the server (--demo, --transport stdio|http|sse, --host, --port) whoop-mcp-server status Config and token state whoop-mcp-server doctor Diagnose setup and connectivity whoop-mcp-server auth Scriptable OAuth flow whoop-mcp-server logout Delete tokens (--revoke also revokes at WHOOP)
Nothing required after whoop-mcp-server setup. Overrides, in priority order: process env, ./.env, ~/.whoop-mcp/.env, ~/.whoop-mcp/config.json.
| Variable | Default | Purpose |
|---|---|---|
WHOOP_CLIENT_ID / WHOOP_CLIENT_SECRET | none | WHOOP app credentials |
WHOOP_REDIRECT_URI | http://localhost:8765/callback | Must exactly match the dashboard |
WHOOP_MCP_DEMO | off | 1 serves demo data (same as --demo) |
WHOOP_MCP_DIR | ~/.whoop-mcp | Tokens, config, exports |
WHOOP_MCP_TZ | system zone | IANA timezone for "today" and week bounds |
WHOOP_MCP_CACHE_TTL / WHOOP_MCP_TIMEOUT | 60 / 30 | Seconds |
WHOOP_MCP_LOG_LEVEL | INFO | Logs go to stderr. stdout belongs to MCP |
WHOOP_ACCESS_TOKEN | none | Static token for testing, no refresh |
Read-only against WHOOP. Tokens stored locally with 0600 permissions. The only writes are local files you ask for (export_data) and the OAuth flow you trigger. One thing worth knowing: aggregates like trends and correlations can reveal more about you than single records. Connect this only to AI clients you trust with health data. Full policy: PRIVACY.md. Vulnerabilities: SECURITY.md.
uv venv && uv pip install -e ".[dev]" && pytest && ruff check .
The whole test suite runs offline. CONTRIBUTING.md lists the invariants that keep the data honest. The short version of the architecture: client.py talks to WHOOP, transform.py cleans the records, summaries.py and analytics.py do the math, server.py exposes the tools. oauth.py and tokens.py own auth. demo.py is the generated account.
| Symptom | Fix |
|---|---|
| "WHOOP authorization required" | whoop-mcp-server setup, or ask your AI to connect your WHOOP account |
| Redirect fails after consent | The dashboard redirect URI must be exactly http://localhost:8765/callback |
403 missing scope | Enable all read scopes plus offline on the app, then re-run whoop-mcp-server auth |
| Tools missing in a client | Re-run whoop-mcp-server setup, then fully restart the client |
| No recovery shown today | WHOOP scores it after you wake and sync. The summary says so |
| Sleep stream "not available" | WHOOP doesn't expose it for every account. Nightly summaries still work |
| Anything else | whoop-mcp-server doctor, or get_connection_status from