
Whoop MCP Server
by briangaooio.github.briangaoo/whoop-mcpv1.3.0
Full read + write access to your Whoop fitness data via the private iOS API. 48 tools.
context tax
queued
security
queued
cold start
queued
freshness
Active24d ago
Install Whoop MCP server
Install in Claude Code
claude mcp add whoop-briangaoo -e WHOOP_IOS_BEARER_TOKEN='<whoop-ios-bearer-token>' -e WHOOP_COGNITO_REFRESH_TOKEN='<whoop-cognito-refresh-token>' -e WHOOP_EMAIL='<whoop-email>' -- npx -y @briangaoo/whoop-mcpInstall in Cursor
{
"mcpServers": {
"whoop-briangaoo": {
"command": "npx",
"args": [
"-y",
"@briangaoo/whoop-mcp"
],
"env": {
"WHOOP_IOS_BEARER_TOKEN": "<whoop-ios-bearer-token>",
"WHOOP_COGNITO_REFRESH_TOKEN": "<whoop-cognito-refresh-token>",
"WHOOP_EMAIL": "<whoop-email>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"whoop-briangaoo": {
"command": "npx",
"args": [
"-y",
"@briangaoo/whoop-mcp"
],
"env": {
"WHOOP_IOS_BEARER_TOKEN": "<whoop-ios-bearer-token>",
"WHOOP_COGNITO_REFRESH_TOKEN": "<whoop-cognito-refresh-token>",
"WHOOP_EMAIL": "<whoop-email>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"whoop-briangaoo": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@briangaoo/whoop-mcp"
],
"env": {
"WHOOP_IOS_BEARER_TOKEN": "<whoop-ios-bearer-token>",
"WHOOP_COGNITO_REFRESH_TOKEN": "<whoop-cognito-refresh-token>",
"WHOOP_EMAIL": "<whoop-email>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"whoop-briangaoo": {
"command": "npx",
"args": [
"-y",
"@briangaoo/whoop-mcp"
],
"env": {
"WHOOP_IOS_BEARER_TOKEN": "<whoop-ios-bearer-token>",
"WHOOP_COGNITO_REFRESH_TOKEN": "<whoop-cognito-refresh-token>",
"WHOOP_EMAIL": "<whoop-email>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| WHOOP_IOS_BEARER_TOKEN | yes | yes | 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 | yes | yes | 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 | yes | — | 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). |
Freshness
Active — last maintenance signal 24d ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-09-16 · 24d ago · GitHub
Latest release
2026-09-08 · 31d ago · GitHub · v1.5.1
Package published
no data · npm/PyPI
Registry entry updated
2026-06-01 · 4mo ago · official registry · v1.3.0
FAQ
›How do I install the Whoop MCP server in Claude Code?
Run: claude mcp add whoop-briangaoo -e WHOOP_IOS_BEARER_TOKEN='<whoop-ios-bearer-token>' -e WHOOP_COGNITO_REFRESH_TOKEN='<whoop-cognito-refresh-token>' -e WHOOP_EMAIL='<whoop-email>' -- npx -y @briangaoo/whoop-mcp. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does Whoop require an API key?
Yes. It expects WHOOP_IOS_BEARER_TOKEN, WHOOP_COGNITO_REFRESH_TOKEN, WHOOP_EMAIL, of which 2 are secrets.
›Can I use Whoop as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is Whoop in the official MCP registry?
Yes, as io.github.briangaoo/whoop-mcp.