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. |
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
} |
| 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. Shapes are verified against the real tools by a build gate, so a parser written against this demo works on live data. |
| 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_summaryA | 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_recoveryA | 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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