Whoop Mcp

io.github.souravpnPublished by GitHub account souravpnv1.0.2Updated Oct 25, 2026

MCP server for WHOOP — gives Claude access to your recovery, sleep, strain, and workout data

VerifiedSTDIODesktop onlyLocation & LifestyleData & Analytics

Overview

AI-generated overview

A local MCP server that lets an assistant read your WHOOP recovery, sleep, strain, workout and profile data through the WHOOP API.

What you can do
Read recovery metrics such as score, HRV, resting heart rate and SpO2, plus recovery trends over a number of days (default 7). Retrieve sleep duration, stages, efficiency and respiratory rate, and sleep trends over several days. Get day strain, average and maximum heart rate and calories. Look up the latest workout with sport, duration, strain and heart-rate zones, or recent workout history. Fetch your profile and body measurements.
When to use it
Useful if you wear a WHOOP and want to ask an assistant about daily recovery, sleep quality, strain, HRV trends or workout history, or to cross-reference WHOOP data with another wearable's server.
Requirements
Runs locally via npm (Node.js) and is configured for Claude Desktop. Needs a WHOOP developer app with a Client ID and Client Secret, set as WHOOP_CLIENT_ID and WHOOP_CLIENT_SECRET, and a one-time browser OAuth setup that saves tokens to a local file. Network access to the WHOOP API is required.
Before you install
Requires a WHOOP developer app secret (WHOOP_CLIENT_SECRET) and stores OAuth tokens in a local file, so protect both. The README asks for all read scopes plus offline access. Data is read-only and described as staying on your device, but it is still fetched from WHOOP's API. The README's pairing example uses a WHOOP_ACCESS_TOKEN variable that is not in the declared configuration.

Installation

In SourceWeft

  1. Open Whoop Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

whoop-mcp

A Model Context Protocol (MCP) server that gives Claude access to your WHOOP biometric data — recovery, sleep, strain, and workouts.

Ask Claude things like:

  • "How's my recovery today?"
  • "How did I sleep last night?"
  • "How has my HRV trended this week?"
  • "What was my strain from yesterday's workout?"

Privacy

This app accesses your WHOOP data locally on your device. No data is sent to any third-party server.


Tools

ToolWhat it returns
get_recoveryRecovery score, HRV, resting HR, SpO2
get_sleepSleep duration, stages (light/deep/REM), efficiency, respiratory rate
get_strainDay strain score, avg/max HR, calories
get_latest_workoutMost recent workout — sport, duration, strain, HR zones
get_recovery_trendRecovery scores over N days (default 7)
get_sleep_trendSleep data over N days (default 7)
get_workout_historyRecent workout history (default 5)
get_profileProfile + body measurements

Setup

1. Create a WHOOP developer app

  1. Go to developer-dashboard.whoop.com
  2. Sign in with your WHOOP account
  3. Create a new App:
    • Name: whoop-mcp (or anything)
    • Redirect URI: http://localhost:8080/callback
    • Scopes: select all read scopes + offline
  4. Copy your Client ID and Client Secret

2. Install

bash
npm install -g @souravpn/whoop-mcp

3. Run one-time auth setup

This opens your browser, you log into WHOOP, and your tokens are saved to ~/.whoop-mcp-tokens.json:

bash
WHOOP_CLIENT_ID=your_id WHOOP_CLIENT_SECRET=your_secret whoop-mcp-auth-setup

You only need to do this once. The server will auto-refresh tokens after that.

4. Add to Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

json
{  "mcpServers": {    "whoop": {      "command": "@souravpn/whoop-mcp",      "env": {        "WHOOP_CLIENT_ID": "your_client_id",        "WHOOP_CLIENT_SECRET": "your_client_secret"      }    }  }}

Restart Claude Desktop. You should see a green "running" badge in Settings → Developer.

5. Test it

Open a new chat and ask:

How's my recovery today?

Example queries

Daily check-in:

What's my recovery, sleep, and strain for today?

Trend analysis:

How has my HRV trended over the past 7 days?

Workout correlation:

Look at my workouts this week and my recovery scoresthe day after each one. Is there a pattern?

Full briefing:

Give me a complete health briefing — recovery, lastnight's sleep breakdown, and any workouts from yesterday

Pairing with Oura

If you also use Oura Ring, you can run both MCP servers together and ask Claude to cross-reference:

json
{  "mcpServers": {    "whoop": {      "command": "/path/to/whoop-mcp",      "env": { "WHOOP_ACCESS_TOKEN": "your_whoop_token" }    },    "oura": {      "command": "/path/to/oura-mcp",      "env": { "OURA_ACCESS_TOKEN": "your_oura_token" }    }  }}

Then ask:

Compare my WHOOP and Oura HRV readings for this week.Do they agree? Which is trending higher?

Development

bash
git clone https://github.com/yourusername/whoop-mcpcd whoop-mcpnpm installnpm run build
# Test locallyWHOOP_ACCESS_TOKEN=your_token node dist/index.js

Project structure

whoop-mcp/├── src/│   ├── index.ts   # MCP server + tool definitions│   └── whoop.ts   # WHOOP API client + formatters├── package.json├── tsconfig.json└── README.md

Contributing

PRs welcome. Some ideas for extension:

  • Heart rate time series data
  • Sleep stage timeline (light/deep/REM per hour)
  • Strain goal recommendations
  • Weekly summary tool

License

MIT


Acknowledgements

Built with the MCP TypeScript SDK and the WHOOP Developer API.

Source: README.md at commit 993d71e

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.2LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.