Intervals.icu Connector (Official MCP) Beta testers needed!

Updated 2 November: Updated 2 November: season planning (weekly targets, training phases, races, sick, injured and holiday entries), changes to several calendar entries in one batch after one yes, logging how you feel, RPE and feel on a completed activity, and deleting a duplicate activity.

Current release: 2 November 2026. Ask your assistant whether you need to reconnect; it knows.

The official Intervals.icu Connector is ready for beta testing. It links your Intervals.icu account to your AI assistant so you can ask about your training in plain language, and it can put workouts on your calendar.

What it does

  • Reads your activities, intervals, fitness and form, wellness, best efforts, planned workouts and races, zones and thresholds per sport, and the comments on your activities.
  • Explains Intervals.icu’s own numbers. It never recomputes them: the classification and the figures are Intervals’, the explanation is the assistant’s.
  • Reports your sub-maximal fatigue test results, GREEN, within noise, AMBER or RED, with Intervals’ reasons.
  • Adds, moves and changes planned workouts and notes on your calendar, including their colour. Your assistant asks before each write; ask to see the plan first and it shows a preview without writing anything.
  • Deletes one planned workout or note at a time, today or later. It shows you what it will delete and only deletes after you say yes. Since 1 November you can also delete completed activities, after confirming a preview of what will be deleted.
  • Changes to several entries at once are shown as one list and applied after one yes.
  • Changes your sport settings (FTP, LTHR, max heart rate, threshold pace and zones) for one sport at a time, showing current and proposed values side by side and only after you say yes.
  • Changes apply from now on; past activities keep their recorded zones.
  • Logs how you feel each day (fatigue, soreness, stress, mood, motivation, sleep quality, injury and comments).
  • Sets RPE and feel on a completed activity, including submax tests, which then get their result.
  • Manages your season (weekly targets, training phases, races, sick and injured and holiday entries). Adding races and deleting events or activities must be confirmed. After you have seen what will be deleted or added.
  • Sick and injured entries can be dated back up to 30 days.

Thanks to the community MCP builders

This is not the first MCP server for Intervals.icu, and it would not exist without the ones that came before it.

@Marc Vilanova’s intervals-mcp-server (the “Community MCP server” thread here) showed what athletes tend to ask. The projects by hhopke, eddmann, notvincent, mrgeorgegray, willtheodore, like-a-freedom, fm4tt0s, derrix060, farhoodlabs, teoruiz, ricardocabral and revo2wheels solved things we studied and, where possible, built on: tool naming, how to shape activity rows for an assistant, where the API rate limit bites and other issues.

We looked at all of these tools before building. Thank you to everyone who put time in developing them. The official connector adds Intervals’ own OAuth and consent, the sub-maximal test classification from the backend, calendar writes and settings writes.

Who can test it now

  • Supporters only during the beta.
  • Claude, ChatGPT, Gemini & Grok are the assistants we have tested with. Other assistants (DeepSeek) that support remote MCP connectors have not yet been tested; if you try one, please tell us what happened :slight_smile:

Install

  1. In Claude: Settings, Connectors, Add custom connector.
  2. Name: Intervals.icu Connector. URL: https://mcp.intervals.icu/mcp
  3. Connect, sign in at intervals.icu and approve. The approval screen shows Calendar and Settings with Read and Update ticked; those are the write permissions. The connector only ever changes thresholds, heart rate limits and zones, one sport at a time, after you confirm. Claude may ask once per tool before using it. Choose “Always allow” and it stops asking.
  4. In Gemini: use gemini.google.com in a browser (I’ve found the desktop app’s sign-in stalls on Google’s side). Settings, Connected apps, add a custom app, URL https://mcp.intervals.icu/mcp, leave Client ID and secret blank. Start prompts with @Intervals.icu Connector, otherwise Gemini uses its own apps. Set each tool to “Always allow” and it stops asking.

Try these prompts

  • “How was my ride today? Do I seem fresh or fatigued?”
  • “What is my best 5-minute power this season?”
  • “How did my last submax test go?”
  • “Am I on track for my race?”
  • “Add an easy 60-minute ride on Saturday” then “Move it to Sunday”
  • “Add a red note on Friday saying I’m travelling”
  • “Delete Saturday’s ride”
  • “What would my power zones be at an FTP of 265?” then “Set it”

