Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
WHOOP_DB_URLYesPostgres DSN, e.g. postgresql://user:pass@host:5432/db. Tokens and data live here.
WHOOP_CLIENT_IDYesClient ID of your WHOOP developer app.
WHOOP_REDIRECT_URIYesRedirect URI, exactly as registered on the app. Any URL works; the server does not listen on it. You copy the code from the address bar.
WHOOP_CLIENT_SECRETYesClient secret of your WHOOP developer app.

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": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
whoop_auth_urlA

Start connecting a WHOOP account: returns the OAuth authorization URL for the user to open in a browser. After approving, the browser lands on the redirect URI with a code parameter to pass to whoop_connect.

whoop_connectA

Finish connecting: exchange the OAuth code from the redirect URL for tokens, store them in Postgres, and return the connected user's summary.

whoop_syncA

Pull data from the WHOOP API into Postgres. Incremental by default (last days days plus anything since the last sync); set full=true to backfill the account's entire history. Returns per-collection counts and errors.

whoop_statusA

Sync health: connected user, and per collection the last sync time, watermark, row count, and last error. Reads the local database only; run whoop_sync first to refresh.

whoop_overviewA

One-call snapshot: latest recovery and vitals compared with the 30-day baseline (delta and z-score), last night's sleep, and recent workouts and daily strain. Reads the local database only; run whoop_sync first to refresh.

whoop_recoveryA

Recent recovery records: score (0-100), resting HR, HRV, SpO2, skin temperature, newest first. Reads the local database only; run whoop_sync first to refresh.

whoop_sleepA

Recent sleeps including naps: stage durations, sleep need, respiratory rate, performance and efficiency, newest first. Reads the local database only; run whoop_sync first to refresh.

whoop_workoutsA

Recent workouts: sport, duration, strain, heart rate, energy, distance, and minutes per heart-rate zone, newest first. Reads the local database only; run whoop_sync first to refresh.

whoop_cyclesA

Recent physiological cycles (WHOOP days): day strain, energy, average and max heart rate, newest first. Reads the local database only; run whoop_sync first to refresh.

whoop_baselineA

30-day mean and standard deviation per vital: recovery score, resting HR, HRV, SpO2, skin temperature, sleep hours, sleep performance, day strain. Reads the local database only; run whoop_sync first to refresh.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 10 tools

Disambiguation4/5

Each tool targets a distinct data type (recovery, sleep, workouts, cycles) or action (auth, connect, sync, status), so boundaries are mostly clear. whoop_overview aggregates recovery/sleep/workouts/strain and thus overlaps with the individual read tools and whoop_baseline, but its 'one-call snapshot' description mostly disambiguates it.

Naming Consistency5/5

Every tool uses the same whoop_<noun> snake_case prefix with no mixing of conventions. The pattern is predictable and readable throughout.

Tool Count5/5

Ten tools is a well-scoped set: two auth tools, one sync, one status, one baseline, and six read tools. Each earns its place with no obvious redundancy.

Completeness4/5

The surface covers the full lifecycle: OAuth connect, sync, sync health, and reads across recovery, sleep, workouts, cycles, baseline, and overview. Minor gaps like token revocation/disconnect or delete operations are absent but not blocking for the read-oriented purpose.