Documentation
FitnessPeak is a remote MCP server. If your client can call an HTTPS endpoint with a header, it works — and setup is a URL plus a key.
Start here
Quickstart
Connect WHOOP, get your key, and paste it into a client. Two minutes.
Read →API keys
How keys work, the three ways to send one, rotation, and what to do if one leaks.
Read →Per-client setup
Claude Desktop & Claude Code
One CLI command, or a JSON block in claude_desktop_config.json.
ChatGPT
Add FitnessPeak as a connector. This is the case a local stdio server can't cover at all.
Read →Cursor
Project or global mcp.json, with the header form Cursor expects.
VS Code & Zed
Copilot's servers block and Zed's context_servers.
Reference
Tool reference
All six tools, their parameters, and what the returned markdown looks like.
Read →Troubleshooting
Empty tables, 401s, “tool not found”, and the WHOOP quirks that look like bugs but aren't.
Read →The endpoint
Everything below is the whole API surface. There is no REST API to learn — MCP is the interface.
| Property | Value |
|---|---|
| Endpoint | https://fitnesspeak.app/mcp |
| Transport | Streamable HTTP (JSON-RPC 2.0 over POST) |
| Auth | Authorization: Bearer fp_live_… |
| Protocol versions | 2025-06-18, 2025-03-26, 2024-11-05 |
| Capabilities | tools |
| Rate limit | 120 calls per minute per key |
Verify it with curl
The fastest way to confirm a key works, with no client involved:
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/list"}'
curl -s https://fitnesspeak.app/mcp \
-H "Authorization: Bearer fp_live_YOUR_KEY_HERE" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "whoop_recovery",
"arguments": { "days": 7 }
}
}'