{"name":"io.github.davidmosiah/whoop-mcp","slug":"davidmosiah-whoop-mcp","title":null,"description":"Privacy-first, unofficial WHOOP MCP server for AI health, sleep, recovery, and performance agents.","url":"https://mcp.market/server/davidmosiah-whoop-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":41,"stars":13,"forks":4,"downloads_week":294,"last_push_at":"2026-08-29T10:26:15.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/davidmosiah/whoop-mcp","website":"https://wellness.delx.ai/connectors/whoop","version":"0.5.3","remotes":[],"packages":[{"registryType":"npm","identifier":"whoop-mcp-unofficial","version":"0.5.3","transport":{"type":"stdio"},"environmentVariables":[{"description":"WHOOP OAuth client ID. Optional when configured with whoop-mcp-server setup.","format":"string","name":"WHOOP_CLIENT_ID"},{"description":"WHOOP OAuth client secret. Prefer whoop-mcp-server setup so this secret is stored in ~/.whoop-mcp/config.json instead of MCP client config.","format":"string","isSecret":true,"name":"WHOOP_CLIENT_SECRET"},{"description":"Redirect URI configured in the WHOOP Developer Dashboard. Optional when configured with whoop-mcp-server setup.","format":"string","name":"WHOOP_REDIRECT_URI"},{"description":"Optional local path for OAuth tokens. Defaults to ~/.whoop-mcp/tokens.json.","format":"string","name":"WHOOP_TOKEN_PATH"},{"description":"Optional payload mode: summary, structured, or raw. Defaults to structured. raw means full WHOOP API payloads, not raw device sensor streams.","format":"string","name":"WHOOP_PRIVACY_MODE"},{"description":"Optional SQLite cache toggle. Set to true or sqlite to enable.","format":"string","name":"WHOOP_CACHE"},{"description":"Optional local SQLite cache path. Defaults to ~/.whoop-mcp/cache.sqlite.","format":"string","name":"WHOOP_CACHE_PATH"},{"description":"Set to true to bypass the in-memory HTTP response cache (60s TTL for GET only). POST/PUT/DELETE and 4xx/5xx responses are never cached regardless.","format":"string","name":"WHOOP_NO_CACHE"}]}],"tools":[{"name":"whoop_agent_manifest","description":"Machine-readable install, runtime and client guidance for AI agents operating the WHOOP MCP. Does not read WHOOP or expose secrets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_cache_status","description":"Show optional local SQLite cache status. Enable with WHOOP_CACHE=sqlite or WHOOP_CACHE=true.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_capabilities","description":"Explain supported WHOOP data, unavailable raw sensor streams, privacy modes, recommended agent workflow, and project links. Does not read WHOOP or expose secrets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_connection_status","description":"Check whether local WHOOP env vars, token file, Node version, privacy mode and cache are ready. Does not call WHOOP or expose secrets.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_daily_summary","description":"Build a privacy-conscious daily performance summary from WHOOP recovery, sleep, cycle and workout data. This workflow tool fetches recent WHOOP v2 records, computes a defensive baseline, and returns readiness, sleep, load, diagnostic signals and concrete action candidates. It does not provide medical advice and does not store data locally.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_data_inventory","description":"Inventory supported WHOOP data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call WHOOP APIs or expose user data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_demo","description":"Returns realistic example payloads of whoop_daily_summary, whoop_wellness_context, and whoop_list_recoveries so agents see the contract before calling real WHOOP APIs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_exchange_code","description":"Exchange a WHOOP OAuth authorization code for local tokens. Tokens are stored locally with 0600 permissions and are never returned by this tool. Gated: requires explicit user intent — agents must not call this autonomously.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_get_auth_url","description":"Generate a WHOOP OAuth authorization URL. This does not read or modify WHOOP data. Use this first when no local token exists.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_get_body_measurements","description":"Get the authenticated user's WHOOP body measurements (height, weight, max heart rate). Requires read:body_measurement scope. Not medical advice.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_get_profile","description":"Get the authenticated user's basic WHOOP profile. Requires read:profile scope.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_onboarding","description":"Return the 11-question Delx wellness onboarding flow (in English or pt-BR) plus the current shared profile state and missing critical fields. Read-only. The agent should ask these questions one-by-one, then call whoop_profile_update with explicit_user_intent=true to save. The same profile is reused by every Delx Wellness connector (Oura, Garmin, Nourish, etc.) — agents can call the equivalent {con","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_privacy_audit","description":"Return the local privacy, cache, token-path, env-presence and redaction posture without revealing secret values.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_profile_get","description":"Read the shared Delx wellness profile (~/.delx-wellness/profile.json). Returns the user's preferred name, body basics, goals, devices, training context, nutrition context, agent preferences, and missing critical fields. Cross-connector — the same profile is also available from other Delx Wellness MCPs (Oura, Garmin, Nourish, Fitbit, etc). Read-only.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_profile_update","description":"Persist a partial patch to the shared Delx wellness profile (~/.delx-wellness/profile.json). REQUIRES explicit_user_intent=true. Top-level fields stored: profile (preferred_name, language, timezone, units, age_or_birth_year, height, weight, sex_or_gender_context), goals, devices, training, nutrition, preferences, safety, notes. NEVER stores OAuth tokens, API keys, refresh tokens, cookies, or any s","write_action":true,"price_micros":0,"input_schema":null},{"name":"whoop_quickstart","description":"Personalized 3-step setup walkthrough for the human user. Adapts to current state (env vars set? token present? what's next?). Call this first when the user asks 'how do I connect WHOOP?'","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_recovery_trend","description":"Aggregate WHOOP recovery over the last N days (default 30) into a per-metric trend for recovery score, HRV (hrv_rmssd_milli) and resting heart rate. Each metric returns { avg, min, max, slope, direction, n_valid } where slope is a least-squares fit over the chronologically ordered scored records (oldest to newest) and direction is rising, falling, stable or insufficient_data. Use this to answer \"i","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_revoke_access","description":"Revoke the current WHOOP OAuth access grant and delete the local token file. Use only when the user explicitly wants to disconnect WHOOP. Gated: requires explicit user intent — agents must not call this autonomously.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_sleep_trend","description":"Aggregate WHOOP sleep over the last N days (default 30) into a per-metric trend for sleep performance percentage, sleep duration (hours) and sleep efficiency percentage. Each metric returns { avg, min, max, slope, direction, n_valid } where slope is a least-squares fit over the chronologically ordered scored sleeps (oldest to newest) and direction is rising, falling, stable or insufficient_data. U","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_weekly_summary","description":"Build a weekly WHOOP operating review with recovery, sleep, strain, workouts, bottlenecks, action candidates and next-week success metrics. This workflow tool compares a recent window against a prior window when available. It is intended for coaching and agent workflows, not medical diagnosis.","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoop_wellness_context","description":"Normalize WHOOP recovery, sleep, strain and recent workout load into the shared wellness_context shape for exercise recommendation engines and Telegram agents.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-26T11:37:39.587Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T11:37:39.625Z","components":{"code":{"score":25,"max":25,"notes":["60 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 28 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"whoop-mcp-unofficial","version":"0.5.3","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":5,"publishedAt":"2026-06-27T18:44:09.678Z","repositoryUrl":"git+https://github.com/davidmosiah/whoop-mcp.git","weeklyDownloads":294}],"repo":{"found":true,"owner":"davidmosiah","repo":"whoop-mcp","archived":false,"pushedAt":"2026-08-29T10:26:15Z","stars":13,"forks":4,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/624359?v=4","ownerCreatedAt":"2011-02-18T00:23:21Z","license":"MIT"},"icon":{"url":"https://wellness.delx.ai/favicon.svg","source":"site"},"presence":{"stars":13,"forks":4,"downloadsWeek":294,"license":"MIT","lastPushAt":"2026-08-29T10:26:15.000Z","score":41}}}},"grade_history":[],"reviews":[]}