View as Markdown

WHOOP Integration

Manage WHOOP get profile, get body measurement, list cycles, list recovery, list sleep

The WHOOP integration provides access to manage WHOOP get profile, get body measurement, list cycles, list recovery, list sleep through the Integrate MCP server.

Installation

The WHOOP integration is included with the SDK:

import { whoopIntegration } from "integrate-sdk/server";

Setup

1. Create a WHOOP OAuth App

  1. Create an OAuth application for WHOOP
  2. Configure your redirect URI
  3. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the WHOOP integration to your server configuration. The integration automatically reads WHOOP_CLIENT_ID and WHOOP_CLIENT_SECRET from your environment variables:

import { createMCPServer, whoopIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    whoopIntegration({
      scopes: ["read:profile", "read:cycles", "read:recovery", "read:sleep", "read:workout", "read:body_measurement"], // Optional
    }),
  ],
});

You can override the environment variables by passing explicit values:

whoopIntegration({
  clientId: process.env.CUSTOM_WHOOP_ID,
  clientSecret: process.env.CUSTOM_WHOOP_SECRET,
      scopes: ["read:profile", "read:cycles", "read:recovery", "read:sleep", "read:workout", "read:body_measurement"], // Optional
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("whoop");
const result = await client.whoop.getProfile({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, whoopIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [whoopIntegration()],
});

Configuration Options

export interface WhoopIntegrationConfig {
  clientId?: string;

Default Scopes

These defaults are applied unless you override scopes in the integration config:

  • read:profile
  • read:cycles
  • read:recovery
  • read:sleep
  • read:workout
  • read:body_measurement

Tools

whoop_get_profile

Get profile

No parameters.

whoop_get_body_measurement

Get body measurement

No parameters.

whoop_list_cycles

List cycles

export interface WhoopListCyclesParams { "start"?: string;

whoop_list_recovery

List recovery

export interface WhoopListRecoveryParams { "start"?: string;

whoop_list_sleep

List sleep

export interface WhoopListSleepParams { "start"?: string;

whoop_list_workouts

List workouts

export interface WhoopListWorkoutsParams { "start"?: string;

Notes

  • Category: Fitness
  • Authentication mode: OAuth