Good to Know

  • Activities that came in from Strava show date and id only; Strava’s terms don’t allow their data to be passed to AI tools. Garmin, Wahoo and other direct uploads are included.
  • The submax test needs the test turned on in your sport settings and an RPE entered after each test; the first three come back “insufficient data” while it builds your baseline.
  • “This season” means your Intervals season (the season start on your calendar).
  • It reads up to 12 months back, 6 months per question.
  • After an update you may need to reconnect to get new tools. If you connected before 1 November, sport settings changes will ask you to reconnect once; everything else keeps working.

Where this is going

Please do let us have your feature requests. This is what we have planned currently:

The connector today reads your data and schedules workouts. The next step is deterministic analysis: Intervals.icu doing the judgement on the backend so every assistant gives the same answer.

The Submaximal Fatigue Test is the first example, where the GREEN/AMBER/RED verdict and its reasons are Intervals’, and the assistant only explains them.

Coming next in that direction:
step-by-step comparison of a planned workout against what you actually did, a daily readiness read from your form, wellness and test results, and a workout library the assistant can draw on.

Torque targets in the workout builder are on the list too.

Further out, the same tools may get a home inside the Intervals.icu app, so you can ask questions without leaving it. None of this has a date; beta feedback decides the order.

Feedback that will help

Questions the assistant answered badly, questions it could not answer, and tools you wish it had. Reply here, or use the feedback tool inside the chat (prompt: “send feedback to Intervals.icu”) which reaches us directly.

Privacy

Your data goes to the assistant you connect and the company behind it, under their terms. Intervals.icu does not see the conversation.

Disconnect at any time from Settings, connected apps. The consent page before sign-in says the rest; the Intervals.icu privacy policy is here.

11 Likes

Successfully connected it using Gemini but haven’t done more than show my planned workouts and my one completed workout from today so far.

Edit: feedback so far:

  • Always wants confirmation of any writes. As Gemini also insists on confirming any MCP tool calls, I spend more time clicking “ok” than i do actually deciding what to do.
  • Don’t appear to be able to delete scheduled workouts or notes
  • Can’t change the colour of notes

Have to stick to WorkoutContext for now

1 Like

Thanks for letting me know, I’m firing up Gemini now and will look at all of this.

1 Like

Let me know if you need any more details or want me to test anything else. The constant confirmations (which is in part a Gemini thing, I believe) are annoying, but the missing tooling would be the blocker for me (regardless of the LLM and client)

I’ll try it using an open source client later with a couple of OpenRouter models and let you know how it goes.

1 Like

can you remove the connector and add it again? I believe all your issues are addressed now.

In the connector settings you will need to select ‘always allow’ for all the tools - I cannot find a way to have them set to ‘always allow’ by default - you will need to select this yourself.

The additional connector confirmations have been removed now. I can see how that would have been annoying :slight_smile:

Delete is also now available, one planned workout or note at a time, today or later. The connector shows what it’ll delete and waits for your yes, even if Gemini is set to always allow. Completed activities stay untouched.

Note colour works, by calendar colour name or hex.

1 Like

Much better, thanks. Although still seeing lots of confirmations - deleting a note involved being prompted by gemini, then the intervals confirmation, then prompted by gemini again.

Re-adding the connector resets Gemini’s permissions to “Always ask” - I think that’s what is happening for you. The new tools arrive that way too - as ‘always ask’.

In Settings, Connected apps, Intervals.icu Connector, set the Write/Delete group to “Always allow” and a delete becomes just the one check from us.

I’ve just tested it that way: one ‘yes’ confirmation and done.

It doesn’t look like that for me, either in the desktop app or the web app

In the web app:

Desktop is the same (Windows)

In contrast, I only have to approve once using WorkoutContext.

1 Like

I’m excited to test. I’m a full time coach, though, and am in the process of bringing all athletes over to Intervals.icu, so have over a dozen so far. Will this recognize the athletes as well? Or just my training.

Thanks!

2 Likes

One case for the planned-vs-completed comparison: what happens when the activity exists but its details aren’t available? A Strava entry with just a date and ID shouldn’t end up looking like a missed session. Will the tools explicitly return “unable to assess” in that case, so the assistant doesn’t have to guess?

I’ve just tried it in Jan using an older GLM variant and it seemed ok.

1 Like

i use it but gets your MPC a Plugin in the future?

I also use Montis as the connector could not write workouts planed by ChatGPT

1 Like

yes we have a roadmap to being listed as an official connector in all major LLM’s if that is what you mean - ChatGPT, Claude etc.

