io.github.davidmosiah/whoop-mcp
NPM · WHOOP-MCP-UNOFFICIAL · SCANNED AUG 3
Privacy-first, unofficial WHOOP MCP server for AI health, sleep, recovery, and performance agents.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (129 of 130), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (129 of 130), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 1 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability85
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 3485 tokens (~91/item across 38 items; 30 tools + 8 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage89
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 62% of tool parameters carry a description.Partial
- Structured output schemas are declared (83% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · whoop-mcp-unofficial
claude mcp add davidmosiah-whoop-mcp -- npx -y whoop-mcp-unofficial
codex mcp add davidmosiah-whoop-mcp -- npx -y whoop-mcp-unofficial
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"davidmosiah-whoop-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"whoop-mcp-unofficial"
],
"enabled": true
}
}
} openclaw mcp add davidmosiah-whoop-mcp --command npx --arg -y --arg whoop-mcp-unofficial
mcp_servers:
davidmosiah-whoop-mcp:
command: "npx"
args: ["-y", "whoop-mcp-unofficial"] {
"mcpServers": {
"davidmosiah-whoop-mcp": {
"command": "npx",
"args": [
"-y",
"whoop-mcp-unofficial"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +4
- Stability: unverified → 0.27 ▲ functional
- 2 Aug 26 +41
- Provenance: unverified → fail ▼ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Malware scan: unverified → pass ▲ security
- Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → excellent ▲ functional
- Licence: MIT functional
- 31 Jul 26 −8
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −18
- Malware scan: pass → unverified ▼ security
- 27 Jul 26 51
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Dependencies 129 packages
129 packages in the resolved dependency tree · 129 deprecated · 49 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
whoop_agent_manifest WHOOP Agent Manifest ~51
Machine-readable install, runtime and client guidance for AI agents operating the WHOOP MCP. Does not read WHOOP or expose secrets.
| Name | Type | Req | Description |
|---|---|---|---|
| client | string | — | — |
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| agent_rules | array | yes | — |
| client | string | yes | — |
| hermes | object | yes | — |
| links | object | yes | — |
| mcp_name | string | yes | — |
| oauth | object | yes | — |
| package | object | yes | — |
| project | string | yes | — |
| recommended_first_calls | array | yes | — |
| resources | array | yes | — |
| standard_tools | array | yes | — |
| troubleshooting | array | yes | — |
| unofficial | boolean | yes | — |
No examples provided.
whoop_cache_status WHOOP Cache Status ~38
Show optional local SQLite cache status. Enable with WHOOP_CACHE=sqlite or WHOOP_CACHE=true.
| Name | Type | Req | Description |
|---|---|---|---|
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | — |
| entries | integer | yes | — |
| http_cache | object | — | — |
| newest_cached_at | string | — | — |
| path | string | yes | — |
No examples provided.
whoop_capabilities WHOOP MCP Capabilities ~49
Explain supported WHOOP data, unavailable raw sensor streams, privacy modes, recommended agent workflow, and project links. Does not read WHOOP or expose secrets.
| Name | Type | Req | Description |
|---|---|---|---|
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| api_boundary | object | yes | — |
| auth_model | object | yes | — |
| client_aliases | object | — | — |
| contribution_paths | array | yes | — |
| creator | object | yes | — |
| links | object | yes | — |
| mcp_name | string | yes | — |
| privacy_modes | array | yes | — |
| project | string | yes | — |
| recommended_agent_flow | array | yes | — |
| supported_data | array | yes | — |
| unofficial | boolean | yes | — |
No examples provided.
whoop_connection_status WHOOP Connection Status ~55
Check whether local WHOOP env vars, token file, Node version, privacy mode and cache are ready. Does not call WHOOP or expose secrets.
| Name | Type | Req | Description |
|---|---|---|---|
| client | string | — | — |
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| automatic_auth_supported | boolean | yes | — |
| cache | object | yes | — |
| client | string | — | — |
| client_checks | object | — | — |
| config | object | yes | — |
| missing_env | array | yes | — |
| next_steps | array | yes | — |
| node | object | yes | — |
| ok | boolean | yes | — |
| privacy_mode | string | yes | — |
| ready_for_whoop_api | boolean | yes | — |
| redirect_uri | string | — | — |
| required_env | object | yes | — |
| token | object | yes | — |
No examples provided.
whoop_daily_summary WHOOP Daily Summary ~128
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.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | — | Lookback window used to build the daily baseline. Minimum 7, maximum 30. |
| response_format | string | — | — |
| timezone | string | — | IANA timezone used only for display, e.g. America/New_York. |
| Name | Type | Req | Description |
|---|---|---|---|
| generated_at | string | yes | — |
| kind | string | yes | — |
No examples provided.
whoop_data_inventory WHOOP Data Inventory ~47
Inventory supported WHOOP data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call WHOOP APIs or expose user data.
| Name | Type | Req | Description |
|---|---|---|---|
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| api_boundary | — | — | — |
| auth | — | — | — |
| categories | array | yes | — |
| data_access_model | string | yes | — |
| first_tools | array | yes | — |
| generated_at | string | yes | — |
| kind | string | yes | — |
| links | object | yes | — |
| mcp_name | string | yes | — |
| notes | array | yes | — |
| privacy_modes | array | yes | — |
| recommended_agent_flow | array | yes | — |
| scopes | array | yes | — |
| source | string | yes | — |
| totals | object | yes | — |
| unofficial | boolean | yes | — |
No examples provided.
whoop_demo WHOOP Demo ~54
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.
| Name | Type | Req | Description |
|---|---|---|---|
| response_format | string | — | — |
No output schema declared.
No examples provided.
whoop_exchange_code Exchange WHOOP OAuth Code ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | OAuth authorization code, or a full redirect URL containing ?code=... |
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| expires_at | number | — | — |
| note | string | yes | — |
| ok | boolean | yes | — |
| scope | string | — | — |
| token_path | string | yes | — |
No examples provided.
whoop_get_auth_url Get WHOOP OAuth URL ~84
Generate a WHOOP OAuth authorization URL. This does not read or modify WHOOP data. Use this first when no local token exists.
| Name | Type | Req | Description |
|---|---|---|---|
| response_format | string | — | — |
| scopes | array | — | Optional scope override. Defaults to all read-only WHOOP scopes used by this server. |
| state | string | — | Optional OAuth state value generated by the caller. |
| Name | Type | Req | Description |
|---|---|---|---|
| auth_url | string | yes | — |
| next_step | string | yes | — |
| redirect_uri | string | yes | — |
| scopes | array | yes | — |
No examples provided.
whoop_get_body_measurements Get WHOOP Body Measurements ~88
Get the authenticated user's WHOOP body measurements (height, weight, max heart rate). Requires read:body_measurement scope. Not medical advice.
| Name | Type | Req | Description |
|---|---|---|---|
| privacy_mode | string | — | Optional per-call payload privacy override. Defaults to WHOOP_PRIVACY_MODE or structured. raw returns full WHOOP API payloads, not raw device sensor streams. |
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| endpoint | string | yes | — |
| privacy_mode | string | yes | — |
No examples provided.
whoop_get_cycle WHOOP Cycle ~82
Get one WHOOP cycle by numeric cycle id. Requires read:cycles scope.
| Name | Type | Req | Description |
|---|---|---|---|
| id | — | yes | WHOOP resource id. |
| privacy_mode | string | — | Optional per-call payload privacy override. Defaults to WHOOP_PRIVACY_MODE or structured. raw returns full WHOOP API payloads, not raw device sensor streams. |
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| endpoint | string | yes | — |
| privacy_mode | string | yes | — |
No examples provided.
whoop_get_cycle_recovery WHOOP Cycle Recovery ~89
Get the recovery associated with a WHOOP cycle. Requires read:recovery scope. Not medical advice.
| Name | Type | Req | Description |
|---|---|---|---|
| id | — | yes | WHOOP resource id. |
| privacy_mode | string | — | Optional per-call payload privacy override. Defaults to WHOOP_PRIVACY_MODE or structured. raw returns full WHOOP API payloads, not raw device sensor streams. |
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| endpoint | string | yes | — |
| privacy_mode | string | yes | — |
No examples provided.
whoop_get_cycle_sleep WHOOP Cycle Sleep ~87
Get the sleep associated with a WHOOP cycle. Requires read:sleep scope. Not medical advice.
| Name | Type | Req | Description |
|---|---|---|---|
| id | — | yes | WHOOP resource id. |
| privacy_mode | string | — | Optional per-call payload privacy override. Defaults to WHOOP_PRIVACY_MODE or structured. raw returns full WHOOP API payloads, not raw device sensor streams. |
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| endpoint | string | yes | — |
| privacy_mode | string | yes | — |
No examples provided.
whoop_get_profile Get WHOOP Profile ~72
Get the authenticated user's basic WHOOP profile. Requires read:profile scope.
| Name | Type | Req | Description |
|---|---|---|---|
| privacy_mode | string | — | Optional per-call payload privacy override. Defaults to WHOOP_PRIVACY_MODE or structured. raw returns full WHOOP API payloads, not raw device sensor streams. |
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| endpoint | string | yes | — |
| privacy_mode | string | yes | — |
No examples provided.
whoop_get_sleep WHOOP Sleep ~85
Get one WHOOP sleep activity by UUID. Requires read:sleep scope. Not medical advice.
| Name | Type | Req | Description |
|---|---|---|---|
| id | — | yes | WHOOP resource id. |
| privacy_mode | string | — | Optional per-call payload privacy override. Defaults to WHOOP_PRIVACY_MODE or structured. raw returns full WHOOP API payloads, not raw device sensor streams. |
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| endpoint | string | yes | — |
| privacy_mode | string | yes | — |
No examples provided.
whoop_get_workout WHOOP Workout ~82
Get one WHOOP workout by UUID. Requires read:workout scope.
| Name | Type | Req | Description |
|---|---|---|---|
| id | — | yes | WHOOP resource id. |
| privacy_mode | string | — | Optional per-call payload privacy override. Defaults to WHOOP_PRIVACY_MODE or structured. raw returns full WHOOP API payloads, not raw device sensor streams. |
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| data | — | yes | — |
| endpoint | string | yes | — |
| privacy_mode | string | yes | — |
No examples provided.
whoop_list_cycles WHOOP Cycles ~213
List WHOOP physiological cycles. Supports start/end filters and WHOOP pagination. Requires read:cycles scope.
| Name | Type | Req | Description |
|---|---|---|---|
| all_pages | boolean | — | Fetch multiple pages up to max_pages. |
| end | string | — | ISO 8601 date-time with timezone, e.g. 2026-04-30T00:00:00Z |
| limit | integer | — | WHOOP page size. WHOOP allows a maximum of 25. |
| max_pages | integer | — | Maximum pages to fetch when all_pages is true. |
| next_token | string | — | WHOOP pagination token returned by a previous call. |
| privacy_mode | string | — | Optional per-call payload privacy override. Defaults to WHOOP_PRIVACY_MODE or structured. raw returns full WHOOP API payloads, not raw device sensor streams. |
| response_format | string | — | — |
| start | string | — | ISO 8601 date-time with timezone, e.g. 2026-04-30T00:00:00Z |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | — |
| endpoint | string | yes | — |
| has_more | boolean | yes | — |
| next_token | string | — | — |
| pages_fetched | integer | yes | — |
| privacy_mode | string | yes | — |
| records | array | yes | — |
No examples provided.
whoop_list_recoveries WHOOP Recoveries ~237
List WHOOP recoveries sorted by related sleep start time descending. Returns recovery score, HRV, RHR, SpO2 and skin temperature when scored. Requires read:recovery scope. Not medical advice.
| Name | Type | Req | Description |
|---|---|---|---|
| all_pages | boolean | — | Fetch multiple pages up to max_pages. |
| end | string | — | ISO 8601 date-time with timezone, e.g. 2026-04-30T00:00:00Z |
| limit | integer | — | WHOOP page size. WHOOP allows a maximum of 25. |
| max_pages | integer | — | Maximum pages to fetch when all_pages is true. |
| next_token | string | — | WHOOP pagination token returned by a previous call. |
| privacy_mode | string | — | Optional per-call payload privacy override. Defaults to WHOOP_PRIVACY_MODE or structured. raw returns full WHOOP API payloads, not raw device sensor streams. |
| response_format | string | — | — |
| start | string | — | ISO 8601 date-time with timezone, e.g. 2026-04-30T00:00:00Z |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | — |
| endpoint | string | yes | — |
| has_more | boolean | yes | — |
| next_token | string | — | — |
| pages_fetched | integer | yes | — |
| privacy_mode | string | yes | — |
| records | array | yes | — |
No examples provided.
whoop_list_sleeps WHOOP Sleeps ~231
List WHOOP sleep activities. Returns sleep stages, performance, consistency and efficiency when scored. Supports start/end filters and WHOOP pagination. Requires read:sleep scope. Not medical advice.
| Name | Type | Req | Description |
|---|---|---|---|
| all_pages | boolean | — | Fetch multiple pages up to max_pages. |
| end | string | — | ISO 8601 date-time with timezone, e.g. 2026-04-30T00:00:00Z |
| limit | integer | — | WHOOP page size. WHOOP allows a maximum of 25. |
| max_pages | integer | — | Maximum pages to fetch when all_pages is true. |
| next_token | string | — | WHOOP pagination token returned by a previous call. |
| privacy_mode | string | — | Optional per-call payload privacy override. Defaults to WHOOP_PRIVACY_MODE or structured. raw returns full WHOOP API payloads, not raw device sensor streams. |
| response_format | string | — | — |
| start | string | — | ISO 8601 date-time with timezone, e.g. 2026-04-30T00:00:00Z |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | — |
| endpoint | string | yes | — |
| has_more | boolean | yes | — |
| next_token | string | — | — |
| pages_fetched | integer | yes | — |
| privacy_mode | string | yes | — |
| records | array | yes | — |
No examples provided.
whoop_list_workouts WHOOP Workouts ~214
List WHOOP workouts. Supports start/end filters and WHOOP pagination. Requires read:workout scope.
| Name | Type | Req | Description |
|---|---|---|---|
| all_pages | boolean | — | Fetch multiple pages up to max_pages. |
| end | string | — | ISO 8601 date-time with timezone, e.g. 2026-04-30T00:00:00Z |
| limit | integer | — | WHOOP page size. WHOOP allows a maximum of 25. |
| max_pages | integer | — | Maximum pages to fetch when all_pages is true. |
| next_token | string | — | WHOOP pagination token returned by a previous call. |
| privacy_mode | string | — | Optional per-call payload privacy override. Defaults to WHOOP_PRIVACY_MODE or structured. raw returns full WHOOP API payloads, not raw device sensor streams. |
| response_format | string | — | — |
| start | string | — | ISO 8601 date-time with timezone, e.g. 2026-04-30T00:00:00Z |
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | yes | — |
| endpoint | string | yes | — |
| has_more | boolean | yes | — |
| next_token | string | — | — |
| pages_fetched | integer | yes | — |
| privacy_mode | string | yes | — |
| records | array | yes | — |
No examples provided.
whoop_onboarding WHOOP Onboarding (shared wellness profile) ~154
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 {connector}_onboarding tools to cover their respective domains, or rely on this one since all connectors share the same questions.
| Name | Type | Req | Description |
|---|---|---|---|
| locale | string | — | Onboarding locale. Defaults to 'en'. Use 'pt-BR' for Portuguese (Brazil). |
| response_format | string | — | — |
No output schema declared.
No examples provided.
whoop_privacy_audit WHOOP Privacy Audit ~42
Return the local privacy, cache, token-path, env-presence and redaction posture without revealing secret values.
| Name | Type | Req | Description |
|---|---|---|---|
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| cache_enabled | boolean | yes | — |
| cache_path | string | yes | — |
| config_source | string | yes | — |
| local_config_exists | boolean | yes | — |
| local_config_path | string | yes | — |
| local_config_secure_permissions | boolean | — | — |
| notes | array | yes | — |
| privacy_mode_default | string | yes | — |
| project | string | yes | — |
| raw_payloads_opt_in | boolean | yes | — |
| redacted_key_patterns | array | yes | — |
| required_env_present | object | yes | — |
| secret_env_vars | array | yes | — |
| stdout_safe | boolean | yes | — |
| token_path | string | yes | — |
| unofficial | boolean | yes | — |
No examples provided.
whoop_profile_get WHOOP Profile Get (shared wellness profile) ~95
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.
| Name | Type | Req | Description |
|---|---|---|---|
| response_format | string | — | — |
No output schema declared.
No examples provided.
whoop_profile_update WHOOP Profile Update (shared wellness profile) ~203
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 secret-shaped field — writes will be rejected at validation time. Cross-connector — the same profile is read by other Delx Wellness MCPs.
| Name | Type | Req | Description |
|---|---|---|---|
| explicit_user_intent | boolean | — | Must be true. Set this AFTER the user has explicitly confirmed they want to save these changes to the shared wellness profile. |
| patch | object | yes | Partial WellnessProfileDocument patch. Top-level keys may be: profile, goals, devices, training, nutrition, preferences, safety, notes. |
| response_format | string | — | — |
No output schema declared.
No examples provided.
whoop_quickstart WHOOP Quickstart ~63
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?'
| Name | Type | Req | Description |
|---|---|---|---|
| response_format | string | — | — |
No output schema declared.
No examples provided.
whoop_recovery_trend WHOOP Recovery Trend ~206
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 "is my recovery trending up or down?" without paging the raw collection yourself. Read-only; fetches recent WHOOP v2 records, computes statistics, stores nothing. Not medical advice.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | — | Number of days to aggregate into the trend. Minimum 2 (slope needs two points), maximum 30. Defaults to 30. |
| response_format | string | — | — |
| timezone | string | — | IANA timezone reserved for display, e.g. America/New_York. |
| Name | Type | Req | Description |
|---|---|---|---|
| data_quality | — | yes | — |
| diagnostic | object | yes | — |
| generated_at | string | yes | — |
| kind | string | yes | — |
| lookback_days | integer | yes | — |
| metrics | object | yes | — |
No examples provided.
whoop_revoke_access Revoke WHOOP OAuth Access ~63
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.
| Name | Type | Req | Description |
|---|---|---|---|
| response_format | string | — | — |
| Name | Type | Req | Description |
|---|---|---|---|
| local_tokens_cleared | boolean | yes | — |
| note | string | yes | — |
| ok | boolean | yes | — |
| token_path | string | yes | — |
No examples provided.
whoop_sleep_trend WHOOP Sleep Trend ~200
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. Use this to answer "is my sleep improving or degrading?" without paging the raw collection yourself. Read-only; fetches recent WHOOP v2 records, computes statistics, stores nothing. Not medical advice.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | — | Number of days to aggregate into the trend. Minimum 2 (slope needs two points), maximum 30. Defaults to 30. |
| response_format | string | — | — |
| timezone | string | — | IANA timezone reserved for display, e.g. America/New_York. |
| Name | Type | Req | Description |
|---|---|---|---|
| data_quality | — | yes | — |
| diagnostic | object | yes | — |
| generated_at | string | yes | — |
| kind | string | yes | — |
| lookback_days | integer | yes | — |
| metrics | object | yes | — |
No examples provided.
whoop_weekly_summary WHOOP Weekly Summary ~128
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.
| Name | Type | Req | Description |
|---|---|---|---|
| compare_days | integer | — | Prior comparison window in days. Use 0 to disable comparison. |
| days | integer | — | Recent analysis window in days. |
| response_format | string | — | — |
| timezone | string | — | IANA timezone used only for display, e.g. America/New_York. |
| Name | Type | Req | Description |
|---|---|---|---|
| generated_at | string | yes | — |
| kind | string | yes | — |
No examples provided.
whoop_wellness_context WHOOP Wellness Context ~111
Normalize WHOOP recovery, sleep, strain and recent workout load into the shared wellness_context shape for exercise recommendation engines and Telegram agents.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | — | Lookback window used to normalize WHOOP recovery, sleep and strain context. |
| injury_flags | array | — | — |
| notes | string | — | — |
| response_format | string | — | — |
| soreness | array | — | — |
| timezone | string | — | IANA timezone used only for display, e.g. America/New_York. |
| Name | Type | Req | Description |
|---|---|---|---|
| context_contract_version | string | yes | — |
| context_type | string | yes | — |
| data_quality | — | — | — |
| generated_at | string | yes | — |
| injury_flags | array | yes | — |
| notes | array | yes | — |
| recent_training_load | string | yes | — |
| recommended_handoff | object | yes | — |
| recovery_score | number | — | — |
| sleep_score | number | — | — |
| soreness | array | yes | — |
| source | string | yes | — |
| strain_score | number | — | — |
| telegram_summary | string | — | — |
No examples provided.