whoop_profile
Who the connected account belongs to, plus the body measurements a calculation needs when it has to normalise by mass or heart-rate reserve.
What it returns
| Field | Meaning |
|---|---|
| Name and email | From the WHOOP account. |
| WHOOP user id | Useful when reconciling with other exports. |
| Height | Centimetres. |
| Weight | Kilograms. |
| Max heart rate | WHOOP's figure for you, not the 220-minus-age estimate. |
Parameters
None. This tool takes no arguments.
Example
Your WHOOP max heart rate is 187 bpm, so a five-zone split gives you: Z1 up to 112, Z2 112–131, Z3 131–150, Z4 150–168, Z5 168+. Worth noting that's measured rather than the 220-minus-age estimate, which would have put you at 181 and shifted every zone down.
Sample output
Tools return markdown, not JSON — it costs roughly a third of the tokens and models reason over tables more reliably than nested objects.
## WHOOP profile
- **Name:** Jane Doe
- **Email:** jane@example.com
- **User ID:** 10129384
- **Height:** 174 cm
- **Weight:** 68.4 kg
- **Max heart rate:** 187 bpm
_Data by WHOOP._
Questions this answers
- “Which WHOOP account is connected here?”
- “Work out my heart-rate zones from my actual max.”
- “What was my average power-to-weight on that ride?”
Notes and gotchas
- Body measurements need WHOOP's
read:body_measurementscope. If it wasn't granted, the profile still returns and the measurements are simply omitted. - Takes no parameters.
Call it directly
The endpoint is plain JSON-RPC, so you can test without any client:
curl -s https://fitnesspeak.app/mcp \
-H "Authorization: Bearer fp_live_YOUR_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "whoop_profile",
"arguments": {}
}
}'
Tool description the model sees
The connected WHOOP account's basic profile (name, email, user id) and body measurements (height, weight, max heart rate). Call this to confirm which WHOOP account is connected, or when a calculation needs the user's weight or max heart rate.
Descriptions say when to call a tool, not just what it does — that trigger wording is what models actually route on.
Use whoop_profile in your assistant
14-day free trial. Card required so there's no second signup at the end; cancel before day 14 and you're charged nothing.