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 (3 Steps)

1. Install via pip

pip install whoop-as

2. Run interactive setup

whoop-as-setup

This will:

  • Open your browser
  • Ask you to sign in to WHOOP
  • Automatically save your tokens
  • Confirm you're ready to go

3. Add to Claude

Claude Code:

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

Claude Desktop (Optional): Edit ~/Library/Application Support/Claude/claude_desktop_config.json and add:

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

That's it! You're ready to use whoop-as with Claude. 🎉


Manual Setup (If Needed)

If you prefer to configure manually or have an existing WHOOP developer app:

1. Create a WHOOP Developer App (if you don't have one)

  1. Go to WHOOP Developer Dashboard
  2. Sign in with your WHOOP account
  3. Create an App with Redirect URI: http://localhost:8766/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

2. Set environment variables

export WHOOP_CLIENT_ID=your_client_id
export WHOOP_CLIENT_SECRET=your_client_secret

Or create ~/.whoop-as/.env:

mkdir -p ~/.whoop-as
cat > ~/.whoop-as/.env << 'EOF'
WHOOP_CLIENT_ID=your_client_id
WHOOP_CLIENT_SECRET=your_client_secret
EOF

3. Run setup

whoop-as-setup

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.1.tar.gz (13.0 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.1-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: whoop_as-1.0.1.tar.gz
  • Upload date:
  • Size: 13.0 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.1.tar.gz
Algorithm Hash digest
SHA256 85e9e7e9e66baddc0f6d590662820877621e0169965edbad8f0a71e53626a2b8
MD5 a886c82e7fc77620f121b130deaeafe2
BLAKE2b-256 b9a1b47c03a0729a8d364157d739d0ca0cdff86e52e737ea66154bacfc744e98

See more details on using hashes here.

File details

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

File metadata

  • Download URL: whoop_as-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 15.2 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 aca8225745f74ff720f37efdb042216401ec39a19b4560ca38b78ed10fc724bb
MD5 143e7b752de44ceaab600d5f7fd807be
BLAKE2b-256 12f1462f6e96b586a2069015a2cfa65296340b05c2d398e10a7afcb0ba2fbd2b

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