npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@alacore/whoop-mcp-server

v1.0.1

Published

MCP (Model Context Protocol) server for Whoop APIv2 integration

Downloads

26

Readme

Whoop MCP Server

A lightweight MCP (Model Context Protocol) server for integrating with the Whoop API v2. Built for use with Claude Desktop and other MCP clients.

Features

  • 🔐 OAuth 2.0 authentication with Whoop
  • 🔄 Automatic token refresh
  • 📊 Access to all major Whoop data endpoints:
    • User profile and body measurements
    • Sleep, recovery, and cycle data
    • Workout information
  • 🐳 Docker support for easy deployment
  • 💾 Persistent token storage

Quick Start

Prerequisites

Setup for Claude Desktop

Choose one of the two methods below to integrate with Claude Desktop. The MCP server runs as part of Claude Desktop - you don't need to start it separately.

Method 1: Using Node.js

  1. Clone and install:

    git clone https://github.com/alacore/whoop-tracker-mcp-server.git
    cd whoop-tracker-mcp-server
    pnpm install
  2. Build the server:

    pnpm run build
  3. Configure Claude Desktop - see Claude Desktop Configuration section below

Method 2: Using Docker

  1. Clone the repository:

    git clone https://github.com/alacore/whoop-tracker-mcp-server.git
    cd whoop-tracker-mcp-server
  2. Build Docker image:

    docker build -t whoop-mcp .
  3. Configure Claude Desktop - see Claude Desktop Configuration section below

Development Mode (Optional)

For testing the MCP server independently or during development:

  1. Configure environment:

    cp .env.example .env

    Edit .env with your Whoop OAuth credentials:

    WHOOP_CLIENT_ID=your_whoop_client_id
    WHOOP_CLIENT_SECRET=your_whoop_client_secret
    WHOOP_REDIRECT_URI=http://localhost:3000/callback
    WHOOP_SCOPES=offline read:profile read:body_measurement read:cycles read:recovery read:sleep read:workout
  2. Run in development mode:

    pnpm run dev

    Note: This runs the server standalone for testing. For actual use with Claude Desktop, follow the configuration instructions below.

Usage

Claude Desktop Configuration

Method 1: Direct Node.js Execution

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "whoop": {
      "command": "node",
      "args": ["/path/to/whoop-tracker-mcp-server/dist/mcp-standalone.js"],
      "env": {
        "WHOOP_CLIENT_ID": "your_client_id",
        "WHOOP_CLIENT_SECRET": "your_client_secret",
        "WHOOP_REDIRECT_URI": "http://localhost:3000/callback",
        "WHOOP_SCOPES": "offline read:profile read:body_measurement read:cycles read:recovery read:sleep read:workout"
      }
    }
  }
}

Prerequisites:

  • Node.js >= 22.0.0 installed
  • Built server (pnpm run build)
  • Replace /path/to/whoop-tracker-mcp-server with your actual project path

Note: The offline scope in WHOOP_SCOPES is required to receive a refresh token during the OAuth2 flow, enabling automatic token renewal without re-authentication.

Method 2: Docker Container

First, build the Docker image:

# Build the Docker image
docker build -t whoop-mcp .

Then add to your Claude Desktop configuration:

{
  "mcpServers": {
    "whoop": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "WHOOP_CLIENT_ID=your_client_id",
        "-e",
        "WHOOP_CLIENT_SECRET=your_client_secret",
        "-e",
        "WHOOP_REDIRECT_URI=http://localhost:3000/callback",
        "-e",
        "WHOOP_SCOPES=offline read:profile read:body_measurement read:cycles read:recovery read:sleep read:workout",
        "-v",
        "${HOME}/.whoop-mcp:/home/node/.whoop-mcp",
        "whoop-mcp"
      ]
    }
  }
}

Prerequisites:

  • Docker installed and running
  • Built Docker image (docker build -t whoop-mcp .)

Notes:

  • The -v flag mounts a local directory for persistent token storage across container restarts. First create the directory on your host machine (e.g., mkdir -p ~/.whoop-mcp), then mount it using the -v flag - this is where auth tokens will be stored
  • The offline scope in WHOOP_SCOPES is required to receive a refresh token during the OAuth2 flow, enabling automatic token renewal without re-authentication

Testing Your Setup

To test either configuration:

  1. Restart Claude Desktop after updating the configuration
  2. In Claude, use the Whoop tools:
    • Start with whoop_auth_url to begin authentication
    • Follow the OAuth flow to authorize
    • Use other tools like whoop_get_profile to verify access

Available MCP Tools

Authentication

  • whoop_auth_url - Generate OAuth authorization URL
  • whoop_exchange_token - Exchange auth code for access token
  • whoop_refresh_token - Refresh expired access token

Data Access

  • whoop_get_profile - Get user profile
  • whoop_get_body_measurement - Get body measurements
  • whoop_get_cycles - Get physiological cycles
  • whoop_get_recovery - Get recovery data
  • whoop_get_sleep - Get sleep data
  • whoop_get_workouts - Get workout data

Authentication Flow

  1. Use whoop_auth_url to get authorization URL
  2. Open URL in browser and authorize
  3. Copy the code parameter from callback URL
  4. Use whoop_exchange_token with the code
  5. Tokens are automatically saved and refreshed

Development

# Development with hot reload
pnpm run dev

# Build for production
pnpm run build

# Run built version
pnpm start

License

MIT