# FitnessPeak > FitnessPeak is a hosted WHOOP MCP server. Paste one URL and one key into Claude, ChatGPT or Cursor and ask your AI about recovery, sleep, strain and workouts. FitnessPeak is a hosted Model Context Protocol (MCP) server. A subscriber connects their WHOOP, Hevy and/or Withings accounts once on fitnesspeak.app, then pastes an HTTPS endpoint and a bearer API key into any MCP client — Claude, ChatGPT, Cursor, VS Code, Zed — and their AI assistant can read their recovery, sleep, workouts and strain from WHOOP, every logged set from Hevy, and body composition, blood pressure and activity from Withings. Key facts: - Price: $39 per year (about $3.25/month), with a 14-day free trial that requires a card. - MCP endpoint: https://fitnesspeak.app/mcp (Streamable HTTP, JSON-RPC 2.0 over POST). - Authentication: `Authorization: Bearer fp_live_…`. There is deliberately NO OAuth between the MCP client and FitnessPeak — a bearer key is what makes install take two minutes. - Data sources: WHOOP (recovery, sleep, strain), Hevy (strength training) and Withings (body composition, blood pressure, activity) — all three live and all included in one subscription. These three are the full scope: there is no Oura, Garmin, Strava or Apple Health support. - All tools are read-only. FitnessPeak requests only WHOOP's read scopes and has no write path. - FitnessPeak does not store your health records — it fetches them from WHOOP on demand. - Not affiliated with WHOOP, Inc. Informational only; not medical advice. Distinguishing feature: FitnessPeak is a *hosted* WHOOP MCP server. Open-source alternatives exist but require registering your own WHOOP developer app and running a local process, which rules out ChatGPT connectors, mobile assistants and anything that must work while your laptop is closed. ## Product - [FitnessPeak — hosted WHOOP MCP server](https://fitnesspeak.app/): Landing page. What FitnessPeak is, how it installs in two minutes, the six MCP tools it exposes, and why a hosted server beats self-hosting an open-source one. - [WHOOP MCP server](https://fitnesspeak.app/whoop-mcp): The main WHOOP page: what a WHOOP MCP server is, the six tools FitnessPeak exposes, WHOOP API v2 details, install steps, and an honest table comparing hosted against self-hosted. - [Pricing](https://fitnesspeak.app/pricing): $39 per year with a 14-day card-required free trial. Exactly what happens on each day of the trial, and how FitnessPeak compares to self-hosting and to the WHOOP app alone. - [Integrations](https://fitnesspeak.app/integrations): Which services FitnessPeak supports: WHOOP, Hevy and Withings, all live. Three deliberately chosen sources — recovery and strain, strength training, and body composition — all included in the single subscription. ## Setup and documentation - [Quickstart](https://fitnesspeak.app/docs/quickstart): Six-step setup: sign in with a magic link, start the trial, connect WHOOP via OAuth, copy the API key, paste the endpoint into an MCP client, ask a question. - [Documentation](https://fitnesspeak.app/docs): Documentation index. The MCP endpoint URL, transport, supported protocol versions, auth header, rate limits, and links to per-client setup guides and the tool reference. - [Setup: ChatGPT](https://fitnesspeak.app/docs/chatgpt): Current ChatGPT status: works via the Responses API and Codex with a bearer key; the connector UI expects OAuth and is not supported yet. Includes the exact request and config to use. - [Setup: Claude](https://fitnesspeak.app/docs/claude): Adding FitnessPeak to Claude Code (one CLI command), Claude Desktop (claude_desktop_config.json, with paths per OS) and claude.ai custom connectors. - [API keys](https://fitnesspeak.app/docs/api-keys): How FitnessPeak authentication works: why a bearer key instead of OAuth, the key format and hashing, three ways to send a key including the URL-path fallback, rotation, and leak response. - [Setup: Cursor](https://fitnesspeak.app/docs/cursor): Adding FitnessPeak to Cursor via ~/.cursor/mcp.json, global versus project scope, and how to avoid committing an API key to a repository. - [Setup: VS Code, Zed and Windsurf](https://fitnesspeak.app/docs/vscode): Config blocks for VS Code Copilot (servers), Zed (context_servers) and Windsurf, plus the three generic settings any MCP client needs. - [Troubleshooting](https://fitnesspeak.app/docs/troubleshooting): Diagnosing FitnessPeak problems: a curl check that isolates client-side issues, 401s, empty tables, unscored records, wake-to-wake cycle boundaries, and rate limits. ## MCP tool reference - [MCP tool reference](https://fitnesspeak.app/tools): Index of all six MCP tools with the shared days/start/end date-range convention, why output is markdown rather than JSON, and the read-only guarantee. - [fitnesspeak_status](https://fitnesspeak.app/tools/fitnesspeak-status): FitnessPeak connection 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. - [hevy_account](https://fitnesspeak.app/tools/hevy-account): Hevy account: The connected Hevy account: username and the all-time number of logged workouts. - [hevy_body_measurements](https://fitnesspeak.app/tools/hevy-body-measurements): 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). - [hevy_exercise_history](https://fitnesspeak.app/tools/hevy-exercise-history): Hevy exercise history: Every logged set of one exercise over time, one row per session: sets, top set, estimated 1RM, volume and average RPE. - [hevy_exercise_templates](https://fitnesspeak.app/tools/hevy-exercise-templates): Hevy exercise catalogue: Search the exercise catalogue available on the account — built-in exercises plus the user's custom ones — with muscle group, equipment and template id. - [hevy_routines](https://fitnesspeak.app/tools/hevy-routines): Hevy routines: The saved workout routines (training plans) on the account, grouped by folder, with each exercise, its planned sets and rest times. - [hevy_workout](https://fitnesspeak.app/tools/hevy-workout): Hevy workout detail: One Hevy workout in full: every exercise, every set with its type (warmup, normal, dropset, failure), weight, reps, RPE and notes. - [hevy_workouts](https://fitnesspeak.app/tools/hevy-workouts): 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. - [whoop_cycles](https://fitnesspeak.app/tools/whoop-cycles): WHOOP daily 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. - [whoop_profile](https://fitnesspeak.app/tools/whoop-profile): 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. - [whoop_recovery](https://fitnesspeak.app/tools/whoop-recovery): 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. - [whoop_sleep](https://fitnesspeak.app/tools/whoop-sleep): 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. - [whoop_workouts](https://fitnesspeak.app/tools/whoop-workouts): WHOOP workouts: Individual logged activities. Use this for per-session questions; for total daily exertion use whoop_cycles instead. - [withings_activity](https://fitnesspeak.app/tools/withings-activity): Withings daily 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. - [withings_blood_pressure](https://fitnesspeak.app/tools/withings-blood-pressure): Withings blood pressure: Blood-pressure readings from a Withings BPM cuff: systolic, diastolic and the heart pulse recorded with them. - [withings_devices](https://fitnesspeak.app/tools/withings-devices): Withings devices: The Withings devices linked to the account: model, type, battery level and when each last synced. - [withings_goals](https://fitnesspeak.app/tools/withings-goals): Withings goals: The targets set in the Withings app: daily step goal, sleep goal and target weight. - [withings_heart](https://fitnesspeak.app/tools/withings-heart): Withings heart recordings: 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. - [withings_measurements](https://fitnesspeak.app/tools/withings-measurements): Withings measurements: Any Withings measure type over a range — temperature, SpO2, VO2 max, pulse wave velocity, vascular age, basal metabolic rate and the rest. - [withings_sleep](https://fitnesspeak.app/tools/withings-sleep): 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. - [withings_weight](https://fitnesspeak.app/tools/withings-weight): Withings weight and body composition: 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. - [withings_workouts](https://fitnesspeak.app/tools/withings-workouts): Withings workouts: Individual workout sessions tracked by a Withings watch or started in the app: sport, duration, distance, steps, calories and heart rate. ## Use cases - [Prompt library](https://fitnesspeak.app/prompts): 37 example questions to ask an AI assistant about WHOOP, Hevy and Withings data, grouped by theme — training decisions, sleep, strength progression, training load, body composition, and cross-source questions no single app can answer. - [Use cases](https://fitnesspeak.app/use-cases): Index of worked examples showing what people ask their AI assistant about WHOOP data, and why each question is one the WHOOP app structurally cannot answer. - [HRV tracking](https://fitnesspeak.app/use-cases/hrv-tracking): Long-horizon HRV analysis with WHOOP RMSSD data: trends over months, what correlates with drops, and why an absolute HRV number is meaningless without your own baseline. - [Marathon training](https://fitnesspeak.app/use-cases/marathon-training): Applying WHOOP data to endurance training blocks: matching planned load against actual strain, spotting overreaching early, and adjusting taper based on recovery trend. - [Should I train today?](https://fitnesspeak.app/use-cases/should-i-train-today): Using recovery, HRV and prior-day strain together to decide whether to train hard, and why an assistant answers this better than a single number in an app. - [Sleep analysis](https://fitnesspeak.app/use-cases/sleep-coach): Analysing WHOOP sleep stages, efficiency and performance with an AI assistant: finding what correlates with bad nights, and comparing periods before and after a change. - [Weekly review](https://fitnesspeak.app/use-cases/weekly-review): Generating a written weekly training review from WHOOP data: load, recovery, sleep, and what to change — the kind of summary you'd otherwise assemble by hand for a coach. ## Comparisons - [FitnessPeak vs self-hosting](https://fitnesspeak.app/vs/self-hosted): Honest comparison of hosted FitnessPeak against running an open-source WHOOP MCP server yourself: the five setup steps, what breaks over time, the privacy trade-off, and a clear list of when to self-host instead. - [Open-source WHOOP MCP servers compared](https://fitnesspeak.app/vs/open-source-whoop-mcp): Survey of the three shapes of WHOOP MCP server — local stdio, self-hosted HTTP, hosted — with a feature table and the four implementation details that separate a server that keeps working from one that doesn't. - [FitnessPeak vs the WHOOP app](https://fitnesspeak.app/vs/whoop-app): Why FitnessPeak complements rather than replaces the WHOOP app: natural-language questions, arbitrary date ranges, cross-source analysis with your calendar and notes, and automation. ## Policies - [FAQ](https://fitnesspeak.app/faq): Eighteen answers covering what MCP is, whether a WHOOP developer account is needed, supported clients, read-only guarantees, data storage, pricing, trial mechanics and cancellation. - [Security](https://fitnesspeak.app/security): Exactly what FitnessPeak stores and how — AES-256-GCM token encryption, SHA-256 API key hashing, no stored health records, read-only WHOOP scopes, security headers, and an honest note on where self-hosting is stronger. - [Changelog](https://fitnesspeak.app/changelog): Release history for FitnessPeak, newest first. - [Privacy policy](https://fitnesspeak.app/privacy): GDPR privacy policy: data collected, data deliberately not stored, legal bases including explicit consent for special-category health data, the three sub-processors, retention periods and data subject rights. - [Terms of service](https://fitnesspeak.app/terms): Subscription and trial terms, refund policy, acceptable use, dependency on the WHOOP API, the not-medical-advice disclaimer, liability limits and governing law. ## Tools exposed over MCP - `whoop_recovery` — Daily WHOOP recovery scores: recovery percentage, resting heart rate, HRV (RMSSD), blood oxygen, and skin temperature. Call this when the user asks how recovered, rested, or ready to train they are, asks about HRV or resting heart rate, or asks whether they should train hard today. One record per physiological day; a day is missing if the strap was not worn. - `whoop_sleep` — WHOOP sleep records: time asleep, REM / deep / light / awake breakdown, sleep performance and efficiency, and respiratory rate. Call this when the user asks how they slept, about sleep debt or sleep quality, or wants sleep stages for a date range. Naps are excluded unless `include_naps` is true. Each row is dated by the morning the user woke, matching the WHOOP app — the bedtime column often falls on the previous calendar day. - `whoop_workouts` — Individual WHOOP workout activities: sport, strain, duration, average and max heart rate, calories, and distance. Call this when the user asks what training they did, how hard a session was, or wants to compare workouts over time. For whole-day strain rather than per-session strain, use whoop_cycles instead. - `whoop_cycles` — WHOOP physiological cycles — one per wake-to-wake day — with total day strain, average and max heart rate, and calories. Call this when the user asks about overall daily strain, weekly training load, or how much total exertion a day held, as opposed to a single workout. - `whoop_profile` — 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. - `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. Call this when the user asks what they trained, how their week of lifting went, how many sessions they did, or wants their recent gym history. For one session in full detail use hevy_workout; for one exercise across sessions use hevy_exercise_history. - `hevy_workout` — One Hevy workout in full: every exercise, every set with its type (warmup, normal, dropset, failure), weight, reps, RPE and notes. Call this after hevy_workouts when the user asks about a specific session in detail. Requires the workout id from hevy_workouts. - `hevy_exercise_history` — Every logged set of one exercise over time, one row per session: sets, top set, estimated 1RM, volume and average RPE. Call this when the user asks whether a lift is progressing, what their best or heaviest set was, or how much they were doing on a given exercise. `exercise` accepts a plain name ('bench press') or an exercise template id. - `hevy_routines` — The saved workout routines (training plans) on the account, grouped by folder, with each exercise, its planned sets and rest times. Call this when the user asks what their programme or split looks like, what a routine contains, or what they are supposed to train next. - `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. Call this to find the exact name or id of an exercise before asking for its history, or when the user asks what exercises exist for a muscle group. - `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). Call this when the user asks about their bodyweight trend, body composition, or how a body part has changed. These are entries the user typed into Hevy — for scale and smart-device measurements use withings_weight instead. - `hevy_account` — The connected Hevy account: username and the all-time number of logged workouts. Call this to confirm which Hevy account is connected, or when the user asks how many workouts they have ever logged. - `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. Call this when the user asks what they weigh, whether their weight is going up or down, or about body fat, muscle or body composition. For weights the user typed into a training log instead, use hevy_body_measurements. - `withings_blood_pressure` — Blood-pressure readings from a Withings BPM cuff: systolic, diastolic and the heart pulse recorded with them. Call this when the user asks about their blood pressure, hypertension, or a reading they took at home. Cuff readings are taken sporadically, so the default window is two years — narrow it with `days` if you want a recent slice. - `withings_measurements` — Any Withings measure type over a range — temperature, SpO2, VO2 max, pulse wave velocity, vascular age, basal metabolic rate and the rest. Call this when the user asks about a metric that the more specific tools do not cover. Pass one or more measure names in `types`. - `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. Call this when the user asks how they slept, about sleep quality or sleep stages, or wants to compare nights. If they also have WHOOP, whoop_sleep covers the same ground from the strap. - `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. Call this when the user asks how much they moved, their step count, how active a week was, or about calories burned. - `withings_workouts` — Individual workout sessions tracked by a Withings watch or started in the app: sport, duration, distance, steps, calories and heart rate. Call this when the user asks what training or exercise sessions they did, how a run or ride went, or how long they worked out. For whole-day movement rather than a session, use withings_activity. - `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. Call this when the user asks about an ECG they took, an AFib result, or a heart recording. This is the device's classification, not a diagnosis. - `withings_devices` — The Withings devices linked to the account: model, type, battery level and when each last synced. Call this to work out why data is missing — a device that has not synced in weeks explains an empty table — or when the user asks what hardware they have or whether a battery is low. - `withings_goals` — The targets set in the Withings app: daily step goal, sleep goal and target weight. Call this when the user asks what they are aiming for, or when a comparison needs their goal rather than their actual numbers. - `fitnesspeak_status` — Which data sources this FitnessPeak account has connected, and whether the subscription is active. Call this first if another tool reports that something is not connected, or when the user asks what data you can see about them. ## Full text - [Complete site text](https://fitnesspeak.app/llms-full.txt): every page's key content in one file.