WHOOP MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.39.2Updated Nov 14, 2026

Read WHOOP recovery, sleep, cycles, workouts and body measurements.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableLocation & LifestyleData & Analytics

Overview

AI-generated overview

Hosted remote MCP server that lets an assistant read your WHOOP recovery, sleep, cycle, workout and body-measurement data.

What you can do
  • Read profile and body measurements
  • List and fetch cycles, plus recovery for a cycle
  • List recoveries and sleep records, and fetch a single sleep
  • List and fetch workouts
  • Check monthly usage, request a missing feature, upgrade or cancel a paid plan
When to use it
Useful when you want to ask an assistant questions about your own WHOOP data, such as average recovery over recent weeks, last night's sleep versus sleep need, or workouts and strain for the past week.
Requirements
A remote MCP endpoint added by URL only; no local install. Sign-in is via OAuth, and the login page asks for your WHOOP credentials, which are stored per user. A free plan allows 50 tool calls per month; paid plans raise the limit.
Before you install
You hand your WHOOP account credentials to a third-party hosted service, which stores them per user. Paid plans cost money (Pro and Pro+ are billed monthly or yearly through a checkout link), and plan changes or cancellations affect billing. Meta tools can start an upgrade, change a plan or cancel a subscription, and a feature request is sent to the provider.

Installation

In SourceWeft

  1. Open WHOOP MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fwhoop/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "whoop-by-usefulapi": {
      "type": "http",
      "url": "https://whoop.usefulapi.io/mcp"
    }
  }
}

README

WHOOP MCP by usefulapi

Read WHOOP recovery, sleep, cycles, workouts and body measurements. Hosted, no local install.

Live endpoint: https://whoop.usefulapi.io/mcp · Homepage: https://usefulapi.io

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://whoop.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http whoop https://whoop.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "whoop": {      "url": "https://whoop.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your WHOOP credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/whoop/

On first connect you'll paste your WHOOP credentials. They are validated, stored per-user, and scoped to you — no keys in config files.

Tools

ToolTypeWhat it does
whoop_get_profilereadGet profile
whoop_body_measurementreadGet body measurement
whoop_list_cyclesreadList cycles
whoop_get_cyclereadGet cycle
whoop_get_cycle_recoveryreadGet cycle recovery
whoop_list_recoveriesreadList recoveries
whoop_list_sleepreadList sleep
whoop_get_sleepreadGet sleep
whoop_list_workoutsreadList workouts
whoop_get_workoutreadGet workout
whoop_usage_statusmetaUsage status (free-tier meter)
whoop_request_featuremetaRequest a missing feature
whoop_upgrademetaUpgrade to Pro or Pro+
whoop_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro$9/mo or $90/yr (2 months free)10,000 tool calls / month
Pro+$39/mo or $390/yr (2 months free)100,000 tool calls / month

Each paid plan covers this server only. Ask your AI to run whoop_upgrade and choose Pro or Pro+, billed monthly or yearly (it returns a Stripe Checkout link). If you already have Pro, ask to change it to Pro+. The change requires your confirmation, keeps your billing interval and charges the price difference for the rest of the period immediately. Cancel any time with whoop_cancel_subscription: your paid plan continues to the end of the paid period, with no refund for the current period, and asking to resume the same plan with whoop_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT

Source: servers/whoop/README.md at commit f22f848

Tools

10

whoop_get_profile

Get profile

The current user's basic WHOOP profile (user id, email, first name, last name). WHOOP REST: GET /v2/user/profile/basic. Scope: read:profile.

Takes no parameters.

whoop_body_measurement

Get body measurement

The user's body measurements (height in meters, weight in kilograms, max heart rate). WHOOP REST: GET /v2/user/measurement/body. Scope: read:body_measurement.

Takes no parameters.

whoop_list_cycles

List cycles

List the user's physiological cycles (a WHOOP 'day', ~24h anchored to sleep), most recent first. Each cycle carries a score with day strain, kilojoules burned, and average/max heart rate. Paginated (limit/nextToken) and filterable by created-time window (start/end). WHOOP REST: GET /v2/cycle. Scope: read:cycles.

ParametersendlimitstartnextToken

whoop_get_cycle

Get cycle

Get a single physiological cycle by its id (strain, kilojoules, average/max heart rate, start/end). WHOOP REST: GET /v2/cycle/{cycleId}. Scope: read:cycles.

ParameterscycleIdrequired

whoop_get_cycle_recovery

Get cycle recovery

Get the recovery scored for a specific cycle (recovery %, resting heart rate, HRV RMSSD, SpO2 %, skin temperature). WHOOP REST: GET /v2/cycle/{cycleId}/recovery. Scope: read:recovery.

ParameterscycleIdrequired

whoop_list_recoveries

List recoveries

List the user's recoveries, most recent first. Each recovery scores how ready the body is (recovery %, resting heart rate, HRV RMSSD, SpO2 %, skin temperature) and links to its cycle and sleep. Paginated (limit/nextToken) and filterable by created-time window (start/end). WHOOP REST: GET /v2/recovery. Scope: read:recovery.

ParametersendlimitstartnextToken

whoop_list_sleep

List sleep

List the user's sleep activities, most recent first. Each carries a score with sleep-stage summary, sleep needed, respiratory rate, and sleep performance %. Paginated (limit/nextToken) and filterable by created-time window (start/end). WHOOP REST: GET /v2/activity/sleep. Scope: read:sleep.

ParametersendlimitstartnextToken

whoop_get_sleep

Get sleep

Get a single sleep activity by its id (stage summary, sleep needed, respiratory rate, sleep performance %, start/end). WHOOP REST: GET /v2/activity/sleep/{sleepId}. Scope: read:sleep.

ParameterssleepIdrequired

whoop_list_workouts

List workouts

List the user's workouts, most recent first. Each carries a score with strain, average/max heart rate, distance (meters), and per-heart-rate-zone durations. Paginated (limit/nextToken) and filterable by created-time window (start/end). WHOOP REST: GET /v2/activity/workout. Scope: read:workout.

ParametersendlimitstartnextToken

whoop_get_workout

Get workout

Get a single workout by its id (sport, strain, average/max heart rate, distance, zone durations, start/end). WHOOP REST: GET /v2/activity/workout/{workoutId}. Scope: read:workout.

ParametersworkoutIdrequired

Version history

26
  1. v1.39.2LatestNov 14, 2026
  2. v1.39.1Nov 13, 2026
  3. v1.38.0Nov 12, 2026
  4. v1.37.3Nov 11, 2026
  5. v1.36.5Nov 8, 2026
  6. v1.36.4Nov 7, 2026
  7. v1.35.3Nov 5, 2026
  8. v1.35.2Nov 5, 2026
  9. v1.35.1Nov 4, 2026
  10. v1.35.0Nov 3, 2026
  11. v1.34.1Nov 3, 2026
  12. v1.33.0Nov 1, 2026
  13. v1.31.0Oct 31, 2026
  14. v1.30.0Oct 31, 2026
  15. v1.29.2Oct 30, 2026
  16. v1.29.0Oct 30, 2026
  17. v1.24.0Oct 26, 2026
  18. v1.21.3Oct 25, 2026
  19. v1.21.0Oct 25, 2026
  20. v1.20.0Oct 24, 2026
  21. v1.17.0Oct 23, 2026
  22. v1.16.4Oct 22, 2026
  23. v1.16.3Oct 21, 2026
  24. v1.11.1Oct 9, 2026
  25. v1.10.0Oct 9, 2026
  26. v1.0.0Sep 29, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations