# whoop-mcp [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/souravpn/whoop-mcp  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/whoop-mcp-5

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

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "whoop-mcp": {
    "command": "npx",
    "args": ["-y","whoop-mcp-5"]
  }
}
```

## Documentation & README

# whoop-mcp

A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) 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

| Tool                  | What it returns                                                       |
| --------------------- | --------------------------------------------------------------------- |
| `get_recovery`        | Recovery score, HRV, resting HR, SpO2                                 |
| `get_sleep`           | Sleep duration, stages (light/deep/REM), efficiency, respiratory rate |
| `get_strain`          | Day strain score, avg/max HR, calories                                |
| `get_latest_workout`  | Most recent workout — sport, duration, strain, HR zones               |
| `get_recovery_trend`  | Recovery scores over N days (default 7)                               |
| `get_sleep_trend`     | Sleep data over N days (default 7)                                    |
| `get_workout_history` | Recent workout history (default 5)                                    |
| `get_profile`         | Profile + body measurements                                           |

---

## Setup

### 1. Create a WHOOP developer app

1. Go to [developer-dashboard.whoop.com](https://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 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:

```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-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](https://github.com/modelcontextprotocol/typescript-sdk) and the [WHOOP Developer API](https://developer.whoop.com).

