Skip to main content

WHOOP MCP server for Claude — access recovery, sleep, workouts, and cycle data

Project description

WHOOP MCP Server for Claude

Access your WHOOP fitness data (recovery, sleep, workouts, cycles) directly in Claude Code, Claude Desktop, and the Claude web app via the Model Context Protocol.

Ask Claude "should I go heavy today?" and have it answer from your actual recovery, HRV, sleep, and strain data.

Features

  • 6 powerful tools expose your WHOOP data to Claude:

    • whoop_get_daily_summary — recovery + sleep + today's strain in one call
    • whoop_get_recovery — recovery score, HRV, resting HR, SpO2, skin temp
    • whoop_get_sleep — performance/efficiency scores, sleep stages, disturbances
    • whoop_get_workouts — strain, HR zones, calories, distance by sport
    • whoop_get_cycles — WHOOP day summaries with strain and HR metrics
    • whoop_get_profile / whoop_get_body_measurements — user info and measurements
  • Local & private — runs as a stdio MCP server on your machine; your tokens never leave

  • Automatic token refresh — handles OAuth refresh token rotation seamlessly

  • Works everywhere — Claude Code CLI, Claude Desktop app, and claude.ai/code

Quick Start

1. Install via pip

pip install whoop-mcp

2. Create a WHOOP Developer App

  1. Go to the WHOOP Developer Dashboard
  2. Sign in with your WHOOP account
  3. Create an App and add Redirect URI: http://localhost:8765/callback
  4. Enable scopes: offline read:profile read:recovery read:cycles read:sleep read:workout read:body_measurement
  5. Copy your Client ID and Client Secret

3. Set up credentials

Create or update .env in your home directory or the repo root:

WHOOP_CLIENT_ID=your_client_id_here
WHOOP_CLIENT_SECRET=your_client_secret_here
WHOOP_REDIRECT_URI=http://localhost:8765/callback

4. Authenticate (one time)

whoop-mcp-auth

Browser opens → sign in to WHOOP → approve. Tokens are saved to ~/.whoop-mcp/tokens.json and refreshed automatically.

5. Add to Claude Code

claude mcp add --transport stdio whoop --scope user -- python -m whoop_mcp.server

Or with a specific Python interpreter:

claude mcp add --transport stdio whoop --scope user -- /path/to/python -m whoop_mcp.server

6. Add to Claude Desktop (Optional)

Edit ~/Library/Application Support/Claude/claude_desktop_config.json and add:

{
  "mcpServers": {
    "whoop": {
      "command": "python",
      "args": ["-m", "whoop_mcp.server"]
    }
  }
}

Then restart Claude Desktop.

Usage

Once installed, you can ask Claude things like:

  • "Show me my recovery and sleep for the last week"
  • "How's my strain today?"
  • "What was my hardest workout this month?"
  • "Should I go heavy or recovery today?"

Claude will use the WHOOP tools to fetch real data and answer based on your actual fitness metrics.

Troubleshooting

Problem Solution
No WHOOP tokens found Run whoop-mcp-auth to authenticate
redirect_uri mismatch Ensure .env WHOOP_REDIRECT_URI matches your Dashboard settings exactly
Permission denied (403) Enable all required scopes in the Developer Dashboard, then re-run whoop-mcp-auth
Auth fails silently Check that WHOOP_CLIENT_ID and WHOOP_CLIENT_SECRET are correct in .env
Tokens keep expiring The refresh token was revoked — re-run whoop-mcp-auth
MCP server won't connect Verify the server is running: python -m whoop_mcp.server should start without errors

Development

To develop locally:

git clone https://github.com/anmolsharma/whoop-mcp.git
cd whoop-mcp
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
whoop-mcp-auth
python -m whoop_mcp.server

License

MIT — See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

whoop_as-1.0.0.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

whoop_as-1.0.0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file whoop_as-1.0.0.tar.gz.

File metadata

  • Download URL: whoop_as-1.0.0.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for whoop_as-1.0.0.tar.gz
Algorithm Hash digest
SHA256 bc44dfa06eee7a9a597f01c460778bdca5a16cc74eb50da5e4339b3b1aec4fbe
MD5 b8d7c777291b812acdedd7845a3fc6b9
BLAKE2b-256 b2af7956252dab3409f5ac379baf25a2db0f9fd0ee997aba51445eecdbe63dba

See more details on using hashes here.

File details

Details for the file whoop_as-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: whoop_as-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for whoop_as-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 02cb9c30fa4860b9990a167839b11d587c55352f46661f06d98de0248f8e799d
MD5 eaa2b1f3511f9560c50e0d0c01753c7b
BLAKE2b-256 ed13593c7cc75d8b170007313f22dc80ff0909ed4d46dfce4e45a1c3f856e282

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page