MCP.Market

Whoop MCP server

by rajdeepmondaldotcom·io.github.rajdeepmondaldotcom/whoop-mcp-server·v0.0.12·2 stars

WHOOP recovery, sleep, strain, and workouts for any AI. Analysis tools, demo mode, fast setup.

B82/100grade B
What users say
No reviews yet
Be the first
Safety scan
B82/100

full report

Adoption
New

2 stars

Reviews

Write one

Nobody has reviewed Whoop yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Whoop tools (24)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • compare_periods

    Compare two date ranges across recovery, HRV, resting heart rate, sleep, strain, calories, and workout count - with per-metric change, percent change, and an improved/declined/unchanged assessment. Period A is the baseline; period B is compared against it.

  • connect_whoop_account

    Connect or re-authorize the user's WHOOP account from inside the chat: opens the WHOOP consent page in the user's browser on this machine and waits up to 3 minutes for them to approve. Only call this when the user explicitly asks to connect, reconnect, or fix authorization. Requires WHOOP app credentials to be configured already (otherwise it returns setup steps instead of opening anything).

  • export_data

    Export every WHOOP record in a date range to local files on this machine: data.json (complete transformed dataset, plus raw API records when include_raw is true), daily_summary.csv (one row per day), and workouts.csv. Nothing is uploaded anywhere. Returns the file paths and record counts. Large ranges can take a minute or two.

  • fetch

    Fetch the full document for an id returned by `search`. Supported id forms: day:YYYY-MM-DD, sleep:<uuid>, workout:<uuid>, cycle:<int>, recovery:<cycle_int>, profile.

  • get_activity_mapping

    Map a legacy WHOOP v1 activity id to its v2 UUID. Useful when older exports, links, or integrations refer to an activity by v1_id.

  • get_connection_status

    Whether this server is connected to a WHOOP account: app credentials, token state and expiry, granted scopes, and a live API check. Call this first when WHOOP data tools fail.

  • get_correlations

    How the user's metrics move together day-to-day (7-180 day window): strain vs next-morning recovery, sleep duration vs recovery, sleep consistency vs recovery, strain vs that night's sleep, HRV vs recovery. Pearson r with strength labels and plain-English interpretations - correlation, not causation.

  • get_cycle

    Get one cycle by id, optionally with the recovery and sleep that belong to it (WHOOP links each recovery and primary sleep to a cycle). Set include_raw=true to also attach WHOOP's untouched API records.

  • get_cycles

    List physiological cycles (WHOOP's wake-to-wake "days"): day strain, calories, heart rate. Newest first; the newest cycle is usually still in progress.

  • get_daily_summary

    One day of WHOOP data in a single call: recovery score, sleep, day strain, and workouts, with a one-line summary. The best first tool for "how am I doing" or "how did I sleep" questions.

  • get_health_overview

    The holistic everything-at-once view (7-180 day window): today's status, recovery/sleep/strain trend directions, training load, personal records and streaks, and the strongest behavior-physiology correlations. The best first call for "give me the full picture of my health".

  • get_personal_records

    Bests, worsts, and streaks over a window (7-180 days): best/worst recovery, highest HRV, lowest resting heart rate, longest sleep, highest strain day, biggest workout, green-recovery streaks, and totals.

  • get_profile

    Get the user's WHOOP profile and body measurements (name, email, height, weight, max heart rate). Set include_raw=true to also attach WHOOP's untouched profile and body-measurement records.

  • get_recoveries

    List recovery records (recovery %, HRV, resting heart rate, SpO2, skin temperature), newest first.

  • get_recovery_trends

    Recovery trends over a window (7-180 days): statistics, trend direction, and unusual days for recovery %, HRV, and resting heart rate, plus a daily table. Trend directions account for metric polarity (rising HRV is good, rising resting heart rate is not).

  • get_sleep

    Get one sleep record by its UUID (from get_sleeps or a recovery's sleep_id). Set include_raw=true to also attach WHOOP's untouched API record.

  • get_sleep_stream

    Minute-level overnight sensor data for one sleep: heart rate and skin temperature curves (downsampled to resolution_minutes buckets) plus overnight stats like the lowest heart rate and when it happened. Get the sleep_id from get_sleeps, get_daily_summary, or a recovery record. WHOOP does not expose this stream for every account/app - if unavailable, a clear note is returned instead of an error. Se

  • get_sleep_trends

    Sleep trends over a window (7-180 days): hours slept, performance, efficiency, consistency, and sleep debt - statistics, trend directions, unusual nights, and a nightly table. Naps are counted but excluded from nightly averages.

  • get_sleeps

    List sleep records (duration, stages, efficiency, performance, sleep debt), newest first.

  • get_strain_trends

    Strain and training-load trends over a window (7-180 days): daily strain statistics, calories, workout totals by sport, and the acute:chronic load ratio (7-day vs 28-day average strain) when enough data exists.

  • get_weekly_report

    Monday-to-Sunday report: a per-day grid of recovery, sleep, and strain, plus weekly averages and workout totals.

  • get_workout

    Get one workout by its UUID (from get_workouts). Set include_raw=true to also attach WHOOP's untouched API record.

  • get_workouts

    List workouts (sport, strain, calories, heart rate, distance, HR zones), newest first. Optionally filter by sport name (substring match, e.g. "run").

  • search

    Search WHOOP data with a natural-language query (e.g. "sleep last week", "runs this month", "recovery yesterday"). Returns matching day summaries, workouts, and sleeps as documents whose ids can be passed to `fetch`.

Public scan report

scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it

no findings
  • Code scan22 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 106 days ago8/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 82/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Whoop compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
82/100
higher than 63% of 48,255 servers
Tools
24
the typical server has 7
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
2
more than 75% of 28,688 servers

What its tools let an agent do: 24 read

Install Whoop in Claude Code, Cursor or VS Code

claude mcp add whoop-mcp-server -- uvx whoop-mcp-server
Add to Cursor

What the publisher says

From the Whoop repository's README, as published. We do not edit it. Read it on GitHub

<!-- mcp-name: io.github.rajdeepmondaldotcom/whoop-mcp-server -->

whoop-mcp-server

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.

What you need

  • A WHOOP account. Any membership works.
  • uv or pipx, to install one command line tool.
  • An MCP client: Claude Desktop, Claude Code, Cursor, Windsurf, VS Code, or ChatGPT.

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.

Set it up

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:

  1. Your WHOOP app. The wizard opens WHOOP's developer dashboard and tells you exactly what to click: create a team, create an app, enable every scope including 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.
  1. Authorize. Your browser opens WHOOP's consent screen. Approve it. Tokens land in ~/.whoop-mcp and refresh themselves from then on. You never do this again.
  1. Proof. The wizard makes a live API call and prints your actual latest recovery. If anything is misconfigured, you find out here, in the terminal, not later in a chat window.
  1. Your clients. It detects Claude Desktop, Cursor, Windsurf, VS Code, and Claude Code, and writes their configs for you. Existing config is backed up before any edit. If Claude Desktop is running, the wizard asks to quit it first, because Desktop silently overwrites config edits made while it's open. Then it launches the configured command once and confirms the server answers. "Done" means verified, not hopeful.

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.

What you can ask

24 tools cover every public user-readable endpoint in WHOOP's API, plus the analysis layer that turns records into answers.

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Whoop: common questions

Is Whoop MCP server safe?
Mostly: it is graded B (82/100). Read the Whoop safety report
How do I install Whoop?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Whoop need an API key?
No secret keys are declared. It reads 1 setting from the environment.
Is Whoop maintained?
The last commit was 145 days ago (2026-06-12). The latest release is v0.0.12.
How does Whoop compare with other MCP servers?
safety score 82/100 (higher than 63% of 48,255 servers); tools 24 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.