Skip to main content
Glama
jorgedcb

WHOOP MCP Server

by jorgedcb

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
WHOOP_CLIENT_IDNoOverride the saved credentials. Default: from `auth`.
WHOOP_CONFIG_DIRNoWhere credentials and tokens are stored.~/.config/whoop-mcp
WHOOP_TOKEN_FILENoToken file path (use an absolute path).<config dir>/tokens.json
WHOOP_REDIRECT_URINoMust match the app's registered URI.http://localhost:3000/callback
WHOOP_CLIENT_SECRETNoOverride the saved credentials. Default: from `auth`.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_recoveryA

Recovery records, newest first. Each has recovery_score (0-100), hrv_rmssd_milli (HRV in ms), resting_heart_rate (bpm), spo2_percentage and skin_temp_celsius. A recovery is scored after the sleep referenced by sleep_id; created_at is when it was scored. Note: the date range is matched against the underlying sleep window, so a range ending on day N also returns the recovery scored on the morning of N+1. Use start/end to select a date range and next_token to page. WHOOP matches the range against the activity's own start/end window.

get_sleepA

Sleep records (including naps, flagged by nap), newest first. score.stage_summary holds time in each stage in milliseconds; score.sleep_needed breaks down how much sleep was required; sleep_performance_percentage is actual vs needed. Times are UTC with timezone_offset for local conversion. Use start/end to select a date range and next_token to page. WHOOP matches the range against the activity's own start/end window.

get_sleep_by_idB

A single sleep record by its UUID, e.g. the sleep_id from a recovery record.

get_cyclesA

Physiological cycles (one per WHOOP 'day', running from wake-up to the next wake-up), newest first. score.strain is the day strain (0-21); kilojoule is energy burned. The current cycle has no end. Use start/end to select a date range and next_token to page. WHOOP matches the range against the activity's own start/end window.

get_cycle_by_idC

A single physiological cycle by its numeric id.

get_sleep_for_cycleB

The sleep that closed the given cycle, i.e. the night at the end of that WHOOP day.

get_recovery_for_cycleC

The recovery score computed for the given cycle, based on the sleep that preceded it.

get_workoutsA

Workout records, newest first. sport_name identifies the activity; score.strain is workout strain (0-21); zone_durations is time in each heart-rate zone in milliseconds; distance and altitude are present only when GPS data was recorded. Use start/end to select a date range and next_token to page. WHOOP matches the range against the activity's own start/end window.

get_workout_by_idC

A single workout record by its UUID.

get_profileB

The authenticated user's name and email.

get_body_measurementsB

The user's height (meters), weight (kilograms) and max heart rate as configured in WHOOP.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 11 tools

Disambiguation4/5

The main list tools (get_recovery, get_sleep, get_cycles, get_workouts) are distinct, but the four by_id/relationship tools (get_sleep_by_id, get_cycle_by_id, get_sleep_for_cycle, get_recovery_for_cycle) have subtle boundaries, particularly the cycle-relationship pair versus the ID lookups, risking misselection.

Naming Consistency4/5

Most tools follow a consistent get_noun pattern, with get_sleep_by_id and get_workout_by_id deviating only by adding an _by_id suffix. This is a minor, readable deviation rather than a true inconsistency.

Tool Count5/5

Eleven tools are well-scoped for WHOOP's core domains (profile, recovery, sleep, cycles, workouts, body), with relationship helpers earning their place. Nothing feels excessive or thin.

Completeness4/5

Read/list coverage is strong across all main resources, including relationship helpers, but the surface is read-only, with no create/update/delete and no explicit pagination or error tools. Minor gaps agents can work around.