whoop -claude
Model Context Protocol server for WHOOP API integration. Connect your WHOOP fitness data to Claude Desktop with full OAuth authentication and 18+ API endpoints.
claude mcp add --transport stdio nissand-whoop-mcp-server-claude node dist/index.js \ --env MCP_SERVER_PORT="3001" \ --env WHOOP_CLIENT_ID="your_client_id_here" \ --env WHOOP_REDIRECT_URI="http://localhost:3000/callback" \ --env WHOOP_CLIENT_SECRET="your_client_secret_here"
How to use
The WHOOP MCP Server exposes the entire WHOOP v2 API set through the MCP interface, enabling you to query user profiles, body measurements, cycles, recovery, sleep, and workouts with pagination and strong TypeScript typings. It supports an OAuth 2.0 flow to securely obtain and refresh access tokens, and provides a collection of tools to fetch specific data (for example, user profile, sleep records, cycles, and workouts) as well as paginated lists. Use the included tools to authenticate, obtain an access token, and then read data from WHOOP endpoints in a consistent, type-safe manner. The server is designed to be integrated into your MCP-enabled tooling, workflows, or dashboards, allowing you to request data via the standard MCP tools and handle responses in your app with confidence thanks to the TypeScript types.
To operate, set up your environment with your WHOOP credentials and an OAuth redirect URI, start the server, and then use the exposed tools to interact with WHOOP data. Typical usage involves: 1) generating an authorization URL with whoop-get-authorization-url, 2) completing user authorization, 3) exchanging the authorization code for an access token with whoop-exchange-code-for-token, and 4) storing the access token using whoop-set-access-token before making API calls like whoop-get-user-profile or whoop-get-cycle-collection. The server supports common data retrieval patterns such as paginated lists (limit, start, end, nextToken) and targeted fetches by ID for granular data inspection.
How to install
Prerequisites
- Node.js 18+ installed on your machine
- npm (comes with Node.js) or npm/yarn package manager
- A WHOOP Developer Account with API credentials (Client ID and Client Secret)
- A registered redirect URI for OAuth (e.g., http://localhost:3000/callback)
- Clone the repository or pull this MCP server into your project directory
- Install dependencies
npm install
- Configure environment variables
- Copy the example env file and populate with your credentials
cp env.example .env
Edit .env and set:
# WHOOP API Configuration
WHOOP_CLIENT_ID=your_client_id_here
WHOOP_CLIENT_SECRET=your_client_secret_here
WHOOP_REDIRECT_URI=http://localhost:3000/callback
# MCP Server Configuration
MCP_SERVER_PORT=3001
- Build the project (TypeScript)
npm run build
- Run the MCP server
npm start
Or run in development mode with hot reloading
npm run dev
Notes
- The server uses a local OAuth flow; ensure your redirect URI is registered in the WHOOP developer console and matches your environment.
- Expose or forward ports if running in containers or behind proxies so the OAuth flow can callback to http://localhost:3000/callback.
- After a successful authorization, you can store tokens using the provided tools and start issuing data requests via the available MCP tools.
Additional notes
Tips and common issues:
- Ensure your WHOOP credentials are correctly configured in .env; incorrect credentials will yield authentication errors.
- If you encounter token expiration, use whoop-refresh-token to obtain a fresh access token.
- When testing, use the available paging parameters (limit, start, end, nextToken) to manage large datasets.
- The server is TypeScript-based; ensure your environment has the appropriate TS compilation targets and Node.js version compatible with the compiled output.
- If you deploy behind a reverse proxy, configure the host and port accordingly and ensure CORS settings (if applicable) allow your clients to connect.
Related MCP Servers
docmole
Dig through any documentation with AI - MCP server for Claude, Cursor, and other AI assistants
garmin-connect
MCP server enabling LLMs to interact with Garmin Connect - activities, health metrics, sleep data, and training analysis
obsidian
MCP server for Obsidian vault management - enables Claude and other AI assistants to read, write, search, and organize your notes
attio
Model Context Protocol server for Attio CRM - enables Claude Desktop and Cursor to interact with your Attio workspace
obsidian
MCP server for git-backed Obsidian vaults. Access and manage notes through Claude, ChatGPT, and other LLMs with automatic git sync. Supports local (stdio/HTTP) and remote (AWS Lambda) deployment.
scalekit
Model Context Protocol server for Scalekit - manage organizations, users, connections via AI assistants