whoop-tracker-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@whoop-tracker-mcp-serverwhat was my recovery score this morning?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Whoop MCP Server
A lightweight MCP (Model Context Protocol) server for integrating with the Whoop API v2. Built for use with Claude Desktop and other MCP clients.
Features
🔐 OAuth 2.0 authentication with Whoop
🔄 Automatic token refresh
📊 Access to all major Whoop data endpoints:
User profile and body measurements
Sleep, recovery, and cycle data
Workout information
🐳 Docker support for easy deployment
💾 Persistent token storage
Quick Start
Prerequisites
Node.js >= 22.0.0 (for Method 1) OR Docker (for Method 2)
pnpm >= 10.0.0 (for Method 1 only)
Setup for Claude Desktop
Choose one of the two methods below to integrate with Claude Desktop. The MCP server runs as part of Claude Desktop - you don't need to start it separately.
Method 1: Using Node.js
Clone and install:
git clone https://github.com/alacore/whoop-tracker-mcp-server.git cd whoop-tracker-mcp-server pnpm installBuild the server:
pnpm run buildConfigure Claude Desktop - see Claude Desktop Configuration section below
Method 2: Using Docker
Clone the repository:
git clone https://github.com/alacore/whoop-tracker-mcp-server.git cd whoop-tracker-mcp-serverBuild Docker image:
docker build -t whoop-mcp .Configure Claude Desktop - see Claude Desktop Configuration section below
Development Mode (Optional)
For testing the MCP server independently or during development:
Configure environment:
cp .env.example .envEdit
.envwith your Whoop OAuth credentials:WHOOP_CLIENT_ID=your_whoop_client_id WHOOP_CLIENT_SECRET=your_whoop_client_secret WHOOP_REDIRECT_URI=http://localhost:3000/callback WHOOP_SCOPES=offline read:profile read:body_measurement read:cycles read:recovery read:sleep read:workoutRun in development mode:
pnpm run devNote: This runs the server standalone for testing. For actual use with Claude Desktop, follow the configuration instructions below.
Usage
Claude Desktop Configuration
Method 1: Direct Node.js Execution
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"whoop": {
"command": "node",
"args": ["/path/to/whoop-tracker-mcp-server/dist/mcp-standalone.js"],
"env": {
"WHOOP_CLIENT_ID": "your_client_id",
"WHOOP_CLIENT_SECRET": "your_client_secret",
"WHOOP_REDIRECT_URI": "http://localhost:3000/callback",
"WHOOP_SCOPES": "offline read:profile read:body_measurement read:cycles read:recovery read:sleep read:workout"
}
}
}
}Prerequisites:
Node.js >= 22.0.0 installed
Built server (
pnpm run build)Replace
/path/to/whoop-tracker-mcp-serverwith your actual project path
Note: The offline scope in WHOOP_SCOPES is required to receive a refresh token during the OAuth2 flow, enabling automatic token renewal without re-authentication.
Method 2: Docker Container
First, build the Docker image:
# Build the Docker image
docker build -t whoop-mcp .Then add to your Claude Desktop configuration:
{
"mcpServers": {
"whoop": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"WHOOP_CLIENT_ID=your_client_id",
"-e",
"WHOOP_CLIENT_SECRET=your_client_secret",
"-e",
"WHOOP_REDIRECT_URI=http://localhost:3000/callback",
"-e",
"WHOOP_SCOPES=offline read:profile read:body_measurement read:cycles read:recovery read:sleep read:workout",
"-v",
"${HOME}/.whoop-mcp:/home/node/.whoop-mcp",
"whoop-mcp"
]
}
}
}Prerequisites:
Docker installed and running
Built Docker image (
docker build -t whoop-mcp .)
Notes:
The
-vflag mounts a local directory for persistent token storage across container restarts. First create the directory on your host machine (e.g.,mkdir -p ~/.whoop-mcp), then mount it using the-vflag - this is where auth tokens will be storedThe
offlinescope inWHOOP_SCOPESis required to receive a refresh token during the OAuth2 flow, enabling automatic token renewal without re-authentication
Testing Your Setup
To test either configuration:
Restart Claude Desktop after updating the configuration
In Claude, use the Whoop tools:
Start with
whoop_auth_urlto begin authenticationFollow the OAuth flow to authorize
Use other tools like
whoop_get_profileto verify access
Available MCP Tools
Authentication
whoop_auth_url - Generate OAuth authorization URL
whoop_exchange_token - Exchange auth code for access token
whoop_refresh_token - Refresh expired access token
Data Access
whoop_get_profile - Get user profile
whoop_get_body_measurement - Get body measurements
whoop_get_cycles - Get physiological cycles
whoop_get_recovery - Get recovery data
whoop_get_sleep - Get sleep data
whoop_get_workouts - Get workout data
Authentication Flow
Use
whoop_auth_urlto get authorization URLOpen URL in browser and authorize
Copy the
codeparameter from callback URLUse
whoop_exchange_tokenwith the codeTokens are automatically saved and refreshed
Development
# Development with hot reload
pnpm run dev
# Build for production
pnpm run build
# Run built version
pnpm startLicense
MIT
This server cannot be installed
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/alacore/whoop-tracker-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server