Read WHOOP recovery, sleep, cycles, workouts and body measurements.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
The user's body measurements (height in meters, weight in kilograms, max heart rate). WHOOP REST: GET /v2/user/measurement/body. Scope: read:body_measurement.
This tool takes no arguments.
The user's body measurements (height in meters, weight in kilograms, max heart rate). WHOOP REST: GET /v2/user/measurement/body. Scope: read:body_measurement.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Get a single physiological cycle by its id (strain, kilojoules, average/max heart rate, start/end). WHOOP REST: GET /v2/cycle/{cycleId}. Scope: read:cycles.
| Argument | Type | Description |
|---|---|---|
| cycleId* | string | The cycle id (an integer, e.g. from whoop_list_cycles). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"cycleId"
],
"properties": {
"cycleId": {
"type": "string",
"minLength": 1,
"description": "The cycle id (an integer, e.g. from whoop_list_cycles)."
}
}
}Get the recovery scored for a specific cycle (recovery %, resting heart rate, HRV RMSSD, SpO2 %, skin temperature). WHOOP REST: GET /v2/cycle/{cycleId}/recovery. Scope: read:recovery.
| Argument | Type | Description |
|---|---|---|
| cycleId* | string | The cycle id (an integer, e.g. from whoop_list_cycles). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"cycleId"
],
"properties": {
"cycleId": {
"type": "string",
"minLength": 1,
"description": "The cycle id (an integer, e.g. from whoop_list_cycles)."
}
}
}The current user's basic WHOOP profile (user id, email, first name, last name). WHOOP REST: GET /v2/user/profile/basic. Scope: read:profile.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Get a single sleep activity by its id (stage summary, sleep needed, respiratory rate, sleep performance %, start/end). WHOOP REST: GET /v2/activity/sleep/{sleepId}. Scope: read:sleep.
| Argument | Type | Description |
|---|---|---|
| sleepId* | string | The sleep id (a UUID, e.g. from whoop_list_sleep). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"sleepId"
],
"properties": {
"sleepId": {
"type": "string",
"minLength": 1,
"description": "The sleep id (a UUID, e.g. from whoop_list_sleep)."
}
}
}Get a single workout by its id (sport, strain, average/max heart rate, distance, zone durations, start/end). WHOOP REST: GET /v2/activity/workout/{workoutId}. Scope: read:workout.
| Argument | Type | Description |
|---|---|---|
| workoutId* | string | The workout id (a UUID, e.g. from whoop_list_workouts). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"workoutId"
],
"properties": {
"workoutId": {
"type": "string",
"minLength": 1,
"description": "The workout id (a UUID, e.g. from whoop_list_workouts)."
}
}
}List the user's physiological cycles (a WHOOP 'day', ~24h anchored to sleep), most recent first. Each cycle carries a score with day strain, kilojoules burned, and average/max heart rate. Paginated (limit/nextToken) and filterable by created-time window (start/end). WHOOP REST: GET /v2/cycle. Scope: read:cycles.
| Argument | Type | Description |
|---|---|---|
| end | string | Return records created before this ISO 8601 datetime, e.g. 2024-02-01T00:00:00.000Z. |
| limit | integer | Max records to return per page (1–25, default 10). |
| start | string | Return records created at/after this ISO 8601 datetime, e.g. 2024-01-01T00:00:00.000Z. |
| nextToken | string | Pagination cursor: pass the `next_token` from a previous response to fetch the next page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"end": {
"type": "string",
"description": "Return records created before this ISO 8601 datetime, e.g. 2024-02-01T00:00:00.000Z."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Max records to return per page (1–25, default 10)."
},
"start": {
"type": "string",
"description": "Return records created at/after this ISO 8601 datetime, e.g. 2024-01-01T00:00:00.000Z."
},
"nextToken": {
"type": "string",
"description": "Pagination cursor: pass the `next_token` from a previous response to fetch the next page."
}
}
}List the user's recoveries, most recent first. Each recovery scores how ready the body is (recovery %, resting heart rate, HRV RMSSD, SpO2 %, skin temperature) and links to its cycle and sleep. Paginated (limit/nextToken) and filterable by created-time window (start/end). WHOOP REST: GET /v2/recovery. Scope: read:recovery.
| Argument | Type | Description |
|---|---|---|
| end | string | Return records created before this ISO 8601 datetime, e.g. 2024-02-01T00:00:00.000Z. |
| limit | integer | Max records to return per page (1–25, default 10). |
| start | string | Return records created at/after this ISO 8601 datetime, e.g. 2024-01-01T00:00:00.000Z. |
| nextToken | string | Pagination cursor: pass the `next_token` from a previous response to fetch the next page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"end": {
"type": "string",
"description": "Return records created before this ISO 8601 datetime, e.g. 2024-02-01T00:00:00.000Z."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Max records to return per page (1–25, default 10)."
},
"start": {
"type": "string",
"description": "Return records created at/after this ISO 8601 datetime, e.g. 2024-01-01T00:00:00.000Z."
},
"nextToken": {
"type": "string",
"description": "Pagination cursor: pass the `next_token` from a previous response to fetch the next page."
}
}
}List the user's sleep activities, most recent first. Each carries a score with sleep-stage summary, sleep needed, respiratory rate, and sleep performance %. Paginated (limit/nextToken) and filterable by created-time window (start/end). WHOOP REST: GET /v2/activity/sleep. Scope: read:sleep.
| Argument | Type | Description |
|---|---|---|
| end | string | Return records created before this ISO 8601 datetime, e.g. 2024-02-01T00:00:00.000Z. |
| limit | integer | Max records to return per page (1–25, default 10). |
| start | string | Return records created at/after this ISO 8601 datetime, e.g. 2024-01-01T00:00:00.000Z. |
| nextToken | string | Pagination cursor: pass the `next_token` from a previous response to fetch the next page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"end": {
"type": "string",
"description": "Return records created before this ISO 8601 datetime, e.g. 2024-02-01T00:00:00.000Z."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Max records to return per page (1–25, default 10)."
},
"start": {
"type": "string",
"description": "Return records created at/after this ISO 8601 datetime, e.g. 2024-01-01T00:00:00.000Z."
},
"nextToken": {
"type": "string",
"description": "Pagination cursor: pass the `next_token` from a previous response to fetch the next page."
}
}
}List the user's workouts, most recent first. Each carries a score with strain, average/max heart rate, distance (meters), and per-heart-rate-zone durations. Paginated (limit/nextToken) and filterable by created-time window (start/end). WHOOP REST: GET /v2/activity/workout. Scope: read:workout.
| Argument | Type | Description |
|---|---|---|
| end | string | Return records created before this ISO 8601 datetime, e.g. 2024-02-01T00:00:00.000Z. |
| limit | integer | Max records to return per page (1–25, default 10). |
| start | string | Return records created at/after this ISO 8601 datetime, e.g. 2024-01-01T00:00:00.000Z. |
| nextToken | string | Pagination cursor: pass the `next_token` from a previous response to fetch the next page. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"end": {
"type": "string",
"description": "Return records created before this ISO 8601 datetime, e.g. 2024-02-01T00:00:00.000Z."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Max records to return per page (1–25, default 10)."
},
"start": {
"type": "string",
"description": "Return records created at/after this ISO 8601 datetime, e.g. 2024-01-01T00:00:00.000Z."
},
"nextToken": {
"type": "string",
"description": "Pagination cursor: pass the `next_token` from a previous response to fetch the next page."
}
}
}