whoop-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@whoop-mcpWhat's my current recovery status?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
whoop-mcp
A Model Context Protocol (MCP) server that connects your Whoop fitness data to Claude. Ask natural language questions about your recovery, sleep, workouts, and more.
Available Tools
Tool | Description |
| Your name and email |
| Height, weight, max heart rate |
| Recovery %, HRV, resting heart rate |
| Duration, efficiency, sleep stages |
| Strain, calories, sport type |
| Daily strain and total calories burned |
All data tools accept optional start and end parameters (ISO 8601 format) and default to the last 30 days.
Setup
1. Prerequisites
Install uv (Python package manager):
curl -LsSf https://astral.sh/uv/install.sh | sh2. Install dependencies
cd whoop-mcp
uv venv --python 3.12
uv pip install mcp httpx3. Get Whoop API credentials
Create a new app and fill in the required fields:
Privacy Policy URL — host
privacy.htmlon GitHub Pages (see below) and paste that URLWebhook URL — optional; set to
http://your-host:8080/webhookif runningwebhook_server.pyRedirect URI —
http://localhost:8888/callback
Copy your Client ID and Client Secret
4. Authenticate (one time)
WHOOP_CLIENT_ID=your_id WHOOP_CLIENT_SECRET=your_secret .venv/bin/python auth.pyThis opens a browser, you approve access, and tokens are saved to ~/.whoop_tokens.json.
5. Add to Claude Code
Add this to your ~/.claude.json under mcpServers:
{
"mcpServers": {
"whoop": {
"command": "/absolute/path/to/whoop-mcp/.venv/bin/python",
"args": ["/absolute/path/to/whoop-mcp/server.py"],
"env": {
"WHOOP_CLIENT_ID": "your_client_id",
"WHOOP_CLIENT_SECRET": "your_client_secret"
}
}
}
}Restart Claude Code and the server will load automatically.
Example Questions
"What was my average HRV last week?"
"How many hours of sleep did I average this month?"
"Show me my recovery trend over the past 30 days"
"Which workouts had the highest strain scores?"
"Compare my sleep efficiency between weekdays and weekends"
Privacy Policy
privacy.html is a ready-to-host privacy policy page required by the Whoop developer portal.
Host it on GitHub Pages:
Push this repo to GitHub
Go to Settings → Pages → Source → main branch
Your privacy policy URL will be:
https://your-username.github.io/whoop-mcp/privacy.html
Webhooks (optional)
webhook_server.py receives real-time events from Whoop (new workout, sleep, recovery, body measurement).
WHOOP_CLIENT_SECRET=your_secret .venv/bin/python webhook_server.pyFor local development, expose it with ngrok:
ngrok http 8080
# Then register https://xxxx.ngrok-free.app/webhook in the Whoop developer portalSupported events: workout.updated, sleep.updated, recovery.updated, body_measurement.updated
Project Structure
whoop-mcp/
├── server.py # MCP server — tools Claude calls
├── whoop_client.py # Whoop API client with token refresh
├── auth.py # One-time OAuth setup script
├── webhook_server.py # Real-time Whoop event receiver
├── privacy.html # Privacy policy (host on GitHub Pages)
└── requirements.txt # Python dependenciesThis server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Saadh05/whoop-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server