MCP server for the official Whoop API v2: cycles, recovery, sleep, workouts, and profile data
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-zayden16-whoop-mcp-server": {
"command": "<see-readme>",
"args": []
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
MCP server for the official Whoop API v2: cycles, recovery, sleep, workouts, and profile data
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationBe the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in health
MCP server for the ClinicalTrials.gov v2 API. Search trials, retrieve study details and results, and match patients to eligible trials.
MCP server for Withings health data — sleep, activity, heart, and body metrics.
MCP Server for Brazilian ICD-10 (DATASUS) - International Classification of Diseases
Search and contribute to the Open Food Facts database.
MCP Security Weekly
Get CVE alerts and security updates for io.github.Zayden16/whoop-mcp-server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
MCP server for the official Whoop API v2, written in Go. Exposes cycles, recovery, sleep, workouts, and profile data as MCP tools.
All tools return JSON. Record shapes are the unmodified Whoop API v2 objects, so every field the API exposes is available to the model.
| Tool | Inputs | Returns |
|---|---|---|
get_profile | — | Single object: user_id, email, first_name, last_name |
get_body_measurement | — | Single object: height_meter, weight_kilogram, max_heart_rate |
get_cycles | start_date, end_date, limit (all optional) | Array of cycle records — one per physiological day: start/end, score_state, and score with day strain, kilojoule, average_heart_rate, max_heart_rate |
get_latest_cycle | — | Single cycle record (the current/most recent day) |
get_recoveries | start_date, end_date, limit (all optional) | Array of recovery records — one per sleep: cycle_id, sleep_id, and score with recovery_score (0–100), resting_heart_rate, hrv_rmssd_milli, spo2_percentage, skin_temp_celsius |
get_recovery_for_cycle | cycle_id (required) | Single recovery record for that cycle |
get_sleep | start_date, end_date, limit (all optional) | Array of sleep records: start/end, nap flag, and score with per-stage durations (light/SWS/REM/awake, in ms), respiratory_rate, sleep_performance_percentage, sleep_efficiency_percentage, sleep-need breakdown |
get_workouts | start_date, end_date, limit (all optional) | Array of workout records: sport_name, start/end, and score with workout strain, heart rates, kilojoule, distance_meter, altitude_gain_meter, time-in-zone durations (zone_durations, ms per HR zone) |
get_average_strain | days (optional, default 7) | Computed aggregate: {days, cycles_counted, average_strain} |
check_auth_status | — | {authenticated: bool} plus the profile on success or an error string on failure |
Notes:
YYYY-MM-DD; end_date is inclusive (internally mapped to the start of the next day, per the API's exclusive end semantics).next_token until limit records (default 25, max 100) are collected.get_average_strain for the built-in strain average).score_state can be SCORED, PENDING_SCORE, or UNSCORABLE — score is only present when SCORED.At developer.whoop.com, create an app with:
http://localhost:8719/callbackread:cycles, read:recovery, read:sleep, read:workout, read:profile, read:body_measurement, offlineNote the client ID and client secret.
Homebrew:
brew install zayden16/tap/whoop-mcp-server
Or download a prebuilt binary from Releases, or:
go install github.com/Zayden16/whoop-mcp-server@latest
Or build from source:
go build -o whoop-mcp-server .
export WHOOP_CLIENT_ID=...
export WHOOP_CLIENT_SECRET=...
./whoop-mcp-se
... [View full README on GitHub](https://github.com/zayden16/whoop-mcp-server#readme)