The Intervals.icu
MCP server.
IntervalSync is a hosted Model Context Protocol (MCP) server for Intervals.icu. Point Claude, ChatGPT, Grok, Claude Code, Cursor, or anything else that speaks remote MCP at one URL, sign in with Intervals.icu, and your assistant can read your activities, intervals, per-second streams, wellness, and training calendar.
There is nothing to install and no API key to paste into a config file. Authorization is OAuth, and each person who connects links only their own Intervals.icu account.
One server address, whichever assistant you use.
MCP is the protocol assistants use to reach outside tools. A remote MCP server is one they reach over HTTP rather than one you run on your own machine — so the same connection works in a phone app, a desktop app, and a browser tab, without a process running at home.
That matters here because the alternative to a connector is copying screenshots and numbers into a chat by hand. With the server connected, the assistant asks Intervals.icu for exactly the activity, range, or stream your question needs, at the moment you ask.
Training data is never stored here. It is read from Intervals.icu when an assistant asks and passed straight through. What IntervalSync keeps is your encrypted Intervals.icu credential and a minimal record of each request — tool name, a safe summary, outcome, and time.
Add it once per assistant.
Customize → Connectors → + → Add custom connector. Paste the server URL and leave the OAuth client ID and secret blank.
Turn on developer mode in ChatGPT’s connector settings, add a custom connector, and paste the server URL. Plan requirements differ for reads and writes — see OpenAI’s page.
grok.com/connectors → New Connector → Custom. Paste the server URL and complete the IntervalSync sign-in.
Add a remote or streamable HTTP MCP server and choose OAuth. In Claude Code: claude mcp add --transport http intervalsync https://intervalsync.icu/mcp/v2
Use OAuth rather than an Intervals.icu API key, and do not paste credentials into an assistant. Each connected platform can be revoked individually from your IntervalSync settings.
Fourteen read tools, on every plan.
Every list is paged, and a partial answer says so: date-range tools return a pagination block, and a response that had to be shortened carries an explicit omitted_items count rather than dropping rows silently.
| Tool | What it returns |
|---|---|
get_connection_status | Which capabilities the connection currently exposes |
get_athlete_profile | Athlete profile and current training metrics |
list_activities | Completed activities for a date range |
list_activity_fields | The catalogue of fields you can ask for, grouped by purpose |
get_activity | Full summary and metadata for one activity |
get_activity_detail | Coaching view: summary, up to 100 intervals, group roll-ups |
get_activity_interval_stats | Interval-by-interval execution, compact or every raw field |
get_training_summary | Weekly, monthly and total distance, time, load, elevation, zone time |
get_activity_streams | Time-series streams, aggregated to any resolution or raw |
get_activity_blocks | Steady-state efforts detected from the power trace, with drift |
get_climb_segments | Sustained climbs from the elevation trace, with gradient and VAM |
list_planned_workouts | Calendar events and planned workouts, soonest first, paged |
get_wellness | Sleep, resting HR, HRV, fatigue, notes, nutrition — newest first, paged |
list_sport_settings | Sport-specific zones and threshold values |
Four write tools — create_planned_workout, update_planned_workout, delete_planned_workout, and update_wellness — are available during a new account's 30-day full-access trial and on Pro. Every write is confirmation-gated: you see the exact change before it happens, and nothing else on the workout is touched.
When a self-hosted server is the better answer.
Open-source Intervals.icu MCP servers exist that you run yourself, and if you are comfortable running a process and keeping an API key in a config file, they are a perfectly good answer — free, inspectable, and yours.
This one is hosted, which buys three specific things. It works in assistants that can only reach a server over the internet, so ChatGPT on your phone and Claude in a browser both work with no machine of yours running. It authorizes with OAuth against Intervals.icu rather than a long-lived API key sitting in a file. And it is one URL to add rather than a runtime, a clone, and a config to maintain per device.
If you want the connection to keep working while your laptop is shut, that is the difference.
Free to start, and honest about the limit.
Every new account gets 30 days of full access — unlimited supported reads plus confirmation-gated writes. After that, Free allows one Intervals.icu data pull per tool per UTC day, so a background calendar refresh does not consume the question you actually wanted to ask. Free is read-only.
Pro is $5 a month or $49 a year: unlimited reads and confirmed writes. Claude and Grok work on any paid plan of theirs.
ChatGPT is the one to check before you start. A custom connector needs a paid plan, and full MCP — the part that carries write tools, so planned workouts and wellness updates — has been limited to Business, Enterprise, and Edu workspaces during the beta. Reading your training can work on a plan where writing back to Intervals.icu does not. OpenAI moves this, so read their page on developer mode and MCP connectors for where it stands rather than taking our word for it.
Connect your training · How it works · Questions the charts do not answer · Support