A Model Context Protocol server for connecting Claude with the Intervals.icu API. It provides tools for retrieving and managing athlete data, including activities, events, workouts, and wellness metrics.
Server provides 19 tools with consistent naming (verb_noun pattern) and basic descriptions. However, most descriptions are generic (avg ~60 chars, well below the 194-char baseline for A+ tools). Input schemas are present but minimal, most tools accept only 1-2 parameters with no enum constraints, validation rules, or format guidance. Output schemas are not documented. Error handling is absent from tool definitions. The add_events tool (WRITE operation) lacks confirmation/dry-run pattern. No tool annotations (readOnlyHint, destructiveHint) despite clear risk stratification. Composition is reasonable (single responsibility per tool), but parameter descriptions lack actionable detail (e.g., date format 'YYYY-MM-DD' is stated but no guidance on valid ranges or edge cases).
Add one or more events to the athlete's calendar
Calculate date information (day of week, week number, etc.) for a given date
Download a workout file in ZWO format
Retrieve a list of activities for the authenticated athlete
Retrieve detailed information about a specific activity
Retrieve heart rate curve data for a specific activity
Retrieve interval data for a specific activity
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields without knowing response structure.
Descriptions are generic and under 100 chars (avg ~60 chars vs 194-char baseline). Lack actionable context: when to use, what it returns, prerequisites. E.g., 'Retrieve a list of activities' does not explain filtering behavior or result limits.
add_events (WRITE operation) lacks confirmation/dry-run pattern and error recovery guidance. No tool annotation (destructiveHint). Agents cannot safely preview changes before committing.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Retrieve pace curve data for a specific activity
Retrieve power curve data for a specific activity
Retrieve power vs heart rate data for a specific activity
Retrieve athlete profile information
Get current date and time information
Retrieve a specific event by ID
Retrieve events (races, workouts, calendar items) for the athlete
Retrieve pace curve data for the athlete
Retrieve power curve data for the athlete
Retrieve power vs heart rate curve data for the athlete
Retrieve race events for the athlete
Retrieve wellness data (HRV, RHR, sleep, training load) for the athlete
Date parameters (oldest, newest) lack validation rules in descriptions. No guidance on valid ranges, whether endpoints are inclusive/exclusive, or behavior when oldest > newest.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk stratification (18 READ_ONLY, 1 WRITE). Clients cannot infer safety properties.