# io.github.davidmosiah/whoop-mcp (npm · whoop-mcp-unofficial)

Privacy-first, unofficial WHOOP MCP server for AI health, sleep, recovery, and performance agents.

- Trust score: 70/100 (medium)
- Change this week: +19
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `whoop-mcp-unofficial`: 70/100 (this document), [markdown](https://verifymcp.io/servers/davidmosiah-whoop-mcp/whoop-mcp-unofficial.md), [page](https://verifymcp.io/servers/davidmosiah-whoop-mcp/whoop-mcp-unofficial)

## Channel facts

- Registry: `npm`
- Package: `whoop-mcp-unofficial`
- Version: `0.5.3`
- Transport: `stdio`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (129 of 130), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (129 of 130), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 1 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 85/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 3485 tokens (~91/item across 38 items; 30 tools + 8 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 89/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 62% of tool parameters carry a description.
  - Structured output schemas are declared (83% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add davidmosiah-whoop-mcp -- npx -y whoop-mcp-unofficial
```

### Codex

```bash
codex mcp add davidmosiah-whoop-mcp -- npx -y whoop-mcp-unofficial
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "davidmosiah-whoop-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "whoop-mcp-unofficial"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add davidmosiah-whoop-mcp --command npx --arg -y --arg whoop-mcp-unofficial
```

### Hermes

```yaml
mcp_servers:
  davidmosiah-whoop-mcp:
    command: "npx"
    args: ["-y", "whoop-mcp-unofficial"]
```

### Other

```json
{
  "mcpServers": {
    "davidmosiah-whoop-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "whoop-mcp-unofficial"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 70, +4)

- [functional improvement] Stability: unverified → 0.27

### 2026-08-02 (score 66, +41)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Schema quality: unverified → excellent
- [functional] Licence: MIT

### 2026-07-31 (score 25, −8)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 33, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 51)

First indexed and scored.

## MCP tools (30)

### `whoop_data_inventory` (~47 tokens)

WHOOP Data Inventory

Inventory supported WHOOP data domains, auth scope requirements, privacy boundary and recommended first calls. Does not call WHOOP APIs or expose user data.

Input parameters:

- `response_format` (string)

Output parameters:

- `api_boundary`
- `auth`
- `categories` (array)
- `data_access_model` (string)
- `first_tools` (array)
- `generated_at` (string)
- `kind` (string)
- `links` (object)
- `mcp_name` (string)
- `notes` (array)
- `privacy_modes` (array)
- `recommended_agent_flow` (array)
- `scopes` (array)
- `source` (string)
- `totals` (object)
- `unofficial` (boolean)

### `whoop_capabilities` (~49 tokens)

WHOOP MCP Capabilities

Explain supported WHOOP data, unavailable raw sensor streams, privacy modes, recommended agent workflow, and project links. Does not read WHOOP or expose secrets.

Input parameters:

- `response_format` (string)

Output parameters:

- `api_boundary` (object)
- `auth_model` (object)
- `client_aliases` (object)
- `contribution_paths` (array)
- `creator` (object)
- `links` (object)
- `mcp_name` (string)
- `privacy_modes` (array)
- `project` (string)
- `recommended_agent_flow` (array)
- `supported_data` (array)
- `unofficial` (boolean)

### `whoop_agent_manifest` (~51 tokens)

WHOOP Agent Manifest

Machine-readable install, runtime and client guidance for AI agents operating the WHOOP MCP. Does not read WHOOP or expose secrets.

Input parameters:

- `client` (string)
- `response_format` (string)

Output parameters:

- `agent_rules` (array)
- `client` (string)
- `hermes` (object)
- `links` (object)
- `mcp_name` (string)
- `oauth` (object)
- `package` (object)
- `project` (string)
- `recommended_first_calls` (array)
- `resources` (array)
- `standard_tools` (array)
- `troubleshooting` (array)
- `unofficial` (boolean)

### `whoop_quickstart` (~63 tokens)

WHOOP Quickstart

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?'

Input parameters:

- `response_format` (string)

### `whoop_demo` (~54 tokens)

WHOOP Demo

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.

Input parameters:

- `response_format` (string)

### `whoop_profile_get` (~95 tokens)

WHOOP Profile Get (shared wellness profile)

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.

Input parameters:

- `response_format` (string)

### `whoop_profile_update` (~203 tokens)

WHOOP Profile Update (shared wellness profile)

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.

Input parameters:

- `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, required): Partial WellnessProfileDocument patch. Top-level keys may be: profile, goals, devices, training, nutrition, preferences, safety, notes.
- `response_format` (string)

### `whoop_onboarding` (~154 tokens)

WHOOP Onboarding (shared wellness profile)

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.

Input parameters:

- `locale` (string): Onboarding locale. Defaults to 'en'. Use 'pt-BR' for Portuguese (Brazil).
- `response_format` (string)

### `whoop_get_auth_url` (~84 tokens)

Get WHOOP OAuth URL

Generate a WHOOP OAuth authorization URL. This does not read or modify WHOOP data. Use this first when no local token exists.

Input parameters:

- `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.

Output parameters:

- `auth_url` (string)
- `next_step` (string)
- `redirect_uri` (string)
- `scopes` (array)

### `whoop_exchange_code` (~82 tokens)

Exchange WHOOP OAuth Code

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.

Input parameters:

- `code` (string, required): OAuth authorization code, or a full redirect URL containing ?code=...
- `response_format` (string)

Output parameters:

- `expires_at` (number)
- `note` (string)
- `ok` (boolean)
- `scope` (string)
- `token_path` (string)

### `whoop_get_profile` (~72 tokens)

Get WHOOP Profile

Get the authenticated user's basic WHOOP profile. Requires read:profile scope.

Input parameters:

- `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)

Output parameters:

- `data`
- `endpoint` (string)
- `privacy_mode` (string)

### `whoop_get_body_measurements` (~88 tokens)

Get WHOOP Body Measurements

Get the authenticated user's WHOOP body measurements (height, weight, max heart rate). Requires read:body_measurement scope. Not medical advice.

Input parameters:

- `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)

Output parameters:

- `data`
- `endpoint` (string)
- `privacy_mode` (string)

### `whoop_list_cycles` (~213 tokens)

WHOOP Cycles

List WHOOP physiological cycles. Supports start/end filters and WHOOP pagination. Requires read:cycles scope.

Input parameters:

- `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

Output parameters:

- `count` (integer)
- `endpoint` (string)
- `has_more` (boolean)
- `next_token` (string)
- `pages_fetched` (integer)
- `privacy_mode` (string)
- `records` (array)

### `whoop_list_recoveries` (~237 tokens)

WHOOP Recoveries

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.

Input parameters:

- `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

Output parameters:

- `count` (integer)
- `endpoint` (string)
- `has_more` (boolean)
- `next_token` (string)
- `pages_fetched` (integer)
- `privacy_mode` (string)
- `records` (array)

### `whoop_list_sleeps` (~231 tokens)

WHOOP Sleeps

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.

Input parameters:

- `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

Output parameters:

- `count` (integer)
- `endpoint` (string)
- `has_more` (boolean)
- `next_token` (string)
- `pages_fetched` (integer)
- `privacy_mode` (string)
- `records` (array)

### `whoop_list_workouts` (~214 tokens)

WHOOP Workouts

List WHOOP workouts. Supports start/end filters and WHOOP pagination. Requires read:workout scope.

Input parameters:

- `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

Output parameters:

- `count` (integer)
- `endpoint` (string)
- `has_more` (boolean)
- `next_token` (string)
- `pages_fetched` (integer)
- `privacy_mode` (string)
- `records` (array)

### `whoop_connection_status` (~55 tokens)

WHOOP Connection Status

Check whether local WHOOP env vars, token file, Node version, privacy mode and cache are ready. Does not call WHOOP or expose secrets.

Input parameters:

- `client` (string)
- `response_format` (string)

Output parameters:

- `automatic_auth_supported` (boolean)
- `cache` (object)
- `client` (string)
- `client_checks` (object)
- `config` (object)
- `missing_env` (array)
- `next_steps` (array)
- `node` (object)
- `ok` (boolean)
- `privacy_mode` (string)
- `ready_for_whoop_api` (boolean)
- `redirect_uri` (string)
- `required_env` (object)
- `token` (object)

### `whoop_cache_status` (~38 tokens)

WHOOP Cache Status

Show optional local SQLite cache status. Enable with WHOOP_CACHE=sqlite or WHOOP_CACHE=true.

Input parameters:

- `response_format` (string)

Output parameters:

- `enabled` (boolean)
- `entries` (integer)
- `http_cache` (object)
- `newest_cached_at` (string)
- `path` (string)

### `whoop_privacy_audit` (~42 tokens)

WHOOP Privacy Audit

Return the local privacy, cache, token-path, env-presence and redaction posture without revealing secret values.

Input parameters:

- `response_format` (string)

Output parameters:

- `cache_enabled` (boolean)
- `cache_path` (string)
- `config_source` (string)
- `local_config_exists` (boolean)
- `local_config_path` (string)
- `local_config_secure_permissions` (boolean)
- `notes` (array)
- `privacy_mode_default` (string)
- `project` (string)
- `raw_payloads_opt_in` (boolean)
- `redacted_key_patterns` (array)
- `required_env_present` (object)
- `secret_env_vars` (array)
- `stdout_safe` (boolean)
- `token_path` (string)
- `unofficial` (boolean)

### `whoop_revoke_access` (~63 tokens)

Revoke WHOOP OAuth Access

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.

Input parameters:

- `response_format` (string)

Output parameters:

- `local_tokens_cleared` (boolean)
- `note` (string)
- `ok` (boolean)
- `token_path` (string)

### `whoop_daily_summary` (~128 tokens)

WHOOP Daily Summary

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.

Input parameters:

- `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.

Output parameters:

- `generated_at` (string)
- `kind` (string)

### `whoop_weekly_summary` (~128 tokens)

WHOOP Weekly Summary

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.

Input parameters:

- `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.

Output parameters:

- `generated_at` (string)
- `kind` (string)

### `whoop_recovery_trend` (~206 tokens)

WHOOP Recovery Trend

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.

Input parameters:

- `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.

Output parameters:

- `data_quality`
- `diagnostic` (object)
- `generated_at` (string)
- `kind` (string)
- `lookback_days` (integer)
- `metrics` (object)

### `whoop_sleep_trend` (~200 tokens)

WHOOP Sleep Trend

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.

Input parameters:

- `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.

Output parameters:

- `data_quality`
- `diagnostic` (object)
- `generated_at` (string)
- `kind` (string)
- `lookback_days` (integer)
- `metrics` (object)

### `whoop_wellness_context` (~111 tokens)

WHOOP Wellness Context

Normalize WHOOP recovery, sleep, strain and recent workout load into the shared wellness_context shape for exercise recommendation engines and Telegram agents.

Input parameters:

- `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.

Output parameters:

- `context_contract_version` (string)
- `context_type` (string)
- `data_quality`
- `generated_at` (string)
- `injury_flags` (array)
- `notes` (array)
- `recent_training_load` (string)
- `recommended_handoff` (object)
- `recovery_score` (number)
- `sleep_score` (number)
- `soreness` (array)
- `source` (string)
- `strain_score` (number)
- `telegram_summary` (string)

### `whoop_get_cycle` (~82 tokens)

WHOOP Cycle

Get one WHOOP cycle by numeric cycle id. Requires read:cycles scope.

Input parameters:

- `id` (required): 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)

Output parameters:

- `data`
- `endpoint` (string)
- `privacy_mode` (string)

### `whoop_get_sleep` (~85 tokens)

WHOOP Sleep

Get one WHOOP sleep activity by UUID. Requires read:sleep scope. Not medical advice.

Input parameters:

- `id` (required): 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)

Output parameters:

- `data`
- `endpoint` (string)
- `privacy_mode` (string)

### `whoop_get_workout` (~82 tokens)

WHOOP Workout

Get one WHOOP workout by UUID. Requires read:workout scope.

Input parameters:

- `id` (required): 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)

Output parameters:

- `data`
- `endpoint` (string)
- `privacy_mode` (string)

### `whoop_get_cycle_sleep` (~87 tokens)

WHOOP Cycle Sleep

Get the sleep associated with a WHOOP cycle. Requires read:sleep scope. Not medical advice.

Input parameters:

- `id` (required): 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)

Output parameters:

- `data`
- `endpoint` (string)
- `privacy_mode` (string)

### `whoop_get_cycle_recovery` (~89 tokens)

WHOOP Cycle Recovery

Get the recovery associated with a WHOOP cycle. Requires read:recovery scope. Not medical advice.

Input parameters:

- `id` (required): 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)

Output parameters:

- `data`
- `endpoint` (string)
- `privacy_mode` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/davidmosiah-whoop-mcp/whoop-mcp-unofficial#diagnostics

## Score history

- 2026-08-03: 70
- 2026-08-02: 66
- 2026-08-01: 25
- 2026-07-31: 25
- 2026-07-30: 33
- 2026-07-28: 51
- 2026-07-27: 51

## Links

- npm package: https://www.npmjs.com/package/whoop-mcp-unofficial
- Socket report: https://socket.dev/npm/package/whoop-mcp-unofficial
- Repository: https://github.com/davidmosiah/whoop-mcp
- Website: https://wellness.delx.ai/connectors/whoop
- Changelog RSS feed: https://verifymcp.io/servers/davidmosiah-whoop-mcp/whoop-mcp-unofficial/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/davidmosiah-whoop-mcp/whoop-mcp-unofficial/changelog.json
- HTML version of this page: https://verifymcp.io/servers/davidmosiah-whoop-mcp/whoop-mcp-unofficial
