WHOOP MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Use get_whoop_guide first. Preserve units, score states, pagination and missingness. WHOOP tools are read-only.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_whoop_guideA | Capabilities, units, limits, privacy and first-use guidance. No account needed. |
| get_whoop_profileA | Explicitly retrieve WHOOP member profile including name/email. Sensitive identity data. |
| get_whoop_body_measurementsA | Current body measurements: height m, weight kg and maximum heart rate bpm. |
| list_whoop_cyclesB | Page through physiological cycles and day strain. Times require UTC offsets. |
| list_whoop_recoveryC | Page recovery, HRV ms, resting HR bpm, SpO2 % and skin temperature °C. |
| list_whoop_sleepC | Page sleep and naps, stage durations in milliseconds and respiratory rate. |
| list_whoop_workoutsC | Page recorded workouts, strain, heart rate, distance and HR-zone milliseconds. |
| get_whoop_cycleC | Retrieve one physiological cycle by its integer ID. |
| get_whoop_cycle_recoveryC | Retrieve recovery joined to an exact integer cycle ID. |
| get_whoop_cycle_sleepB | Retrieve primary sleep for an exact integer cycle ID. |
| get_whoop_sleepB | Retrieve one sleep by v2 UUID, preserving score state and stage milliseconds. |
| get_whoop_workoutA | Retrieve one workout by v2 UUID with recorded HR zones and strain. |
| get_whoop_dayC | Local-date evidence with exact cycle joins. YYYY-MM-DD and IANA timezone required. |
| summarize_whoop_periodC | Descriptive cycle/recovery/sleep/workout statistics, bounded to 250 records. |
| compare_whoop_periodsC | Compare two bounded periods; disclose counts and missingness. No causal claims. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
Most tools have clearly distinct purposes (profile, body measurements, list vs. get-by-ID for each resource, plus aggregation tools). The only potential confusion is between get_whoop_sleep (by v2 UUID) and get_whoop_cycle_sleep (by cycle ID), and between list_whoop_recovery and get_whoop_cycle_recovery, but the descriptions explicitly clarify the keying difference.
All 15 tools follow a consistent verb_noun pattern (get_whoop_*, list_whoop_*, summarize_whoop_*, compare_whoop_periods) with the domain token 'whoop' embedded consistently. Resource-plus-qualifier names like get_whoop_cycle_sleep are predictable and readable.
15 tools sits at the top of the well-scoped range and each one earns its place: a guide, three static resources, four list endpoints, resource getters, a day join, and two analytics tools. No redundant or filler tools.
The read-only domain is well covered: listing and fetching for cycles, recovery, sleep, and workouts, plus a composite day view and period summaries/comparisons. Minor gaps exist (no per-resource fetch by UUID for cycles/recovery, and no write operations), but WHOOP member data is typically read-only and the day tool covers cross-resource joins.