WHOOP MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WHOOP_CACHE | No | Cache backend. Default: sqlite if enabled. | |
| WHOOP_SCOPES | No | OAuth scopes. Default: read:recovery read:cycles read:workout read:sleep read:profile read:body_measurement | |
| WHOOP_CLIENT_ID | No | Your WHOOP API client ID from the developer app. | |
| WHOOP_CACHE_PATH | No | Path to cache database file. Default: ~/.whoop-mcp/cache.sqlite | |
| WHOOP_TOKEN_PATH | No | Path to OAuth token file. Default: ~/.whoop-mcp/tokens.json | |
| WHOOP_PRIVACY_MODE | No | Privacy mode: summary, structured, or raw. Default: structured | |
| WHOOP_REDIRECT_URI | No | OAuth redirect URI. Default: http://127.0.0.1:3000/callback | |
| WHOOP_CLIENT_SECRET | No | Your WHOOP API client secret from the developer app. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
| completions | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| whoop_data_inventoryA | Inventory supported WHOOP data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call WHOOP APIs or expose user data. |
| whoop_capabilitiesA | Explain supported WHOOP data, unavailable raw sensor streams, privacy modes, recommended agent workflow, and project links. Does not read WHOOP or expose secrets. |
| whoop_agent_manifestA | Machine-readable install, runtime and client guidance for AI agents operating the WHOOP MCP. Does not read WHOOP or expose secrets. |
| whoop_quickstartA | Personalized 3-step setup walkthrough for the human user. Adapts to current state (env vars set? token present? what's next?). Call this first when the user asks 'how do I connect WHOOP?' |
| whoop_demoA | Returns realistic example payloads of whoop_daily_summary, whoop_wellness_context, and whoop_list_recoveries so agents see the contract before calling real WHOOP APIs. |
| whoop_profile_getA | Read the shared Delx wellness profile (~/.delx-wellness/profile.json). Returns the user's preferred name, body basics, goals, devices, training context, nutrition context, agent preferences, and missing critical fields. Cross-connector — the same profile is also available from other Delx Wellness MCPs (Oura, Garmin, Nourish, Fitbit, etc). Read-only. |
| whoop_profile_updateA | Persist a partial patch to the shared Delx wellness profile (~/.delx-wellness/profile.json). REQUIRES explicit_user_intent=true. Top-level fields stored: profile (preferred_name, language, timezone, units, age_or_birth_year, height, weight, sex_or_gender_context), goals, devices, training, nutrition, preferences, safety, notes. NEVER stores OAuth tokens, API keys, refresh tokens, cookies, or any secret-shaped field — writes will be rejected at validation time. Cross-connector — the same profile is read by other Delx Wellness MCPs. |
| whoop_onboardingA | Return the 11-question Delx wellness onboarding flow (in English or pt-BR) plus the current shared profile state and missing critical fields. Read-only. The agent should ask these questions one-by-one, then call whoop_profile_update with explicit_user_intent=true to save. The same profile is reused by every Delx Wellness connector (Oura, Garmin, Nourish, etc.) — agents can call the equivalent {connector}_onboarding tools to cover their respective domains, or rely on this one since all connectors share the same questions. |
| whoop_get_auth_urlA | Generate a WHOOP OAuth authorization URL. This does not read or modify WHOOP data. Use this first when no local token exists. |
| whoop_exchange_codeA | Exchange a WHOOP OAuth authorization code for local tokens. Tokens are stored locally with 0600 permissions and are never returned by this tool. Gated: requires explicit user intent — agents must not call this autonomously. |
| whoop_get_profileB | Get the authenticated user's basic WHOOP profile. Requires read:profile scope. |
| whoop_get_body_measurementsA | Get the authenticated user's WHOOP body measurements (height, weight, max heart rate). Requires read:body_measurement scope. Not medical advice. |
| whoop_list_cyclesA | List WHOOP physiological cycles. Supports start/end filters and WHOOP pagination. Requires read:cycles scope. |
| whoop_list_recoveriesA | List WHOOP recoveries sorted by related sleep start time descending. Returns recovery score, HRV, RHR, SpO2 and skin temperature when scored. Requires read:recovery scope. Not medical advice. |
| whoop_list_sleepsA | List WHOOP sleep activities. Returns sleep stages, performance, consistency and efficiency when scored. Supports start/end filters and WHOOP pagination. Requires read:sleep scope. Not medical advice. |
| whoop_list_workoutsA | List WHOOP workouts. Supports start/end filters and WHOOP pagination. Requires read:workout scope. |
| whoop_connection_statusA | Check whether local WHOOP env vars, token file, Node version, privacy mode and cache are ready. Does not call WHOOP or expose secrets. |
| whoop_cache_statusA | Show optional local SQLite cache status. Enable with WHOOP_CACHE=sqlite or WHOOP_CACHE=true. |
| whoop_privacy_auditA | Return the local privacy, cache, token-path, env-presence and redaction posture without revealing secret values. |
| whoop_revoke_accessA | Revoke the current WHOOP OAuth access grant and delete the local token file. Use only when the user explicitly wants to disconnect WHOOP. Gated: requires explicit user intent — agents must not call this autonomously. |
| whoop_daily_summaryB | Build a privacy-conscious daily performance summary from WHOOP recovery, sleep, cycle and workout data. This workflow tool fetches recent WHOOP v2 records, computes a defensive baseline, and returns readiness, sleep, load, diagnostic signals and concrete action candidates. It does not provide medical advice and does not store data locally. |
| whoop_weekly_summaryA | Build a weekly WHOOP operating review with recovery, sleep, strain, workouts, bottlenecks, action candidates and next-week success metrics. This workflow tool compares a recent window against a prior window when available. It is intended for coaching and agent workflows, not medical diagnosis. |
| whoop_recovery_trendA | Aggregate WHOOP recovery over the last N days (default 30) into a per-metric trend for recovery score, HRV (hrv_rmssd_milli) and resting heart rate. Each metric returns { avg, min, max, slope, direction, n_valid } where slope is a least-squares fit over the chronologically ordered scored records (oldest to newest) and direction is rising, falling, stable or insufficient_data. Use this to answer "is my recovery trending up or down?" without paging the raw collection yourself. Read-only; fetches recent WHOOP v2 records, computes statistics, stores nothing. Not medical advice. |
| whoop_sleep_trendA | Aggregate WHOOP sleep over the last N days (default 30) into a per-metric trend for sleep performance percentage, sleep duration (hours) and sleep efficiency percentage. Each metric returns { avg, min, max, slope, direction, n_valid } where slope is a least-squares fit over the chronologically ordered scored sleeps (oldest to newest) and direction is rising, falling, stable or insufficient_data. Use this to answer "is my sleep improving or degrading?" without paging the raw collection yourself. Read-only; fetches recent WHOOP v2 records, computes statistics, stores nothing. Not medical advice. |
| whoop_wellness_contextA | Normalize WHOOP recovery, sleep, strain and recent workout load into the shared wellness_context shape for exercise recommendation engines and Telegram agents. |
| whoop_get_cycleA | Get one WHOOP cycle by numeric cycle id. Requires read:cycles scope. |
| whoop_get_sleepA | Get one WHOOP sleep activity by UUID. Requires read:sleep scope. Not medical advice. |
| whoop_get_workoutA | Get one WHOOP workout by UUID. Requires read:workout scope. |
| whoop_get_cycle_sleepA | Get the sleep associated with a WHOOP cycle. Requires read:sleep scope. Not medical advice. |
| whoop_get_cycle_recoveryB | Get the recovery associated with a WHOOP cycle. Requires read:recovery scope. Not medical advice. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| whoop_daily_performance_coach | Use WHOOP data to produce a practical, non-medical daily plan for training, recovery and focus. |
| whoop_weekly_training_review | Use WHOOP weekly summary data to create a practical next-week training, sleep and focus plan. |
| whoop_sleep_recovery_investigator | Investigate sleep consistency, sleep debt and recovery signals from WHOOP summaries. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| whoop_data_inventory | Static inventory of supported WHOOP data domains, privacy modes and recommended first calls. |
| whoop_agent_manifest | Machine-readable install and operating instructions for AI agents. |
| whoop_capabilities_resource | Static capabilities, data boundary, privacy modes and recommended agent workflow. |
| whoop_latest_recovery | Latest recovery record using the configured privacy mode. |
| whoop_latest_sleep | Latest sleep record using the configured privacy mode. |
| whoop_latest_cycle | Latest physiological cycle using the configured privacy mode. |
| whoop_daily_summary_resource | Daily recovery, sleep, load and action-candidate summary. |
| whoop_weekly_summary_resource | Weekly scorecard, bottlenecks and next-week success metrics. |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/davidmosiah/whoop-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server