# whoop-mcp
## 基本信息
- Slug: `jedpattersonn-whoop-mcp`
- Source: modelscope
- Publisher: @JedPattersonn/whoop-mcp
- Categories: fitness-tracking / health-and-wellness / biology-and-medicine
- Hosted: No
- License: MIT License
- Source URL: https://www.modelscope.cn/mcp/servers/@JedPattersonn/whoop-mcp
## 简介
暂无描述。
## 安装提示

```bash
git clone https://github.com/yourusername/whoop-mcp.git cd whoop-mcp
```

## MCP Server 详情

# Whoop MCP Server

A Model Context Protocol (MCP) server for accessing Whoop fitness data. Integrate your WHOOP biometric data into Claude, LLMs, and other MCP-compatible applications.

[![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/F1iI46?referralCode=I5P95N&utm_medium=integration&utm_source=template&utm_campaign=generic)

## Features

- **Comprehensive Overview** - All your daily metrics in one call
- **Sleep Analysis** - Deep dive into sleep performance and quality
- **Recovery Metrics** - HRV, RHR, and recovery contributors
- **Strain Tracking** - Day strain with heart rate zones and activities
- **Healthspan** - Biological age and pace of aging metrics

## Quick Start

1. **Clone the repository:**

```bash
git clone https://github.com/yourusername/whoop-mcp.git
cd whoop-mcp
```

2. **Create a `.env` file with your WHOOP credentials:**

```bash
echo "WHOOP_EMAIL=your-email@example.com" > .env
echo "WHOOP_PASSWORD=your-password" >> .env
echo "PORT=3000" >> .env
```

Or set as environment variables:

```bash
export WHOOP_EMAIL='your-email@example.com'
export WHOOP_PASSWORD='your-password'
```

3. **Install dependencies:**

```bash
bun install
```

4. **Start the server:**

```bash
bun run start
```

Or for development with hot reload:

```bash
bun run dev
```

The server will run on `http://localhost:3000/mcp` by default.

## Docker Deployment

1. **Create a `.env` file with your credentials:**

```bash
cp .env.example .env
# Edit .env with your actual credentials
```

2. **Build the Docker image:**

```bash
docker build -t whoop-mcp .
```

3. **Run the container:**

```bash
docker run -d \
  --name whoop-mcp \
  whoop-mcp
```

The `--env-file .env` flag automatically loads all environment variables from your `.env` file.

4. **View logs:**

```bash
docker logs -f whoop-mcp
```

5. **Stop the container:**

```bash
docker stop whoop-mcp
```

The Docker image is based on the official Bun Alpine image. The container includes health checks to monitor the server's status.

## Smithery Deployment

This server is configured to work with [Smithery](https://smithery.ai/), a platform for deploying MCP servers. When deployed on Smithery:

1. **Configuration via Query Parameters**: Smithery passes your credentials as query parameters to the `/mcp` endpoint (defined in `smithery.yaml`):

   - `whoopEmail` - Your Whoop account email
   - `whoopPassword` - Your Whoop account password
   - `mcpAuthToken` - Optional authentication token

2. **Automatic Configuration**: The server automatically extracts these from query parameters when running on Smithery, so you don't need to set environment variables manually.

3. **Deploy Button**: Use the Railway deploy button above for quick deployment, or follow [Smithery's documentation](https://smithery.ai/docs) for other deployment options.

The `smithery.yaml` file in the repository root defines the configuration schema that Smithery uses to collect your credentials securely.

## Configuration

### Credentials Configuration

The server supports two methods for providing credentials:

1. **Query Parameters** (used by Smithery): Pass credentials as query parameters to the `/mcp` endpoint

   - `whoopEmail` - Your Whoop account email
   - `whoopPassword` - Your Whoop account password
   - `mcpAuthToken` - Optional authentication token

2. **Environment Variables** (used for local/Docker deployment):

| Variable         | Required | Default | Description                                    |
| ---------------- | -------- | ------- | ---------------------------------------------- |
| `WHOOP_EMAIL`    | Yes      | -       | Your Whoop account email                       |
| `WHOOP_PASSWORD` | Yes      | -       | Your Whoop account password                    |
| `MCP_AUTH_TOKEN` | No       | -       | Optional authentication token for MCP requests |
| `PORT`           | No       | 3000    | Server port                                    |

The server will check query parameters first, then fall back to environment variables if not provided.

### Optional Authentication

To protect your MCP server from unauthorized access, you can set the `MCP_AUTH_TOKEN` environment variable. When set, all requests to the `/mcp` endpoint must include a matching Bearer token:

```bash
export MCP_AUTH_TOKEN='your-secret-token-here'
```

Or add it to your `.env` file:

```bash
echo "MCP_AUTH_TOKEN=your-secret-token-here" >> .env
```

Clients must then include the token in the Authorization header:

```bash
curl -X POST http://localhost:3000/mcp \
  -H "Authorization: Bearer your-secret-token-here" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
```

**Note:** If `MCP_AUTH_TOKEN` is not set, the server will accept all requests (useful for local development).

## Using with Claude Desktop

Add this configuration to your Claude Desktop config file:

**MacOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`

**Windows**: `%APPDATA%/Claude/claude_desktop_config.json`

### Without Authentication (Local Development)

```json
{
  "mcpServers": {
    "whoop": {
      "command": "bun",
      "args": ["run", "/absolute/path/to/whoop-mcp/index.ts"],
      "env": {
        "WHOOP_EMAIL": "your-email@example.com",
        "WHOOP_PASSWORD": "your-password"
      }
    }
  }
}
```

### With Authentication (Recommended)

```json
{
  "mcpServers": {
    "whoop": {
      "command": "bun",
      "args": ["run", "/absolute/path/to/whoop-mcp/index.ts"],
      "env": {
        "WHOOP_EMAIL": "your-email@example.com",
        "WHOOP_PASSWORD": "your-password",
        "MCP_AUTH_TOKEN": "your-secret-token-here"
      }
    }
  }
}
```

Replace `/absolute/path/to/whoop-mcp/` with the actual path to this directory.

## Available Tools

The server provides five main tools for accessing your Whoop data:

### whoop_get_overview

Retrieves comprehensive Whoop overview data for a specific date in a single API call.…

