mcpbeat Sign in

Whoop MCP Server

local only

Whoop MCP runs on your own machine — the client starts it, so there is no endpoint to ping. 30 installs a week from npm. Last commit 16 Sep 2026.

Full read + write access to your Whoop fitness data via the private iOS API. 48 tools.

Installs per day peak 13 · avg 4 · +68% w/w
a month agotoday
30
Installs / week
npm · @briangaoo/whoop-mcp
119
Stars
2 open issues
16 Sep 2026
Last commit
0 releases in 90 days
License
TypeScript

What changed 41

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 9 August 2026. No other catalogue keeps this.

18 Sep the owner changed
17 Sep the owner changed
16 Sep the owner changed
15 Sep the owner changed
14 Sep the owner changed
13 Sep the owner changed
12 Sep the owner changed
11 Sep the owner changed
10 Sep the owner changed
9 Sep the owner changed
and 31 more, back to 9 August 2026

What the code does

We read the source, 7 d ago · rules 3dff92dd89df

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

File ships in the package but is absent from the source [пакет] src/whoop/session_state.ts:1
этот файл ставится пользователю, но в репозитории его нет
Package points at a different repository thebriangao/totem
пакет @briangaoo/whoop-mcp ссылается на briangaoo/whoop-mcp
Runs an external command src/cli/index.ts:470
    const child = spawn(cmd, args, { stdio: "inherit", cwd: ROOT, ...opts });

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.

run in your terminal
claude mcp add whoop-mcp -- npx -y @briangaoo/whoop-mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "whoop-mcp": {
      "args": [
        "-y",
        "@briangaoo/whoop-mcp"
      ],
      "command": "npx"
    }
  }
}
~/.codex/config.toml
[mcp_servers.whoop-mcp]
command = "npx"
args = ["-y", "@briangaoo/whoop-mcp"]
.cursor/mcp.json
{
  "mcpServers": {
    "whoop-mcp": {
      "args": [
        "-y",
        "@briangaoo/whoop-mcp"
      ],
      "command": "npx"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "whoop-mcp": {
      "args": [
        "-y",
        "@briangaoo/whoop-mcp"
      ],
      "command": "npx"
    }
  }
}

This one needs environment variables set before it will start: WHOOP_IOS_BEARER_TOKEN (Whoop Cognito access token. Obtain via `whoop-mcp auth` from the repo, which prompts for your Whoop email + password + SMS MFA code, then writes both tokens to a local .env. Auto-refreshes every ~24h.), WHOOP_COGNITO_REFRESH_TOKEN (Whoop Cognito refresh token (~30 day lifetime). Obtained alongside the bearer token from `whoop-mcp auth`. When this expires, run `whoop-mcp auth` to get a fresh pair.), WHOOP_EMAIL (Your Whoop account email. Used only by `whoop-mcp auth` — the running server reads tokens, not credentials.), WHOOP_USER_ID (Your numeric Whoop user ID. Optional — used by whoop_profile and whoop_leaderboard. Avoids one redundant bootstrap call per session if set.), WHOOP_TIMEZONE (IANA timezone (e.g., America/Los_Angeles) for response timestamps. Optional — if unset, the server auto-detects from your Whoop profile's timezone_offset field (refreshed hourly).). The author declared them in the registry entry; get the values from the project itself.

Alternatives to Whoop MCP

same job, measured the same way
Figma MCP Go
by vkhanhqui

Figma MCP server with full read/write access via plugin — no API token, no rate limits. 73 tools.

679 installs/wk local only
Totem
by thebriangao

Totem — talk to your wearables with AI. Today: full Whoop access (48 tools).

27 installs/wk local only
Totem
by briangaoo

Totem — talk to your wearables with AI. Today: full Whoop access (48 tools).

local only
aNotepad
by anotepad

AI access to your aNotepad online notes: read, search, write, and organize via 22 tools.

answering
Marrow
by skeletonarmy

Read-only MCP access to your own Apple Health data, mirrored from the Marrow iOS app.

162 installs/wk local only
Figma Designer
by a1245582339

Give AI agents full read & write access to Figma — 50+ tools for design automation

local only
Figma MCP Go
by tunglt1810

Figma MCP server with full read/write access via plugin bridge — no API token or rate limits.

194 installs/wk local only
Filamental
by scottnine

Read/write access to your Filamental knowledge graph vault. 17 tools. Local-first, no auth.

65 installs/wk local only

Whoop MCP — questions

Answers built from our own checks of this server.

Why is there no uptime for Whoop MCP?
Whoop MCP runs on your own machine over stdio — there is no network address to reach, so uptime cannot be measured for it by anyone. What can be measured is adoption: the npm package @briangaoo/whoop-mcp was installed 30 times last week.
How do I connect Whoop MCP?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It runs locally, so the command pulls @briangaoo/whoop-mcp straight from npm; nothing to host, nothing to sign up for.
How many people use Whoop MCP?
The npm package @briangaoo/whoop-mcp was installed 30 times in the last week. Week over week that is +68%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Whoop MCP open source?
We cannot say either way: written in TypeScript, 119 stars on GitHub and 2 open issues, but we could not determine the licence, and without one the code is not open source by default.