I think I see your issue trying to plan your season? not sure if it was you, but we have error reporting to PostHog and it sounds like it picked up the refusal (using GPT 6?) to plan your training block or maybe full season with load / distance targets about 20 minutes ago:

This is the most interesting blocker yet and I’ll work on this tomorrow.

Yes, a Strava-sourced activity should already come back marked as withheld under Strava’s terms, not as missing - let me know if you get a different response.

so, perhaps more relevant to your query, in the case where an assistant compares a planned session against the activity list, the matching day carries a row that says it is real and withheld, not an empty day.

I would like to see additional fields to store athlete data, such as muscle soreness, illness, some specific responses to training. Like AI figured out a fact once that significant HR drop together with high RPE shows athlete’s fatigue - and stores that in facts, so that next time this or other AI athlete will be using was aware of that. I store facts like these locally and use them every day. Second - maybe AI guides/skills telling him how to analyze training session, or a week, or morning check-in and night monitoring data could be stored on intervals too? So that user could switch AI providers and get the same reports, and should not pay for additional tokens to AI every time teaching a new session how to read and interprete data. I created 3 skills for myself and I store them locally, but it’s not an option for most users.

1 Like

I’ve reproduced your issue by removing ‘always allow’ from the tool options.

Delete runs in two steps: first it shows you exactly what it will delete, then it deletes after you say yes.

That check is deliberate and as things stand, I think we will have to keep it. What is the reason? Any ambiguous requests like “delete Saturday’s ride” can match more than one thing, and a delete can’t be undone, so we want you to see the exact item first.

Your issue is that extra prompts come from Gemini asking permission before each of those two steps. With the delete tool set to “Always allow” in Gemini, you get just our one confirmation. I tested it both ways this morning.

Your settings page looks different from mine: mine has an “Always allow / Always ask” choice per tool, yours only shows ticks. Two things to try:

  1. When Gemini’s permission card appears in the chat, choose Always allow rather than Allow once. Mine offers it there too (screenshot).
  2. Open the connector’s settings page and give it maybe 30 seconds. mine takes just under ten seconds to show the permission choices.
  3. If you still only see ticks, remove the connector and add it again, then check once more.

If neither works, can you tell me whether it’s a personal or work Google account, free or paid, and which country? Then I’ll know whether it’s something on Google’s side for your account.

Custom fields already exist.
Search for these in wellness.

My app, AutoMate, looks for missing data in wellness and activities. It then sends you a daily prompt to complete the subjective data. It allows you to select what’s important and ignore what’s not.

A new version will be released soon with much more functionality.

1 Like

@kilka thanks, this is useful, and thanks @Gerald for pointing to the custom wellness fields; that’s the right home for soreness and things like that.

  • How you feel: the connector can already log this to your wellness (“log that my legs are sore today”). Proper Sick and Injured entries on the calendar are being tested now.
  • Stored facts: we’d rather not store an assistant’s conclusions in Intervals. They can be wrong, and the next assistant would treat them as fact. Our direction is Intervals doing the judgement itself: the submax test’s GREEN/AMBER/RED and its reasons are the first example. Your own observations fit best in activity comments and wellness, which the connector reads.
  • Shared guides: yes, we plan to build them in, starting with a week review and a morning check-in, so any assistant gets the same instructions without you paying to teach it each session. No date yet on that, but I expect to make rapid progress now that we have user feedback :slight_smile:
1 Like

@CoachMS thanks, very cool that you are moving your athletes over.

Right now the connector only reads the account that signs in, so it’s your own training, not your athletes data that is read.

However, coach access is on our list. It needs decisions on permissions and privacy on the Intervals side first, but I expect to make progress soon on this. We are keen to push this forward.

It would help to know what you would use it for. Reading athletes’ data and comparing them? Reviewing a week? Scheduling workouts for them? This informs what we build first.

Once coach access is in place, I think the work already planned will make coaching with the connector quite effective: An Intervals workout library, deterministic analysis with the connector - eg: comparing a prescribed session to the work done in the athletes file, matching the efforts and intervals, plotting longitudinal analysis etc - these are all features that are tabled to be built.

1 Like

1: I just get deny and allow, not always allow

2: Still the same after several minutes

3: The same after removing and re-adding (as are other MCP connections I have)

It’s a personal account, paid (Pro), UK

Gemini is also of the opinion that there’s no way to do Always allow:

1 Like