MCP server for intervals.icu API integration providing access to activities and wellness data
The server provides 4 well-named tools with comprehensive, LLM-optimized descriptions that include usage guidance, best practices, and common mistakes. All tools have properly typed input schemas with descriptions. However, output schemas are not explicitly documented in the source code, they are only described in natural language within the tool descriptions. Tool descriptions are excellent (200+ chars, context-rich), and parameters are well-constrained with format examples and validation rules. No parameter descriptions are missing. The main gap is the absence of explicit, machine-readable output schema documentation and lack of error handling specifications in the tool definitions themselves.
Primary tool for fetching activities from intervals.icu for the configured athlete. **Best for:** Getting complete list of activities within a date range, analyzing training history, exporting activity data. **Not recommended for:** Large date ranges without pagination; real-time activity tracking. **Common mistakes:** Using wrong date format (must be YYYY-MM-DD); requesting too large date ranges that may timeout. **Prompt Example:** "Get my activities from 2024-01-01 to 2024-01-31" or "Show me all activities from last week" **Returns:** Complete activity data including id, name, type, distance, duration, power, heart rate, and other metrics.
Tool for fetching and grouping activities to reduce data volume and show patterns. **Best for:** Analyzing training patterns, summarizing activity by sport/time period, creating training reports, reducing data volume for large date ranges. **Not recommended for:** Getting individual activity details; real-time tracking. **Common mistakes:** Using invalid group_by value; requesting details for large datasets. **Prompt Example:** "Group my activities by sport from January" or "Show me weekly activity summary for last month" **Returns:** Grouped activity data with summaries (count, duration, distance) per group.
Tool for fetching and grouping wellness data to show trends and patterns. **Best for:** Analyzing wellness trends over time, creating health reports, tracking recovery patterns, monitoring training stress balance, identifying correlations. **Not recommended for:** Individual day analysis; real-time monitoring. **Common mistakes:** Using invalid group_by value; requesting details for very large datasets. **Prompt Example:** "Show me monthly wellness trends for 2024" or "Group my wellness data by week for the last 3 months" **Returns:** Grouped wellness data with averages and statistics per time period.
Output schemas not explicitly documented. Tool descriptions mention return fields in natural language ('Returns: Complete activity data including id, name, type, distance...'), but no machine-readable JSON Schema for responses is visible in the source code. LLMs cannot reliably extract field types and structure from natural-language descriptions alone.
No pagination controls visible in input schemas. The rubric baseline (pattern:paginated-result) requires tools returning lists to accept limit/offset/page parameters AND return a total count or next_cursor. The grouped tools have no visible pagination, and ungrouped tools do not expose limit/offset in the visible schema definition.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 52 | - | v1 |
Primary tool for fetching wellness data from intervals.icu for the configured athlete. **Best for:** Getting daily wellness metrics, tracking health trends, monitoring recovery, analyzing sleep patterns, weight tracking. **Not recommended for:** Real-time monitoring; medical diagnosis; very large date ranges. **Common mistakes:** Using wrong date format (must be YYYY-MM-DD); requesting years of data at once. **Prompt Example:** "Get my wellness data from 2024-01-01 to 2024-01-31" or "Show me wellness metrics for last month" **Returns:** Complete wellness data including weight, HRV, resting HR, sleep, fatigue, mood, motivation, and training metrics (ATL/CTL/TSB).
Error handling guidance absent from tool definitions. Tool descriptions mention 'common mistakes' (wrong date format, large date ranges) but do not specify error responses, error categories (retryable/fatal), or recovery guidance. LLMs need explicit error classification to determine whether to retry, ask the user, or abandon the operation.
Date format validation not enforced at schema level. The description states 'format: YYYY-MM-DD' in natural language, but the schema defines both parameters as plain 'string' with no pattern constraint. A regex pattern (e.g., '^\d{4}-\d{2}-\d{2}$') in the schema would prevent invalid dates at call time.
Enum constraints missing for group_by parameters. The get_grouped_activities tool accepts 'sport, day, week, month' and get_grouped_wellness accepts 'week, month, all', but these are documented only in the description, not as JSON Schema enum fields. LLMs cannot reliably parse this and may pass invalid values.