whoop-get-recovery-collection
Retrieve paginated recovery data for WHOOP users, including sleep analysis and physiological metrics. Use date ranges and pagination tokens to access comprehensive health recovery information.
Instructions
Get all recovery data for a user, paginated
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Limit on the number of recovery records returned (max 25) | |
| start | No | Return recovery records that occurred after or during this time (ISO 8601) | |
| end | No | Return recovery records that intersect this time or ended before this time (ISO 8601) | |
| nextToken | No | Next token from the previous response to get the next page |
Implementation Reference
- src/mcp-server.ts:386-401 (handler)MCP tool handler for 'whoop-get-recovery-collection' that invokes WhoopApiClient.getRecoveryCollection with parsed arguments and returns the result as JSON text content.case 'whoop-get-recovery-collection': { const result = await this.whoopClient.getRecoveryCollection({ limit: args?.limit as number | undefined, start: args?.start as string | undefined, end: args?.end as string | undefined, nextToken: args?.nextToken as string | undefined, }); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; }
- src/mcp-server.ts:118-142 (schema)Input schema and description for the 'whoop-get-recovery-collection' tool, registered in the ListToolsRequestSchema handler.name: 'whoop-get-recovery-collection', description: 'Get all recovery data for a user, paginated', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Limit on the number of recovery records returned (max 25)', }, start: { type: 'string', description: 'Return recovery records that occurred after or during this time (ISO 8601)', }, end: { type: 'string', description: 'Return recovery records that intersect this time or ended before this time (ISO 8601)', }, nextToken: { type: 'string', description: 'Next token from the previous response to get the next page', }, }, required: [], }, },
- src/mcp-server.ts:118-142 (registration)Registration of the 'whoop-get-recovery-collection' tool in the MCP server's ListTools response.name: 'whoop-get-recovery-collection', description: 'Get all recovery data for a user, paginated', inputSchema: { type: 'object', properties: { limit: { type: 'number', description: 'Limit on the number of recovery records returned (max 25)', }, start: { type: 'string', description: 'Return recovery records that occurred after or during this time (ISO 8601)', }, end: { type: 'string', description: 'Return recovery records that intersect this time or ended before this time (ISO 8601)', }, nextToken: { type: 'string', description: 'Next token from the previous response to get the next page', }, }, required: [], }, },
- src/whoop-api.ts:84-94 (helper)Supporting method in WhoopApiClient that constructs the API request to fetch recovery collection data from Whoop's /recovery endpoint with pagination parameters.const queryParams = new URLSearchParams(); if (params?.limit) queryParams.append('limit', params.limit.toString()); if (params?.start) queryParams.append('start', params.start); if (params?.end) queryParams.append('end', params.end); if (params?.nextToken) queryParams.append('nextToken', params.nextToken); const url = `/recovery${queryParams.toString() ? `?${queryParams.toString()}` : ''}`; const response = await this.client.get(url); return response.data; }