
Connects Claude to your WHOOP fitness tracker via OAuth2, exposing 14 tools that pull recovery scores, sleep stages, workout summaries, cycle data, and body measurements. Supports natural date queries like "last 7 days" or "this quarter" and includes server-side analytics for weekly summaries, linear regression trends, and period comparisons. Ships with 4 ambient resources that surface your latest recovery and sleep data without explicit tool calls, plus 5 conversation starter prompts. Tokens live at ~/.whoop-mcp/tokens.json with 0600 permissions, auto-refresh on expiry, and retry on rate limits. Requires a WHOOP Developer App with localhost callback, but after that it's zero config. Published to the MCP Registry and actively maintained with recent updates.
Sponsors
WHOOP_CLIENT_ID*secretYour WHOOP Developer App Client ID from developer.whoop.com
WHOOP_CLIENT_SECRET*secretYour WHOOP Developer App Client Secret from developer.whoop.com
whoop-ai-mcp is a read-only WHOOP MCP server for Claude, Gemini CLI, Cursor, VS Code, OpenClaw, Perplexity on macOS, and other MCP clients. Ask about your recovery, compare weeks of sleep, or check today against your own baseline, without exporting the data yourself. ChatGPT, Claude web/mobile, and the Grok xAI API require a remote deployment; see the client setup guide.
npx -y whoop-ai-mcp@latest setup --client=claude-desktop
Quickstart | Watch the walkthrough | Website | Tool reference
Claude Desktop builds the review; whoop-ai-mcp supplies the data. Your results and layout will differ.
| Ask | You get |
|---|---|
| "How am I doing today?" | Recovery, primary sleep, strain and your latest workout, with gaps flagged where data is missing |
| "Is my HRV unusual for me?" | Your personal baseline: distribution, percentiles and how many days it's based on |
| "How did my sleep change this month?" | Trends, period-to-period comparisons, sleep debt and consistency |
| "Give me my weekly health review." | Recovery, sleep and training in one summary |
Statistics describe your recorded history. They aren't medical diagnoses or predictions.
You need: Node.js 20 or later, an active WHOOP membership, and a WHOOP Developer App with the redirect URL http://localhost:3000/callback.
Set up. Run the command for your assistant and enter your developer app's client ID and secret when asked.
| Assistant | Command |
|---|---|
| Claude Desktop | npx -y whoop-ai-mcp@latest setup --client=claude-desktop |
| Claude Code | npx -y whoop-ai-mcp@latest setup --client=claude-code |
| Codex | npx -y whoop-ai-mcp@latest setup --client=codex |
| GitHub Copilot | npx -y whoop-ai-mcp@latest setup --client=copilot |
| Gemini CLI | npx -y whoop-ai-mcp@latest setup --client=gemini-cli |
| Cursor | npx -y whoop-ai-mcp@latest setup --client=cursor |
| VS Code | npx -y whoop-ai-mcp@latest setup --client=vscode |
| OpenClaw | npx -y whoop-ai-mcp@latest setup --client=openclaw |
| Perplexity (macOS app + helper) | npx -y whoop-ai-mcp@latest setup --client=perplexity |
For Claude Code, Codex and VS Code/Copilot, run the registration command that setup prints. For Gemini CLI, Cursor and OpenClaw, merge the printed config; for Perplexity, paste the printed launch command into its local connector. Nothing is installed globally, and optional usage telemetry defaults to No.
These targets, including the claude alias for Desktop, require 1.1.0 or later. For a source build, use node dist/index.js setup --client=<target>.
Authorize. Fully quit and reopen your assistant. The first time the server starts, WHOOP opens in your browser so you can approve access.
Ask. Try "Summarize my sleep and recovery this week."
Need manual configuration, environment variables or a remote deployment? See the full setup guide.
Run setup --client=claude-web or setup --client=chatgpt with either implementation
to print remote deployment and connector instructions. These are guidance-only
targets, not one-click hosting: provide a public HTTPS /mcp endpoint, complete
WHOOP authorization on the host, and configure compatible connector OAuth.
Availability depends on the client account/workspace. setup --client=grok prints
an xAI API MCP tool example; consumer Grok chat integration is not verified.
No remote credentials are collected and no client connection is tested.
The Rust implementation offers the same client targets and limitations without a Node.js runtime for the server. It needs Rust 1.88 or later:
cargo install whoop-mcp
whoop-mcp setup --client=claude-desktop
The additional Rust targets require 0.2.0 or later. For a source build,
use cargo run -- setup --client=<target> in the Rust checkout.
Details: data handling and telemetry controls.
In standard mode, the server provides 16 read-only tools, 4 resources and 5 prompt templates, plus 9 HYROX and triathlon tools. Support for resources, prompts and remote connections depends on your assistant.
Ask "How did yesterday's HYROX sim go?" or "Am I ready for my triathlon in two weeks?" The race tools:
verify_claim recomputes a number your assistant told you.open_performance_dashboard) on 127.0.0.1 with Today, Session, Training, HYROX, Triathlon, Readiness and Audit views. Dark/light themes, local fonts, and review-before-save controls are included.
![]() |
![]() |
Screenshots use synthetic sample data.
Ask your assistant to "Open my performance dashboard" to launch it locally. The design from the latest main-branch redesign is now part of the working dashboard, not just a prototype. Dark is the default, with a Light/Dark toggle that preserves unsaved forms. Session remains the default view.
Today view with synthetic sample data. WHOOP recovery is not a race-readiness verdict; local workout corrections apply to race views, not this overview.
The race log, workout corrections and dashboard are available only when the server runs locally (stdio). Details: race performance tools and local data.
| Group | Tools |
|---|---|
| Today and baselines | get_today, get_baselines, get_sleep_debt |
| Trends and reviews | get_weekly_summary, get_trend, compare_periods, get_calendar |
| Records | get_recovery_collection, get_sleep_collection, get_workout_collection, get_cycle_collection, get_sleep_by_id, get_workout_by_id, get_cycle_by_id |
| Profile | get_profile, get_body_measurement |
| HYROX and triathlon | get_hyrox_session_report, get_hyrox_performance, get_triathlon_performance, get_race_readiness, audit_performance_data, verify_claim |
| Local only: race log, corrections, dashboard | log_race_result, annotate_workout, open_performance_dashboard |
Prompt templates: weekly_health_review, sleep_analysis, recovery_trend, workout_recap, health_check
Parameters, date expressions, resources and caching are in the tool reference.
| Guide | What's in it |
|---|---|
| Installation | Assistants, manual configuration, environment variables and WHOOP authorization |
| Tool reference | Every tool and its parameters, date expressions, resources, prompts and caching |
| Privacy | Structured results, aggregate mode and what your assistant provider receives |
| Telemetry | Consent, opting out, what's collected and how long it's kept |
| Troubleshooting | Local diagnostics, common errors and MCP Inspector |
| Deployment | Docker, cloud hosting and remote connector OAuth |
| Development | Tests, project structure and release workflow |
| Background | Ecosystem research and the video walkthrough |
What changed recently? See the changelog or the latest release.
Something not working, or a question you wish you could ask? Use the buttons above. Each opens a short form that asks for the details needed to help. Issues are public, so never include credentials or health records; security problems go through the security policy instead.
Want to contribute code? Read the contributing guide. Everyone taking part follows the Code of Conduct.
If whoop-ai-mcp is useful to you, a GitHub star helps other people find it, and you can buy me a coffee to support development.
MIT. This is an unofficial project and isn't affiliated with WHOOP. A WHOOP membership and API access are separate from this package.
whoop-ai-mcp