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-mcpHow's my recovery today?"
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 gives Claude access to your WHOOP biometric data — recovery, sleep, strain, and workouts.
Ask Claude things like:
"How's my recovery today?"
"How did I sleep last night?"
"How has my HRV trended this week?"
"What was my strain from yesterday's workout?"
Privacy
This app accesses your WHOOP data locally on your device. No data is sent to any third-party server.
Tools
Tool | What it returns |
| Recovery score, HRV, resting HR, SpO2 |
| Sleep duration, stages (light/deep/REM), efficiency, respiratory rate |
| Day strain score, avg/max HR, calories |
| Most recent workout — sport, duration, strain, HR zones |
| Recovery scores over N days (default 7) |
| Sleep data over N days (default 7) |
| Recent workout history (default 5) |
| Profile + body measurements |
Setup
1. Create a WHOOP developer app
Sign in with your WHOOP account
Create a new App:
Name:
whoop-mcp(or anything)Redirect URI:
http://localhost:8080/callbackScopes: select all read scopes +
offline
Copy your Client ID and Client Secret
2. Install
npm install -g @souravpn/whoop-mcp3. Run one-time auth setup
This opens your browser, you log into WHOOP, and your tokens are saved to ~/.whoop-mcp-tokens.json:
WHOOP_CLIENT_ID=your_id WHOOP_CLIENT_SECRET=your_secret whoop-mcp-auth-setupYou only need to do this once. The server will auto-refresh tokens after that.
4. Add to Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"whoop": {
"command": "@souravpn/whoop-mcp",
"env": {
"WHOOP_CLIENT_ID": "your_client_id",
"WHOOP_CLIENT_SECRET": "your_client_secret"
}
}
}
}Restart Claude Desktop. You should see a green "running" badge in Settings → Developer.
5. Test it
Open a new chat and ask:
How's my recovery today?Example queries
Daily check-in:
What's my recovery, sleep, and strain for today?Trend analysis:
How has my HRV trended over the past 7 days?Workout correlation:
Look at my workouts this week and my recovery scores
the day after each one. Is there a pattern?Full briefing:
Give me a complete health briefing — recovery, last
night's sleep breakdown, and any workouts from yesterdayPairing with Oura
If you also use Oura Ring, you can run both MCP servers together and ask Claude to cross-reference:
{
"mcpServers": {
"whoop": {
"command": "/path/to/whoop-mcp",
"env": { "WHOOP_ACCESS_TOKEN": "your_whoop_token" }
},
"oura": {
"command": "/path/to/oura-mcp",
"env": { "OURA_ACCESS_TOKEN": "your_oura_token" }
}
}
}Then ask:
Compare my WHOOP and Oura HRV readings for this week.
Do they agree? Which is trending higher?Development
git clone https://github.com/yourusername/whoop-mcp
cd whoop-mcp
npm install
npm run build
# Test locally
WHOOP_ACCESS_TOKEN=your_token node dist/index.jsProject structure
whoop-mcp/
├── src/
│ ├── index.ts # MCP server + tool definitions
│ └── whoop.ts # WHOOP API client + formatters
├── package.json
├── tsconfig.json
└── README.mdContributing
PRs welcome. Some ideas for extension:
Heart rate time series data
Sleep stage timeline (light/deep/REM per hour)
Strain goal recommendations
Weekly summary tool
License
MIT
Acknowledgements
Built with the MCP TypeScript SDK and the WHOOP Developer API.
This 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/souravpn/whoop-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server