WHOOP data / Model Context Protocol

whoop-mcp

Your recovery, sleep, strain and workouts, in a compatible AI assistant. Read-only WHOOP access with personal analytics. Local by default; usage telemetry stays off until you consent.

npx -y whoop-ai-mcp@latest setup

16 tools · 4 resources · 5 prompts in standard mode

profile recovery cycle sleep hrv resting_hr workout strain

Recovery, sleep & strain

Read recovery scores, HRV, resting heart rate, sleep stages, daily strain, and workouts, plus weekly summaries, trends, personal baselines and sleep deficits.

MCP-native

Tools, resources, and prompts over stdio or Streamable HTTP. Drop it into Claude Desktop, or host a personal authenticated server for compatible remote clients.

Explicit data controls

Read-only tools with OAuth and PKCE. Tokens stay on the server host with 0600 permissions. Health results reach your assistant provider. Choose aggregate-only access to reduce disclosure; telemetry needs separate consent.

Consent-based usage telemetry

Usage counts, only with your permission

Setup asks before sharing command, tool or named template usage. No is the default. Existing clients are not silently opted in, and WHOOP access works without telemetry.

A choice saved with your client

Desktop setup saves your decision in its configuration. Claude Code, Codex and Copilot receive registration commands to run. Use --telemetry=off to decline explicitly; no installation ID or global consent file is created.

No health or conversation payloads

Events contain schema and package versions, an allowlisted command, tool or template name, its kind and outcome. No arguments, results, chat text, credentials or user/device/session identifiers are sent. Template retrievals are not conversation counts.

Local checks and an overriding opt-out

whoop-ai-mcp telemetry status checks the current process environment without network access. DO_NOT_TRACK=1 and aggregate privacy suppress sending even with opt-in. Delivery is best effort, with a 500 ms deadline and no retry queue.

A private aggregate dashboard

The maintainer collector stores daily counts, not raw events. An owner-only dashboard shows tool outcomes and version trends. Users and installations are not measured; no public per-user activity feed exists.

Consent is not an anonymity guarantee: network infrastructure can observe IP addresses and arrival times. Aggregates currently have no automatic expiry; database recovery history lasts seven days. Provider metadata retention is not verified. This public page does not load a telemetry client.

Latest release notes · Consent and retention · Local diagnostics

Personal analytics

Your history, with the gaps made visible

Sixteen read-only tools cover raw records, current health context and personal statistics. Results include explicit missing-data states; the client keeps no persistent health-data store. Analytics describe observations, not diagnoses or causes.

What is typical for you?

get_baselines compares HRV, resting heart rate, sleep and recovery with your own history. Percentile bands exclude the latest observation and current local day. Fewer than 14 historical points returns an insufficient-data result, not a guessed normal range.

Sleep deficit, without double counting

get_sleep_debt separates observed nightly deficits from WHOOP's standing debt. It uses scored asleep stages, accounts for naps, and describes local sleep consistency. These are observations, not recovery forecasts or medical advice.

Current data, clearly labeled

get_today matches recovery with the current cycle and primary sleep. Pending or invalid sleep never substitutes an older score. All 16 tools return validated structured results alongside compatible JSON text; missing measurements stay distinct from zero.

Choose aggregate-only access

WHOOP_MCP_PRIVACY_MODE=aggregate exposes five summary and analytics tools, with no raw resources or prompts. Record arrays, latest observations, identity fields and exact activity timestamps are omitted. Aggregates remain sensitive data, not anonymous data.

Local diagnostics: whoop-ai-mcp doctor --json checks configuration and token-file metadata without calling WHOOP or launching OAuth. It does not verify live credentials; setup --verify is a separate network check.

Changelog · Privacy and compatibility notes

Connect the published release

Requires Node.js 20+, npm and an active WHOOP membership. These commands run setup from npm's latest tag. Have your WHOOP Developer App client ID and secret ready from developer.whoop.com. Register http://localhost:3000/callback as the WHOOP redirect URL. Optional telemetry defaults to No.

Claude Desktop

npx -y whoop-ai-mcp@latest setup --client=claude-desktop

Merges the whoop server into claude_desktop_config.json (with a .bak backup), then fully quit and reopen Desktop. Authorize WHOOP on first server start.

Claude Code

npx -y whoop-ai-mcp@latest setup --client=claude-code

Prints the equivalent claude mcp add command to register the server with Claude Code. Review it privately, then run it; it includes credentials.

Codex

npx -y whoop-ai-mcp@latest setup --client=codex

Prints a codex mcp add command for you to run, registering the server in ~/.codex/config.toml for the OpenAI Codex CLI.

GitHub Copilot

npx -y whoop-ai-mcp@latest setup --client=copilot

Prints a code --add-mcp command for you to run with GitHub Copilot in VS Code.

Generated launch entries use the unversioned package, which defaults to npm's latest tag. Restart the client to pick up an updated release. Add --verify for a live WHOOP check, which prints profile data. Resource, prompt and remote-connector support varies by client.