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 callwhoop_get_recovery— recovery score, HRV, resting HR, SpO2, skin tempwhoop_get_sleep— performance/efficiency scores, sleep stages, disturbanceswhoop_get_workouts— strain, HR zones, calories, distance by sportwhoop_get_cycles— WHOOP day summaries with strain and HR metricswhoop_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)
- Go to WHOOP Developer Dashboard
- Sign in with your WHOOP account
- Create an App with Redirect URI:
http://localhost:8766/callback - Enable scopes:
offline read:profile read:recovery read:cycles read:sleep read:workout read:body_measurement - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85e9e7e9e66baddc0f6d590662820877621e0169965edbad8f0a71e53626a2b8
|
|
| MD5 |
a886c82e7fc77620f121b130deaeafe2
|
|
| BLAKE2b-256 |
b9a1b47c03a0729a8d364157d739d0ca0cdff86e52e737ea66154bacfc744e98
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aca8225745f74ff720f37efdb042216401ec39a19b4560ca38b78ed10fc724bb
|
|
| MD5 |
143e7b752de44ceaab600d5f7fd807be
|
|
| BLAKE2b-256 |
12f1462f6e96b586a2069015a2cfa65296340b05c2d398e10a7afcb0ba2fbd2b
|