Skip to main content
Glama
cbellbell-spin

Whoop MCP Server

Whoop MCP Server

MCP server that exposes your Whoop fitness data (recovery, sleep, strain, workouts) to Claude for use as a daily training coach.

Prerequisites

  • Python 3.10+

  • A Whoop Developer account with a registered application

  • Your Whoop app's Client ID and Client Secret

Related MCP server: whoop-mcp

Whoop Developer Dashboard Setup

  1. Go to developer.whoop.com and sign in

  2. Create a new application

  3. Set the Redirect URI to: http://localhost:8080/callback

  4. Enable these scopes: read:recovery, read:cycles, read:sleep, read:profile, read:body_measurement

    • Note: read:workout and offline may not be available on all developer apps. The server handles missing scopes gracefully.

  5. Note your Client ID and Client Secret

Installation

cd whoop-mcp
pip install -r requirements.txt

Authorization (One-Time Setup)

Export your app credentials and run the setup script:

export WHOOP_CLIENT_ID="your-client-id"
export WHOOP_CLIENT_SECRET="your-client-secret"
python scripts/setup_auth.py

This opens a browser to Whoop's authorization page. After you approve, tokens are encrypted and stored at ~/.whoop_mcp/. If the offline scope was granted, tokens refresh automatically. Otherwise, re-run this script when the token expires.

Claude Desktop / Cowork MCP Config

Add this to your Claude MCP configuration:

{
  "mcpServers": {
    "whoop": {
      "command": "python",
      "args": ["/absolute/path/to/whoop-mcp/src/whoop_server.py"],
      "env": {
        "WHOOP_CLIENT_ID": "your-client-id",
        "WHOOP_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Replace /absolute/path/to/whoop-mcp with the actual path on your machine.

Available Tools

Tool

Description

whoop_check_auth

Verify tokens are valid and not expired

whoop_get_latest_recovery

Most recent recovery score, HRV, resting HR, SpO2

whoop_get_recovery_range

Recovery data for a date range

whoop_get_latest_sleep

Last sleep session with stage breakdown

whoop_get_sleep_range

Sleep data for a date range

whoop_get_latest_strain

Current cycle strain, avg/max HR, kilojoules

whoop_get_strain_range

Strain over past N days with average

whoop_get_workouts

Workouts with sport ID, strain, HR zones

whoop_get_profile

User profile and body measurements

whoop_get_training_summary

Aggregated coaching snapshot (start here)

Example Prompts

Once connected, you can ask Claude things like:

  • "What was my recovery yesterday?"

  • "How much strain did I accumulate last week?"

  • "Am I trending toward overtraining?"

  • "How has my HRV changed over the past two weeks?"

  • "What were my sleep stages last night?"

  • "Compare my strain to my recovery over the past 7 days."

  • "Should I do a hard workout today?"

Training Coach Workflow

Start each session by calling whoop_get_training_summary for an overview of recovery status, recent strain load, sleep quality, and a training readiness assessment.

Token Storage

Tokens are stored encrypted at ~/.whoop_mcp/:

  • .encryption_key — Fernet encryption key (chmod 600)

  • tokens.enc — Encrypted OAuth tokens (chmod 600)

  • Directory permissions: chmod 700

If token refresh fails, re-run python scripts/setup_auth.py.

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/cbellbell-spin/whoop-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server