whoop-mcp

whoop-mcp

Provides Claude Desktop with access to WHOOP fitness data including recovery, sleep, strain, and workouts.

Category
Visit Server

README

WHOOP MCP Server

An MCP (Model Context Protocol) server that provides Claude Desktop with access to your WHOOP fitness tracker data, including recovery scores, sleep metrics, and strain data.

Features

  • Recovery Data: Get your daily recovery score, HRV, resting heart rate, and SpO2
  • Sleep Analysis: View sleep duration, stages (light/deep/REM), efficiency, and performance
  • Recovery Trends: Track your recovery over the past 7-14 days
  • Strain Metrics: Monitor daily strain, calories, and heart rate data
  • Workout History: View recent workouts with sport type, strain, calories, and HR zones

Prerequisites

  • Python 3.11+
  • uv package manager
  • A WHOOP membership and device
  • WHOOP Developer account (free)

Setup

1. Clone and Install

git clone https://github.com/JasonBates/whoop-mcp-server.git
cd whoop-mcp-server
uv sync

2. Create WHOOP Developer App

  1. Go to developer.whoop.com
  2. Sign in with your WHOOP account
  3. Create a new application:
    • App Name: "WHOOP MCP" (or your preference)
    • Redirect URI: http://localhost:8080/callback
  4. Note your Client ID and Client Secret

3. Configure Credentials

Create a .env file from the example:

cp .env.example .env

Edit .env and add your credentials:

WHOOP_CLIENT_ID=your_client_id_here
WHOOP_CLIENT_SECRET=your_client_secret_here

4. Authorize with WHOOP

Run the token acquisition script:

uv run python scripts/get_tokens.py

This will:

  • Open your browser to log in to WHOOP
  • Request authorization for the app
  • Save your access and refresh tokens to .env
  • Test the API connection

5. Configure Claude Desktop

Add the server to your Claude Desktop config at: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "whoop": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/whoop-mcp-server",
        "run",
        "python",
        "-m",
        "whoop_mcp"
      ]
    }
  }
}

Replace /path/to/whoop-mcp-server with the full path where you cloned the repository.

6. Restart Claude Desktop

Quit and reopen Claude Desktop. You should see "whoop" in the MCP servers list.

Usage

Once configured, you can ask Claude things like:

  • "What's my WHOOP status today?" (uses the combined summary)
  • "How did I sleep last night?"
  • "Show me my recovery trend for the past week"
  • "What's my current strain?"
  • "Show me my recent workouts"

Available Tools

Tool Description
get_today_summary Today's recovery, sleep, and strain in one call
get_sleep_trend Sleep history (default 7 days, unlimited)
get_recovery_trend Recovery history (default 7 days, unlimited)
get_workouts Workout history (default 5, unlimited)

Troubleshooting

"Authentication error: No access token found"

Run the token script: uv run python scripts/get_tokens.py

Tokens expired

The server automatically refreshes tokens, but if you encounter persistent auth errors, re-run the token script.

Multiple machines

Each machine must authorize separately with WHOOP. You cannot copy .env tokens between machines because the first API call on each session refreshes the token, which invalidates it on other machines. Run uv run python scripts/get_tokens.py on each machine you want to use.

Rate limiting

WHOOP API allows 100 requests/minute and 10,000/day. Normal usage is unlikely to hit these limits.

Development

# Test with MCP Inspector
npx @modelcontextprotocol/inspector uv run python -m whoop_mcp

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured