AskMyCoach.app - free powerfull MCP connector for intervals.icu (for athletes, coaches, and teams). Connect and forget :)

Hello everyone,

My name is Iaroslav, and I’m an athlete from South Carolina. I originally built AskMyCoach.app tool for myself and my school track & field team because using a local MCP server wasn’t very practical - especially since I do most of my training analysis on my phone.

The app currently includes 38 different tools to help athletes analyze their training and help coaches review athlete performance and progress (no accounts needed). You can read data from intervals.icu, write data back to intervals.icu, create weekly plans, analyze races, and more.

The MCP can be used with any AI platform that supports MCP, including examples like Claude and ChatGPT.

What it does

AskMyCoach.app does one simple job - it translates AI requests into calls to the intervals.icu API. Nothing overly complicated. Just a simple and useful UI designed to make everyday workflows easier for both athletes and coaches.

The real value is in the tools themselves and how everything was optimized. My goal was to create a system that provides enough information to AI models while minimizing token usage and reducing operational costs.

Security

I understand how important security is in a project that has access to sensitive training data. That’s why security was one of the core pillars of the project from the beginning. The entire architecture was designed with this in mind, and every release goes through a full set of security audit tests.

Privacy

No analytics. No tracking. No ads. I don’t save personal information or copies of any data from intervals.icu (except the minimum required for authorization and short-term caching). More details: Privacy Policy – AskMyCoach

Pricing

Free - I have no plans to monetize it. I wanted to pay it forward for great service provide by David and make my service free to use for the sports community around the world.

Pilot

At the moment, sign-ups are invite-only for the next couple of weeks while I test how the current architecture handles load and usage patterns.

Invite code - Z2RC62BTBGLM

I’d love feedback - especially on UX and the overall experience. Tell me if you see needs in new tools. Thanks!

4 Likes

I’m also thinking about publishing this server as an open-source project. It is fully hosted on the Cloudflare stack, so deployment is a super simple process, and the free tiers of the Cloudflare stack are more than enough for personal use or even for a large team.

The main difference would probably be using API tokens instead of OAuth (so do not overload app catalog on intervals.icu), but I already support those option.

2 Likes

Hi @Iaroslav — first, thanks for building the AskMyCoach Intervals.icu integration. I was able to do a ChatGPT setup, thank you. I got a workout report generated that worked nicely but when I got a workout plan created and pushed to intervalsicu, the graphical representation was missing on intervalsicu. I asked chatgpt to explain the issue for you to understand (I’m not a tech guy so needed help here​:blush:). Here is the note from ChatGPT for you to understand the issue:

While creating structured running workouts:

The `add_or_update_event` endpoint appears to strip nested pace target metadata from `workout_doc.steps[]` during creation/update. As a result:

* interval durations/reps are preserved

* but pace targets (`secs/km`, `%pace`, etc.) are removed

* Intervals.icu then renders the workout without graphical interval bars, color coding, or structured targets

Example: Existing workouts created through other platforms retain structures like:

* `pace.units = “secs/km”`

* `pace.start`

* `pace.end`

* nested repeat blocks

But workouts created via AskMyCoach MCP get simplified to duration-only steps. This affects:

* visual interval rendering

* watch sync quality

* structured execution cues

Would it be possible to expose/preserve the full `workout_doc` schema when creating/updating events instead of flattening the structure? This seems mainly like a serialization/parsing limitation in the helper layer. Hope this helps.

Thanks for the example. I was able to update it following the native way of entering data, but there is still no visual interval rendering. At the same time, there is no visual interval rendering even for the same training session that I built using the internal intervals.icu builder. With HR works just fine btw.

I’ll look for more examples with pace ranges, but do you have any workouts where visual interval rendering is actually showing up?

Yes, the below one in the picture is the workout plan that I created through montis icu ChatGPT and the the one above is actual workout. Not sure if this is what you were looking for…

1 Like

It takes many hours of TDD, but the latest updates passed all my tests. Issues could still exist, but I need more use cases to uncover them. :slight_smile:

1 Like

Just fixed an issue with tokens. :slight_smile: If you saw msg like on screenshot - try again.

Performance testing is going better than I expected. I’m still waiting to hear whether anyone needs additional features or has any bug reports. :slight_smile:

Registration is avalible w/o invites :slight_smile:

Today I created about 60 test events for running and 60 for swimming. All of them were created successfully, as expected. I’m currently working on optimizations to reduce token consumption. I somehow overlooked bulk event upload, but it has now been fixed, and a new tool is now available. :slight_smile:

Important: If some data is not visualized correctly, make sure you have set up all necessary basic information on intervals.icu/settings — check your pace, power, and training zones for each sport you use. You can ask an AI assistant to help you calculate these values.

I’m looking for options to create a tool that can run pre-flight checks.

After finishing today’s 6-mile Lowcountry Splash openwater swimming race, I realized that I don’t have enough tools to analyze swimming. So…

  • New MCP tool: get_swim_cadence_trends — aggregated stroke rate and efficiency metrics across multiple swim sessions in a single call; replaces 10× stream fetches with one compact response (~98% token reduction)
  • Swim metrics in activity summariesget_activities with summary_only=true now includes a swim_metrics object for Swim and OpenWaterSwim sessions: avg/max stroke rate (spm), avg distance per stroke, and swolf (pool only) — no extra API calls
  • Downsampled stream resolutionget_activity_streams gains a resolution parameter (10s / 30s / 60s); a 45-minute swim at 60 s resolution returns 45 points instead of 2700

v1.1.0

