get_training_status
Retrieve your current training status and load for a given date. Indicates if you are productive, maintaining, detraining, peaking, recovery, or overreaching.
Instructions
Get Training Status: productive, maintaining, detraining, peaking, recovery, overreaching. Includes training load. Data may not be available for today
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date in YYYY-MM-DD format. Defaults to today if not provided |
Implementation Reference
- src/client/garmin.client.ts:393-396 (handler)Client handler method `getTrainingStatus` that calls the Garmin API endpoint for training status data. Uses TRAINING_STATUS_ENDPOINT with an optional date parameter (defaults to today).
async getTrainingStatus(date?: string): Promise<unknown> { const resolvedDate = date ?? todayString(); return this.request(`${TRAINING_STATUS_ENDPOINT}/${resolvedDate}`); } - src/dtos/date-params.dto.ts:8-12 (schema)Input schema (dateParamSchema) used by the tool. Defines an optional 'date' parameter in YYYY-MM-DD format.
export const dateParamSchema = z.object({ date: dateString .optional() .describe('Date in YYYY-MM-DD format. Defaults to today if not provided'), }); - src/tools/performance.tools.ts:41-54 (registration)Tool registration in `registerPerformanceTools`. Registers 'get_training_status' with description and inputSchema, and invokes client.getTrainingStatus(date).
server.registerTool( 'get_training_status', { description: 'Get Training Status: productive, maintaining, detraining, peaking, recovery, overreaching. Includes training load. Data may not be available for today', inputSchema: dateParamSchema.shape, }, async ({ date }) => { const data = await client.getTrainingStatus(date); return { content: [{ type: 'text' as const, text: JSON.stringify(data, null, 2) }], }; }, ); - src/index.ts:44-44 (registration)Top-level registration hook that calls `registerPerformanceTools(server, client)` to wire up all performance tools including get_training_status.
registerPerformanceTools(server, client); - Endpoint constant TRAINING_STATUS_ENDPOINT pointing to '/metrics-service/metrics/trainingstatus/aggregated' which is the Garmin API path used by getTrainingStatus.
export const TRAINING_STATUS_ENDPOINT = '/metrics-service/metrics/trainingstatus/aggregated';