whoop-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WHOOP_CLIENT_ID | No | Your app's client ID (`auth` asks if unset) | |
| WHOOP_TOKEN_PATH | No | Where credentials are stored. Must be absolute (`~/` is expanded). Honours `XDG_CONFIG_HOME`. | ~/.config/whoop-mcp/tokens.json |
| WHOOP_REDIRECT_URI | No | Must exactly match a redirect URI registered on your app | http://localhost:8787/callback |
| WHOOP_CLIENT_SECRET | No | Your app's client secret (`auth` asks, without echoing, if unset) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_profileA | The user's WHOOP profile (name, email) and body measurements (height, weight, max heart rate). |
| get_daily_overviewA | Everything for one WHOOP day: recovery (score, HRV, resting HR, SpO2, skin temp), last night's sleep, naps, day strain and calories, and workouts. Omit date for the current/latest day. |
| get_trendsB | Day-by-day table and averages (avg/min/max) over the last N days for recovery, HRV, resting HR, strain, calories, sleep hours and sleep performance, plus recovery zone counts and workouts per day. |
| list_cyclesA | Physiological cycles (WHOOP days) with day strain, calories, average/max heart rate and steps, most recent first. |
| get_cycleB | One physiological cycle by id, together with its recovery and main sleep. |
| list_recoveriesA | Daily recovery scores with HRV (RMSSD), resting heart rate, SpO2 and skin temperature, most recent first. |
| list_sleepsA | Sleeps and naps with performance, efficiency, consistency, stage breakdown (light/deep/REM/awake), disturbances, respiratory rate and sleep need, most recent first. |
| get_sleepC | One sleep or nap by id. |
| list_workoutsB | Workouts with sport, duration, strain, heart rate, calories, distance, altitude gain and time in each heart-rate zone, most recent first. |
| get_workoutC | One workout by id. |
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 10 tools
Tools are mostly distinct: get_daily_overview aggregates one day, get_trends aggregates N days, list_* tools retrieve by data type, and get_* tools retrieve by id. There is slight overlap between get_daily_overview and combining list_cycles/list_recoveries/list_sleeps/list_workouts, but descriptions clarify intended use.
Consistent verb_noun pattern throughout: get_profile, get_daily_overview, get_trends, list_cycles, get_cycle, list_recoveries, list_workouts, list_sleeps, get_sleep, get_workout. Singular/plural differences follow entity conventions predictably.
10 tools is well-scoped for a WHOOP data server, covering profile, daily overview, trends, cycles, recoveries, sleeps, and workouts without bloat. Each tool earns its place.
Core WHOOP domain coverage is strong: profile, daily snapshot, trends, cycles, recoveries, sleeps, and workouts are represented. Minor gaps exist, such as no direct get_recovery by id or journal/behavior data, but agents can work around these via get_cycle or list_recoveries.