whoop_check_authLABSCO SUMMARY
There is a single call meant to be your first one.
The training summary returns an aggregated coaching snapshot, and the vendor's own tool table says to start there. Behind it sit the specifics — recovery with HRV and resting heart rate, sleep by stage, cycle strain, workouts by zone — each with a range version for looking at a week rather than a day.
What it is
A read-only server over your own Whoop data, running locally against a Whoop developer application you register yourself.
What you get
- whoop_get_training_summary — an aggregated coaching snapshot, which the vendor marks as the place to start
- whoop_get_latest_recovery and whoop_get_recovery_range — the most recent recovery score, HRV, resting heart rate and SpO2, or a date range of them
- whoop_get_latest_sleep and whoop_get_sleep_range — the last sleep session with its stage breakdown, or a range
- whoop_get_latest_strain and whoop_get_strain_range — current cycle strain with average and maximum heart rate and kilojoules, or strain over past days with an average
- whoop_get_workouts — workouts with sport id, strain and heart-rate zones
- whoop_get_profile — profile and body measurements
- whoop_check_auth — confirms the stored tokens are valid and unexpired
Requirements
A Whoop developer account with a registered application, its client id and secret, and a one-time browser authorisation that stores encrypted tokens on your machine. Python, and the application's redirect URI set to the local callback the setup script listens on.
Setup effort
Build from source
USE CASES
Deciding how hard to train today
Take the coaching snapshot, then the recovery reading behind it when the summary raises a question rather than answering one.
Working out why you feel wrecked
Put last night's sleep stages next to the strain that preceded it, and widen to a range if one night does not explain it.
Reviewing a training block
Read strain and recovery over the same date range with the workouts inside it, so load and response line up.
Checking the connection still works
Confirm the stored tokens are current before an early-morning question finds out they are not.
10 tools
Listed in project docs. Your client may show a different list.
whoop_get_latest_recoverywhoop_get_recovery_rangewhoop_get_latest_sleepwhoop_get_sleep_rangewhoop_get_latest_strainwhoop_get_strain_rangewhoop_get_workoutswhoop_get_profilewhoop_get_training_summaryBEFORE YOU INSTALL
What to know first
Tools you get
10 tools named in the project's documentation.
Requires
- Python 3.10+
- WHOOP_CLIENT_ID in your environment
- WHOOP_CLIENT_SECRET in your environment
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/cbellbell-spin/whoop-mcp
cd whoop-mcp
pip install -r requirements.txt
export WHOOP_CLIENT_ID="<YOUR_WHOOP_CLIENT_ID>"
export WHOOP_CLIENT_SECRET="<YOUR_WHOOP_CLIENT_SECRET>"
python scripts/setup_auth.pyMCP Clients
Claude Desktop, Claude Cowork
{
"mcpServers": {
"whoop": {
"command": "python",
"args": [
"<YOUR_PATH_TO_WHOOP_MCP>/src/whoop_server.py"
],
"env": {
"WHOOP_CLIENT_ID": "<YOUR_WHOOP_CLIENT_ID>",
"WHOOP_CLIENT_SECRET": "<YOUR_WHOOP_CLIENT_SECRET>"
}
}
}
}