Whoop MCP Unofficial MCP Server
by davidmosiahio.github.davidmosiah/whoop-mcpv0.5.3
Local-first access to WHOOP recovery, HRV, sleep, strain and performance data, with tokens stored locally.
context tax
queued
security
queued
cold start
queued
freshness
Active2d ago
Install Whoop MCP Unofficial MCP server
Install in Claude Code
claude mcp add whoop-mcp-unofficial -e WHOOP_CLIENT_SECRET='<whoop-client-secret>' -- npx -y whoop-mcp-unofficialInstall in Cursor
{
"mcpServers": {
"whoop-mcp-unofficial": {
"command": "npx",
"args": [
"-y",
"whoop-mcp-unofficial"
],
"env": {
"WHOOP_CLIENT_SECRET": "<whoop-client-secret>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"whoop-mcp-unofficial": {
"command": "npx",
"args": [
"-y",
"whoop-mcp-unofficial"
],
"env": {
"WHOOP_CLIENT_SECRET": "<whoop-client-secret>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"whoop-mcp-unofficial": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"whoop-mcp-unofficial"
],
"env": {
"WHOOP_CLIENT_SECRET": "<whoop-client-secret>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"whoop-mcp-unofficial": {
"command": "npx",
"args": [
"-y",
"whoop-mcp-unofficial"
],
"env": {
"WHOOP_CLIENT_SECRET": "<whoop-client-secret>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| WHOOP_CLIENT_ID | — | — | WHOOP OAuth client ID. Optional when configured with whoop-mcp-server setup. |
| WHOOP_CLIENT_SECRET | — | yes | WHOOP OAuth client secret. Prefer whoop-mcp-server setup so this secret is stored in ~/.whoop-mcp/config.json instead of MCP client config. |
| WHOOP_REDIRECT_URI | — | — | Redirect URI configured in the WHOOP Developer Dashboard. Optional when configured with whoop-mcp-server setup. |
| WHOOP_TOKEN_PATH | — | — | Optional local path for OAuth tokens. Defaults to ~/.whoop-mcp/tokens.json. |
| WHOOP_PRIVACY_MODE | — | — | Optional payload mode: summary, structured, or raw. Defaults to structured. raw means full WHOOP API payloads, not raw device sensor streams. |
| WHOOP_CACHE | — | — | Optional SQLite cache toggle. Set to true or sqlite to enable. |
| WHOOP_CACHE_PATH | — | — | Optional local SQLite cache path. Defaults to ~/.whoop-mcp/cache.sqlite. |
| WHOOP_NO_CACHE | — | — | 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. |
Freshness
Active — last maintenance signal 2d ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-10-08 · 2d ago · GitHub
Latest release
2026-10-03 · 6d ago · GitHub · v0.6.6
Package published
no data · npm/PyPI
Registry entry updated
2026-07-03 · 3mo ago · official registry · v0.5.3
FAQ
›How do I install the Whoop MCP Unofficial MCP server in Claude Code?
Run: claude mcp add whoop-mcp-unofficial -e WHOOP_CLIENT_SECRET='<whoop-client-secret>' -- npx -y whoop-mcp-unofficial. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does Whoop MCP Unofficial require an API key?
Yes. It expects WHOOP_CLIENT_SECRET, of which 1 is a secret.
›Can I use Whoop MCP Unofficial as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is Whoop MCP Unofficial in the official MCP registry?
Yes, as io.github.davidmosiah/whoop-mcp.