The MCP tools
Six read-only tools. Your assistant discovers them automatically and decides when to call them — you never have to name one.
whoop_recovery
WHOOP's daily Recovery score and the physiological signals behind it. This is the tool an assistant reaches for when you ask whether to train hard today.
Reference →whoop_sleep
Per-night sleep records with the full stage breakdown. Naps are excluded by default so weekly averages aren't skewed by a twenty-minute nap.
Reference →whoop_workouts
Individual logged activities. Use this for per-session questions; for total daily exertion use whoop_cycles instead.
Reference →whoop_cycles
Whole-day physiological cycles — wake to wake. This is the right number for weekly training load, because it counts everything, not just what you logged as a workout.
Reference →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.
Reference →hevy_workouts
Strength-training sessions logged in Hevy over a date range: title, duration, every exercise, every set with weight and reps, and total volume.
Reference →hevy_workout
One Hevy workout in full: every exercise, every set with its type (warmup, normal, dropset, failure), weight, reps, RPE and notes.
Reference →hevy_exercise_history
Every logged set of one exercise over time, one row per session: sets, top set, estimated 1RM, volume and average RPE.
Reference →hevy_routines
The saved workout routines (training plans) on the account, grouped by folder, with each exercise, its planned sets and rest times.
Reference →hevy_exercise_templates
Search the exercise catalogue available on the account — built-in exercises plus the user's custom ones — with muscle group, equipment and template id.
Reference →hevy_body_measurements
Body measurements logged in Hevy: body weight, lean mass, body-fat percentage and tape measurements (chest, waist, arms, thighs and so on).
Reference →hevy_account
The connected Hevy account: username and the all-time number of logged workouts.
Reference →withings_weight
Body weight and composition from a Withings smart scale: weight, body-fat percentage, fat mass, muscle mass, bone mass, water and visceral fat, plus the change across the range.
Reference →withings_blood_pressure
Blood-pressure readings from a Withings BPM cuff: systolic, diastolic and the heart pulse recorded with them.
Reference →withings_measurements
Any Withings measure type over a range — temperature, SpO2, VO2 max, pulse wave velocity, vascular age, basal metabolic rate and the rest.
Reference →withings_sleep
Nightly sleep from a Withings Sleep Analyzer, sleep mat or watch: time in bed, time asleep, light / deep / REM duration, efficiency, latency, wake-ups, heart and respiratory rate, snoring and sleep score.
Reference →withings_activity
Daily activity totals: steps, distance, floors climbed, active and intense minutes, calories, and average / max heart rate, with range totals and a daily step average.
Reference →withings_workouts
Individual workout sessions tracked by a Withings watch or started in the app: sport, duration, distance, steps, calories and heart rate.
Reference →withings_heart
ECG and blood-pressure recordings from a BPM Core / BPM Vision cuff or a ScanWatch: heart rate, systolic/diastolic, and the device's own atrial-fibrillation classification.
Reference →withings_devices
The Withings devices linked to the account: model, type, battery level and when each last synced.
Reference →withings_goals
The targets set in the Withings app: daily step goal, sleep goal and target weight.
Reference →fitnesspeak_status
What this account has connected and whether the subscription is live. The tool an assistant should call when another one says something isn't connected.
Reference →Shared conventions
Every tool that accepts a date range works the same way:
| Parameter | Type | Notes |
|---|---|---|
days | integer | 1–365, counted back from now. Ignored when start is given. |
start | string | ISO-8601. Overrides days. |
end | string | ISO-8601. Defaults to now. |
Why markdown, not JSON
Every tool returns a markdown table. It costs roughly a third of the tokens of equivalent JSON, models reason over rows more reliably than nested objects, and it reads well if a human sees the raw tool output. Each table ends with the period averages so the assistant doesn't have to sum seven rows to answer “is this trending up?”.
Everything is read-only
All six tools are annotated readOnlyHint: true and destructiveHint: false. FitnessPeak requests only WHOOP's read scopes and has no write path in the codebase — there is no way for an assistant to change anything in your WHOOP account.
Endpoint
https://fitnesspeak.app/mcp
See the docs for transport details and per-client setup.
Try the tools on your own data
14-day free trial. Card required so there's no second signup at the end; cancel before day 14 and you're charged nothing.