Whoop MCP Server

AI-powered interface for Whoop fitness data. Access recovery scores, sleep analysis, workout insights, and body metrics through natural language.

Prototype archive: no hosted endpoint is currently available. The examples below document an earlier local experiment and should be verified before reuse. Do not place account credentials in an unreviewed configuration.

Available Tools

Cycle Queries

  • get_cycle_collection(start_date, end_date) - Get cycle data for a specific date range
  • get_latest_cycle() - Get the most recent cycle data

Recovery and Strain

  • get_recovery_data(start_date, end_date) - Get recovery data for a specific date range
  • get_strain_data(start_date, end_date) - Get strain data for a specific date range
  • get_average_strain(days) - Calculate average strain over specified number of days (default: 7)

Profile and Authentication

  • get_profile() - Get user profile information
  • check_auth_status() - Check authentication status with Whoop API
Note: Dates should be provided in ISO format (YYYY-MM-DD).

Getting Started

1. Set Up Whoop Credentials

You'll need your Whoop account email and password to use this server. The server uses email/password authentication with the Whoop API.

2. Connect to Claude Desktop

Update your Claude Desktop configuration file:

{
  "mcpServers": {
    "Whoop": {
      "command": "python",
      "args": ["/path/to/whoop/src/whoop_server.py"],
      "cwd": "/path/to/whoop",
      "env": {
        "WHOOP_EMAIL": "your.email@example.com",
        "WHOOP_PASSWORD": "your_password"
      }
    }
  }
}

Configuration file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json

3. HTTP API Server

The project also includes an HTTP API server that exposes the same functionality over HTTP endpoints. To run it:

./run_whoop_server.sh

Example Queries

Once connected, you can ask Claude questions like:

  • "What's my recovery score for today?"
  • "Show me my strain data for the past week"
  • "What's my average strain over the last 7 days?"
  • "Get my latest cycle data"
  • "Analyze my sleep patterns from the last month"
  • "Compare my recovery scores between this week and last week"

Error Handling

The server provides human-readable error messages for common issues:

  • Invalid date formats
  • API authentication errors
  • Network connectivity problems
  • Missing or invalid credentials

Resources