Atlas / MCP servers / yuridivonis / whoop-mcp-server

whoop-mcp-serverCAUTION

mcp/yuridivonis/whoop-mcp-server

Your WHOOP recovery, sleep, strain and workouts in Claude, ChatGPT or other MCP apps. Self-hosted.

Verdict
CAUTION
Grade
B
Trust score
89 /100
Exposed tools
5 5r · 0w · 0d
Transport
stdio · streamable-http
License
MIT
Stars
14
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://github.com/yuridivonis/whoop-mcp-server/actions/workflows/ci.yml) [](https://scorecard.dev/viewer/?uri=github.com/yuridivonis/whoop-mcp-server) [](https://www.bestpractices.dev/projects/14971) [](https://github.com/yuridivonis/whoop-mcp-server/releases/latest) [](LICENSE)

Your WHOOP data in whichever AI you use, or, soon, in your own code. Self-hosted, private, and open source.

Ask Claude, ChatGPT or another MCP app "How did I sleep this week?" and get the answer from your own recovery, sleep, strain and workouts. You run the server yourself: it fetches your data from WHOOP when you ask and keeps no copy, and only the apps you've allowed can reach it.

This is an independent open-source project. It uses the WHOOP API to access data from WHOOP products, and is not affiliated with, endorsed by, or sponsored by WHOOP.

Two ways in

  • Talk to your data. Deploy the server, connect it to your AI, and ask. Start with Setup, then Add to your AI, which also lists the apps tested so far.
  • Build with it. The WHOOP client inside this server (typed, tested, and careful with WHOOP's single-use refresh tokens) is being split out as a library for your own code. It isn't published yet: watch this repository's releases to hear when it is.

Built on the Whoop Developer API v2, and the [Model Context Protocol](https://modelcontextp

Read from source at commit 35f5e64f1579OBSERVED · 2026-10-10
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code (oci)
claude mcp add whoop-mcp-server:1.5.1 --env WHOOP_CLIENT_SECRET=${WHOOP_CLIENT_SECRET} --env MCP_AUTH_PASSWORD=${MCP_AUTH_PASSWORD} --env ENCRYPTION_SECRET=${ENCRYPTION_SECRET} -- docker run -i --rm ghcr.io/yuridivonis/whoop-mcp-server:1.5.1:None
03

Exposed tools (5)

5 read · 0 write · 0 destructive.

ToolRiskDescription
get_auth_urlreadReturns a one-time link that connects the user
get_recovery_trendsreadReturns daily recovery for the last
get_sleep_analysisreadReturns nightly sleep for the last
get_strain_historyreadReturns daily strain for the last
get_workoutsreadReturns individual workouts from the last
04

Trust audit

CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (1 observation(s))
Network
declared (1 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
found

Findings (10)

MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
src/index.ts:57
process.stdout.write(`Whoop MCP server running on http://0.0.0.0:${config.port}\n`);
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
test/config.test.ts:5
const PASSWORD = 'a-long-enough-password';
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
test/compatibility.test.ts:43
{ name: 'VS Code, on 127.0.0.1:33418 with no path', redirectUri: 'http://127.0.0.1:33418', destination: 'an app on this computer', resource: mcp, tokenAuth: 'none' },
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
test/oauth.test.ts:727
'http://127.0.0.1:33418/callback',
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
test/properties.test.ts:101
for (const uri of [`https://${good}/cb`, `https://${good.toUpperCase()}/cb`, `http://127.0.0.1:${port}/cb`, `http://localhost:${port}`, 'cursor://anysphere.cursor-mcp/oauth/callback']) {
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, better-sqlite3, express, express-rate-limit, @types/better-sqlite3, @types/express, @types/node, fast-check
Why it matters. 10 dependency range(s) float
Fix. pin exact versions or ship a lockfile
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
CHANGELOG.md:150
- **Sign-in page:** a clearer design. The heading names where your WHOOP data goes, what the app can read shows at a glance, the password field says it's the server password and not your WHOOP passwor
Why it matters. asks the agent to read credentials
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
README.md:153
| 1. Use of WHOOP APIs, *Permitted Access* | One set of WHOOP credentials per application | Give each deployment its own Whoop developer app. |
Why it matters. asks the agent to read credentials
INFOPrompt injection · prompt.credential_read · CWE-94, CWE-1427
README.md:199
cat > .env << EOF
Why it matters. asks the agent to read credentials
INFOPrompt injection · prompt.fetch_and_trust · CWE-94, CWE-1427
docs/add-to-your-ai.md:107
**Not yet tested live.** From [VS Code's docs](https://code.visualstudio.com/docs/agent-customization/mcp-servers), run **MCP: Add Server** from the Command Palette, or add this to `.vscode/mcp.json`
Why it matters. remote text is to be obeyed as instructions

Gates applied: no_behavioural_pass.

Audited 2026-10-10 · audit v0.4.1 · source sha 35f5e64f1579full audit observations/trust-audit/mcp-server/yuridivonis__whoop-mcp-server.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-1035f5e64f1579CAUTIONB89first audit
06

Questions

What is the whoop-mcp-server MCP server?

Your WHOOP recovery, sleep, strain and workouts in Claude, ChatGPT or other MCP apps. Self-hosted.

What tools does whoop-mcp-server expose?

5 in total: 5 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is whoop-mcp-server safe to connect to an agent?

With care. The audit graded it B (89/100) and found 10 things worth knowing before you trust this server, listed below with the exact line each was found on.

What credentials does whoop-mcp-server need?

It reads ENCRYPTION_SECRET, MCP_AUTH_PASSWORD and WHOOP_CLIENT_SECRET from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does whoop-mcp-server run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @yuridivonis/whoop-client at 0.0.0.

How current is this page?

The grade is for one exact copy of the source (35f5e64f1579), read on 2026-10-10. The repository is watched and re-audited when it changes.

Advertisement