mcpField
W
whoop-mcp

whoop-mcp

Local
github.com/souravpnHealth0Updated 22w ago

About whoop-mcp

whoop-mcp gives Claude access to WHOOP biometric data, including recovery, sleep, strain, and workouts. Data is accessed locally on the device and is not sent to a third-party server.

Key features

  1. 01Retrieve recovery scores and biometrics
  2. 02View sleep duration and stages
  3. 03Check daily strain and heart rate
  4. 04Review recent workouts and history
  5. 05Track recovery and sleep trends

Use cases

  1. 01Check daily recovery, sleep, and strain
  2. 02Review HRV trends across several days
  3. 03Compare workouts with next-day recovery
  4. 04Prepare a health briefing from WHOOP data

MCP support

Exposes MCP tools for retrieving WHOOP profile, recovery, sleep, strain, workout, and trend data to clients such as Claude.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"souravpn-whoop": {
"command": "npx",
"args": [
"-y",
"@souravpn/whoop-mcp"
],
"env": {
"WHOOP_CLIENT_ID": "<WHOOP_CLIENT_ID>",
"WHOOP_CLIENT_SECRET": "<WHOOP_CLIENT_SECRET>"
}
}
}
}
Run commandnpx -y @souravpn/whoop-mcp
Environment variables to set
WHOOP_CLIENT_IDOAuth2 Client ID from your WHOOP developer app at developer-dashboard.whoop.com
WHOOP_CLIENT_SECRETSecretOAuth2 Client Secret from your WHOOP developer app. Run whoop-mcp-auth-setup once to complete OAuth flow.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@souravpn/whoop-mcp1.0.1

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project 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
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:

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):

{
  "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 scores
the day after each one. Is there a pattern?

Full briefing:

Give me a complete health briefing — recovery, last
night'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:

{
  "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

git clone https://github.com/yourusername/whoop-mcp
cd whoop-mcp
npm install
npm run build

# Test locally
WHOOP_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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.