Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| INTERVALS_API_KEY | Yes | Your intervals.icu API key obtained from developer settings. | |
| INTERVALS_ATHLETE_ID | Yes | Your intervals.icu athlete ID (e.g., 'i335136' from your profile URL). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_activities | 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" Usage Example: {
"name": "get_activities",
"arguments": {
"oldest_date": "2024-01-01",
"newest_date": "2024-01-31"
}
} Tool Relationships: Use this first to get activity list, then use get_grouped_activities for aggregated analysis, or get specific activity details as needed. Returns: Complete activity data including id, name, type, distance, duration, power, heart rate, and other metrics. Parametersoldest_date : str The oldest date to fetch activities from (format: YYYY-MM-DD). This parameter is required. newest_date : str, optional The newest date to fetch activities from (format: YYYY-MM-DD). If not provided, no upper date limit is applied. Returnsdict Dictionary containing: - status: "success" or "error" - count: Number of activities returned - activities: List of transformed activity objects RaisesValidationError: If date format is invalid. IntervalsError: If the API request fails. |
| get_grouped_activities | 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" Usage Example: {
"name": "get_grouped_activities",
"arguments": {
"oldest_date": "2024-01-01",
"newest_date": "2024-01-31",
"group_by": "week",
"include_details": false
}
} Tool Relationships: Use after get_activities to analyze patterns, or directly for summarized data when individual activities aren't needed. Returns: Grouped activity data with summaries (count, duration, distance) per group. Parametersoldest_date : str The oldest date to fetch activities from (format: YYYY-MM-DD). This parameter is required. newest_date : str, optional The newest date to fetch activities from (format: YYYY-MM-DD). If not provided, no upper date limit is applied. group_by : str, optional How to group activities. Options: "sport", "day", "week", "month". Default: "sport" include_details : bool, optional Whether to include filtered activity details in each group. Default: False Returnsdict Dictionary containing: - groups: Dictionary of groups with summaries - total_activities: Total number of activities - Additional metadata based on grouping type RaisesValidationError: If parameters are invalid. IntervalsError: If the API request fails. |
| get_wellness | 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" Usage Example: {
"name": "get_wellness",
"arguments": {
"oldest_date": "2024-01-01",
"newest_date": "2024-01-31"
}
} Tool Relationships: Use this first to get wellness records, then use get_grouped_wellness for trend analysis or summary statistics. Returns: Complete wellness data including weight, HRV, resting HR, sleep, fatigue, mood, motivation, and training metrics (ATL/CTL/TSB). Parametersoldest_date : str The oldest date to fetch wellness data from (format: YYYY-MM-DD). This parameter is required. newest_date : str, optional The newest date to fetch wellness data from (format: YYYY-MM-DD). If not provided, no upper date limit is applied. Returnsdict Dictionary containing: - status: "success" or "error" - count: Number of wellness records returned - wellness: List of transformed wellness objects - date_range: Date range of the wellness data RaisesValidationError: If date format is invalid. IntervalsError: If the API request fails. |
| get_grouped_wellness | 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" Usage Example: {
"name": "get_grouped_wellness",
"arguments": {
"oldest_date": "2024-01-01",
"newest_date": "2024-03-31",
"group_by": "month",
"include_details": false
}
} Tool Relationships: Use after get_wellness to analyze patterns, or directly for trend analysis when individual records aren't needed. Returns: Grouped wellness data with averages and statistics per time period. Parametersoldest_date : str The oldest date to fetch wellness data from (format: YYYY-MM-DD). This parameter is required. newest_date : str, optional The newest date to fetch wellness data from (format: YYYY-MM-DD). If not provided, no upper date limit is applied. group_by : str, optional How to group wellness data. Options: "week", "month", "all". Default: "month" include_details : bool, optional Whether to include individual records in each group. Default: False Returnsdict Dictionary containing: - status: "success" or "error" - groups: Dictionary of groups with summaries (when not "all") - summary: Aggregate statistics (when group_by is "all") - total_records: Total number of wellness records - Additional metadata based on grouping type RaisesValidationError: If parameters are invalid. IntervalsError: If the API request fails. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |