Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoHTTP server port3000
DB_PATHNoSQLite database path./whoop.db
MCP_MODENohttp for remote, stdio for localhttp
WHOOP_CLIENT_IDYesWhoop OAuth client ID
WHOOP_REDIRECT_URINoOAuth callback URLhttp://localhost:3000/callback
WHOOP_CLIENT_SECRETYesWhoop OAuth client secret

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
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_todayA

Returns the user's latest WHOOP status as Markdown: the most recent recovery (score %, Green/Yellow/Red zone, HRV in ms, resting heart rate, SpO2, skin temperature), last night's sleep (time asleep, performance, efficiency, light/deep/REM stages, respiratory rate) and today's strain so far (0–21) with calories and heart rate. Use it first for questions like "how am I today?" or "should I train hard?". For more than one day, use get_recovery_trends, get_sleep_analysis, get_strain_history or get_workouts. When a newer version of this server is out, the answer ends with a one-line notice to pass on to the user. Read-only: it never changes the user's WHOOP data. It fetches the data live from WHOOP on every call and keeps no copy, so the answer is current; if WHOOP can't be reached, it says so. If WHOOP isn't connected yet, it returns a message asking to call get_auth_url.

get_recovery_trendsA

Returns daily recovery for the last days days (default 14), newest first, as a Markdown table: recovery score (%), HRV (ms) and resting heart rate (bpm) for each of the user's local days, then averages. Days WHOOP hasn't scored are left out. Use it for patterns and comparisons, such as "how has my HRV changed this month?". For today alone, use get_today; for the sleep behind the numbers, use get_sleep_analysis. Set days to match the question: 7 for the last week, 30 for the last month, up to 90. Read-only: it never changes the user's WHOOP data. It fetches the data live from WHOOP on every call and keeps no copy, so the answer is current; if WHOOP can't be reached, it says so. If WHOOP isn't connected yet, it returns a message asking to call get_auth_url.

get_sleep_analysisA

Returns nightly sleep for the last days days (default 14), newest first, as a Markdown table: time asleep in hours (light, deep and REM sleep, not time in bed), sleep performance (%) and efficiency (%), then averages. Naps and nights WHOOP hasn't scored are left out, and each night counts toward the day the user woke up. Use it for sleep patterns. For last night's stages, use get_today; for the recovery those nights produced, use get_recovery_trends. Set days to match the question: 7 for the last week, 30 for the last month, up to 90. Read-only: it never changes the user's WHOOP data. It fetches the data live from WHOOP on every call and keeps no copy, so the answer is current; if WHOOP can't be reached, it says so. If WHOOP isn't connected yet, it returns a message asking to call get_auth_url.

get_strain_historyA

Returns daily strain for the last days days (default 14), including today so far, newest first, as a Markdown table: WHOOP day strain (0–21, covering all activity that day) and calories burned (kcal), then averages. Days without a strain score are left out. Use it for overall load and activity trends. For individual training sessions, use get_workouts; for how the body coped, use get_recovery_trends. Set days to match the question: 7 for the last week, 30 for the last month, up to 90. Read-only: it never changes the user's WHOOP data. It fetches the data live from WHOOP on every call and keeps no copy, so the answer is current; if WHOOP can't be reached, it says so. If WHOOP isn't connected yet, it returns a message asking to call get_auth_url.

get_workoutsA

Returns individual workouts from the last days days (default 14), newest first, as a Markdown table: local date and start time, activity, duration, strain (or "unscored" when WHOOP hasn't scored it), average and max heart rate, time in heart-rate zones 4–5 and calories, then totals. Use it for questions about specific sessions or training volume; for whole-day strain including activity outside workouts, use get_strain_history. Set days to match the question: 7 for the last week, 30 for the last month, up to 90. Read-only: it never changes the user's WHOOP data. It fetches the data live from WHOOP on every call and keeps no copy, so the answer is current; if WHOOP can't be reached, it says so. If WHOOP isn't connected yet, it returns a message asking to call get_auth_url.

get_auth_urlA

Returns a one-time link that connects the user's WHOOP account to this server through WHOOP's own login. Use it when a data tool such as get_today says WHOOP isn't connected or its authorization expired. Give the link to the user to open in a browser: it works once and expires in 10 minutes. Once they have logged in, get_today and the other data tools work. It doesn't read any WHOOP data. A server running in stdio mode can't receive WHOOP's login, so there it returns setup instructions instead.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct WHOOP metric domain (recovery trends, today's snapshot, auth, sleep, strain, individual workouts), and the descriptions explicitly cross-reference each other with guidance on when to prefer one over another. There is essentially no risk of misselection.

Naming Consistency5/5

All tools follow a uniform get_ verb + noun pattern in snake_case (get_recovery_trends, get_today, get_auth_url, get_sleep_analysis, get_strain_history, get_workouts). The convention is predictable and readable throughout.

Tool Count5/5

Six tools is well-scoped for a read-only health data server, with one tool per major WHOOP metric plus an auth helper. Nothing feels redundant or missing at the count level.

Completeness4/5

The surface covers recovery, sleep, strain, workouts, a daily snapshot, and authorization, which matches the domain well. Minor gaps exist (e.g., no user profile/body metrics or journal data), but these are edge concerns an agent could work around.

Maintenance

ActivityMaintained
ResponsivenessNo issues