June 2026

  • New MCP tool: get_swim_cadence_trends — aggregated stroke rate and efficiency metrics across multiple swim sessions in a single call; replaces 10× stream fetches with one compact response (~98% token reduction)
  • Swim metrics in activity summariesget_activities with summary_only=true now includes a swim_metrics object for Swim and OpenWaterSwim sessions: avg/max stroke rate (spm), avg distance per stroke, and swolf (pool only) — no extra API calls
  • Stream caching — activity streams are now cached indefinitely in D1 (streams are immutable after sync); repeated requests for the same activity return in under 10 ms
  • Downsampled stream resolutionget_activity_streams gains a resolution parameter (10s / 30s / 60s); a 45-minute swim at 60 s resolution returns 45 points instead of 2700

AskMyCoach v1.1 — automated athlete onboarding and skill pack distribution :tada:

Hey everyone! Pushed a big update to askmycoach.app today. The short version: AI can now onboard a new athlete in one conversation, and distribute the full coaching skill pack without anyone leaving the chat. :partying_face:


The problem this solves

Until now, setting up a new athlete meant a lot of manual steps: copy FTP from intervals.icu, calculate zone boundaries by hand, look up the race calendar, figure out HRV baselines from 30 days of data, fill a template, package a skill file, upload it to AI settings. Easy to get wrong, annoying to repeat for each athlete.


What’s new

1. Auto-generate an athlete profile from live data

Just tell AI who you’re adding:

“Add new athlete Ross, iXXXXXX, 25yd pool, Wahoo KICKR, Garmin 965”

Claude calls the MCP server, pulls live data from intervals.icu, and hands back a complete filled profile:

  • Bike zones computed from actual FTP (not eFTP — that bug was common)
  • Run HR zones from LTHR
  • Swim pace zones from CSS, converted to the right units for the pool type
  • HRV thresholds calculated from the last 30 days of wellness data (green / yellow / red / rest)
  • Current training phase from CTL trend + race calendar (base / build / peak / recovery)
  • Technique flags: low cadence on the last run, elevated decoupling on the last ride, no recent swim

You review it, say “looks good” (or fix anything inline), and AI packages it into a .skill file for download.

Total effort: one sentence + one confirmation + one upload.

2. HRV thresholds on demand

New tool: suggest_hrv_thresholds — pulls 30 days of HRV data and returns ready-to-use thresholds:

green  ≥ 55
yellow  49–54
red     42–48
rest    < 42

Confidence rating included (high / medium / low based on how many data points exist). Useful when an athlete’s baseline shifts after a long training block and you need to recalibrate.

3. Training phase detection

New tool: get_periodization_phase — reads CTL trend and the upcoming race calendar and tells you where the athlete is:

“CTL 68, building at +0.4/day, 62 days to Ironman 70.3 Lahti → Base 2. Recommended strength phase: MS.”

Useful as a session-start call in the coaching skill so AI always knows the training context without you having to state it.

4. Install the full skill pack without leaving the chat

Previously you had to download each .skill file separately and install them one by one. Now:

  • get_skill — loads any skill inline for the current session, no install needed
  • download_skill — get a single .skill file
  • download_skill_bundle — get all 8 skills in one ZIP, install once
  • package_athlete_profile — after reviewing the generated profile, package it into an installable file right there in the conversation

Also: when you first connect askmycoach to Claude, the server now sends a greeting that proactively offers to install the skill pack. Claude asks once, you say yes, it hands you the bundle.


Available skills in the pack

triathlon-coach · bike-workout · run-workout · swim-workout · strength-workout · activity-analysis · triathlon-nutrition · athlete-template


Links

Happy to answer questions. What features would be useful next? :innocent:

1 Like

It is always great to see how other apps are built.

1 Like

I do the same - analyzing other apps and looking for things that could help me train better :innocent: . At the end of the day, even though I’m trying to share it with others, the first purpose of my app is to help me with my own training.

Another test - two weeks of triathlon exercises using Claude + AskMyCoach.app

New Feature for Coaches - you can now import your athletes directly, with no need to invite them to AskMyCoach.app. Just keep in mind that they’ll receive a notification letting them know you plan to use AI to analyze their data.

Hey Iaroslav,

Just wanted to drop a quick note of appreciation for AskMyCoach — it’s been genuinely excellent.

A bit of context: I had previously built my own local MCP connector to avoid downloading CSVs from Intervals.icu, but it was limited to the desktop version of Claude. Since switching to your connector three weeks ago, I can now pull my training data and have full coaching conversations from anywhere — including on my phone. That’s a huge quality-of-life improvement.

The depth of tools available is impressive, and the integration with Intervals.icu feels seamless. Please keep developing and improving it — there’s clearly a lot of potential here, and athletes like me are genuinely benefiting from it.

Thank you for building this!

1 Like

Thanks, Aemux! It was one of the reasons why I built this tool - I wanted to have access to my training data with AI from my phone, anywhere, anytime :innocent: . And I’ll definitely continue improving it.

My team and I use AskMyCoach every day, and every improvement you see comes from real-world use. Over the last two months, I’ve learned a lot about how Intervals.icu works, especially its workout builder :laughing: .

And thank you so much for your feedback. There are more than 100 users actively using AskMyCoach now, but I haven’t received much feedback or any complaints (except for one early one, which was super helpful). It’s both fascinating and a little scary when it’s so quiet .

If there’s something you’re missing or you run into any issues, just let me know.

BTW - AskMyCoach is now visible to all Intervals.icu users on the settings page - I just forgot to message David earlier to activate it. :joy: