Intervals MCP
Intervals MCP exposes Intervals.icu athlete data and coaching tools through MCP.
Read athlete profiles and activity details, optionally including detected intervals.
List activities, wellness records, and calendar events over inclusive date ranges.
Create, get, update, and delete calendar events.
Create, get, list, update, and delete reusable workout-library workouts.
List calendars, workout-library folders, and sport settings including thresholds and zones.
Use optional athleteId defaults and write event/workout payloads for scheduling and structured workout descriptions, with caution around non-idempotent writes and possible post-write failures.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Intervals MCP What's my average power for last week's rides?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Intervals MCP
Make chat your cycling coach (for better or for worse)
Setup
Requires Docker Compose and chat developer mode access.
Create a secure MCP tunnel associated with your chat workspace and a runtime API key with tunnels read + use access.
Clone this repo and configure
CONTROL_PLANE_TUNNEL_ID,CONTROL_PLANE_API_KEY, andINTERVALS_API_KEYin your .env.Start the server:
docker compose up -d --build docker compose psEnable Developer mode in chat, then add a connection in plugins using tunnel and select yours. More info in the tunnel guide.
Related MCP server: intervals.mcp
Tools
Calendar events are scheduled items; workout-library entries are reusable templates. Creating a library workout does not schedule it.
athlete_get— athlete profileactivities_list— activities betweenoldestandnewestactivity_get— one activity byactivityIdwellness_list— wellness betweenoldestandnewestevents_list— calendar events betweenoldestandnewestevent_get,event_create,event_update,event_delete— individual calendar eventsworkouts_list,workout_get,workout_create,workout_update,workout_delete— reusable workout-library entriescalendars_list,folders_list— available calendars and workout-library folderssport_settings_list,sport_settings_get— API sport settings, including available thresholds and zones, returned unchanged
All athlete-scoped tools accept optional athleteId, defaulting to the client's
configured athlete (normally 0, the authenticated athlete). Event, workout and
sport-settings IDs accept strings or numbers; activity IDs remain strings.
Writes take an event or workout object. Both expose name, description and
sport type (e.g. Ride). Events also expose calendar_id, category (e.g.
WORKOUT, RACE_B, NOTE), start_date_local, end_date_local, moving_time
(planned duration in seconds), distance (planned distance in meters) and
icu_training_load (planned training load); library workouts expose folder_id.
Local timestamps use YYYY-MM-DDTHH:mm:ss without a timezone suffix or UTC
conversion. Structured content uses native Intervals.icu
workout-builder text in description, as described in the
official API guide.
workout_doc, file uploads, identity fields and upsertOnUid are not exposed.
Payload fields are optional and support explicit null; only supplied fields
are forwarded. Omitted-field behavior depends on the API operation; inspect
results rather than assuming every update is a patch. Creates are not idempotent.
Event deletion returns { "deleted": true, "eventId": <requested ID> }; workout
deletion preserves the client's deleted-ID array. Other results are JSON in text.
Writes can overwrite or delete data. Network, cancellation and response-parsing failures may occur after a write was applied: inspect the resource before retrying. Cancellation is forwarded to the client and does not imply rollback; a cancelled MCP request may never receive the final tool result. No automatic retries occur.
Local verification
Run npm run check for typechecking, lint, formatting, mocked in-memory MCP tests,
build and a discovery-only stdio smoke test using a dummy credential. No test
requires credentials or modifies live Intervals data.
Available Tools
5 toolsactivities_listARead-onlyIdempotent
List Intervals activities in an inclusive date range.
Inputs: newest (required), oldest (required), athleteId.
activity_getARead-onlyIdempotent
Get one Intervals activity by ID.
Inputs: activityId (required), intervals.
athlete_getARead-onlyIdempotent
Get an Intervals athlete profile.
Inputs: athleteId.
events_listARead-onlyIdempotent
List Intervals calendar events in an inclusive date range.
Inputs: newest (required), oldest (required), resolve, category, +2 more.
wellness_listARead-onlyIdempotent
List Intervals wellness records in an inclusive date range.
Inputs: newest (required), oldest (required), athleteId.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool targets a distinct resource-action pair: athlete, activities, wellness, and events, with list versus get clearly separating collection from detail operations. An agent would not struggle to pick among them.
All tool names consistently follow a resource_verb pattern in snake_case, with plural resources for list operations and singular resources for detail operations. There are no stylistic deviations or ambiguous verbs.
Five tools is a compact, well-scoped set for a read-only fitness data server. Each tool covers a meaningful endpoint with no redundancy or bloat.
The surface covers core read workflows: athlete profile, activity list/detail, wellness records, and calendar events. It lacks write operations and detail endpoints for wellness/events, but these are likely outside the read-only scope and list results may be sufficient.
Maintenance
Related MCP Connectors
Connect Intervals.icu to Claude and ChatGPT: read training, plan workouts. Training never stored.
Your endurance training data in your AI assistant: activities, recovery, plan, workout edits.
Your own cycling data for your AI assistant: rides, power, climbs and routes. Read-only.
Your swim, bike and run training: readiness, HRV, sleep, workouts and race predictions. Read-only.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI assistants to interact with Intervals.icu fitness tracking and wellness data, allowing users to fetch, filter, and group activities or health metrics. It provides structured summaries of workouts and physical well-being through natural language queries.4-
- FlicenseAqualityDmaintenanceEnables AI assistants to access and analyze intervals.icu training data including activities, fitness metrics (CTL/ATL/TSB), wellness stats, and calendar events. Supports natural language querying of athletic performance for training insights and workout planning.6-
- AlicenseAqualityDmaintenanceEnables interaction with Intervals.icu data, including activities, wellness, and calendar events, via natural language.1017 npm1MIT
- AlicenseNot gradedqualityCmaintenanceConnects to Intervals.icu to let users query training data, create workouts, manage calendar events, and coach athletes through natural language in Claude Desktop.23 npmMIT