Sitemap

My AI Running Coach: Building a Personalized Plan Beyond Garmin & Strava

4 min readApr 26, 2025

I am a beginner runner myself and I have been training for races and fun for a while now. I have learned a lot from my experiences and I want to share my knowledge with others who are just starting out.

Most of the runners agree that training plan is important, at the same time they also agree training plan should be personalized, achievable and realistic. There are tons of coaches that specialize in different types of running and can help you find the right training plan for the specific goals. Even Strava, Garmin Connect and other platforms have the coaching feature that tracks other metrics and based on that provides personalized suggestions for the week. I’ve tried both of them, even Garmin daily suggested workout (DSW) and they work fine.

I had 2 concerns:

  • Didn’t want to hook to any specific platform.
  • Didn’t want too generic suggestions

Let’s break down these concerns

While using Garmin you might have noticed that the daily suggested workouts(DSW) are based on your fitness level, how well you slept and etc. Jumps a lot and during my marathon preparation I have never got longer run more than 15km and it got reduced too because of some my wellness metrics somehow. So I started using other plans alongside.

Garmin Coach on the other hand is very static. It’s not flexible enough to adapt to changing fitness levels or goals.

Plus, the recent changes in Garmin show that DSW with target calendar event is kinda Garmin Coach.

Strava plan is also static and generic mostly.

Hooking to any specific platform is another huge issue. Recently my Garmin watch software broke and needed something to continue training and considering switching from Garmin to Coros. Then realized how much I relied on my watch and Garmin for my data. Fortunately I was syncing everything to intervals.icu — amazing platform.

Personalized plan over weeks with constant feedback and adjustments

You will see tons of suggestions on the internet to use ChatGPT or any LLM for generating training plan, it is not that trivial though. Any LLM will just output generic plan in response toa simple prompt. What you need to do is to prompt it with your fitness level, goals, and other relevant information. You can also use a template or a structured format to guide the LLM in generating a personalized plan.

What can be improved?

Let’s take Claude for now as it has a support for MCP servers and it at this moment of writing Claude 3.7 Sonnet is one of the most effective after Gemini Pro 2.5

First we need to prompt LLM with the recent data from activities, wellness data, goal, shoes, training days and ask for a plan.

The trick is to feed activities at the end of the week as input and ask LLM to tune the plan based on the feedback received from the user.

To make the whole workflow easier we can use MCP servers that can retrieve data and process it in an accessible format for LLM.

What is MCP sever?

Lightweight programs that each expose specific capabilities through the standardized Model Context Protocol. Local Data Sources: Your computer’s files, databases, and services that MCP servers can securely access.

Here are caveats:

  • Garmin Connect API is a headache and especially to get an access to it.
  • Strava’s new policy on data usage is horrendous and often asks reauthentication

But on the other hand intervals.icu is a really nice platform with a very easy API. We can collect all our activity and wellness data from Garmin -> intervals.icu and then access it from MCP servers.

Everytime you prompt Claude, it can automatically fetch the data using MCP server from intervals.icu, process it and generate the output.

Like this we can have a personalized training plan that is getting better based on the weekly activities.

Example of the prompt:

Act as an expert running coach specializing in ultramarathons and adapting plans based on athlete feedback.
Goal: Prepare me for a trail ultra marathon: 69.08 km distance, 4538 m total elevation gain. The event has a 22-hour time cap.
Event Date: [Insert Race Date - e.g., 3 months from today]
Intermediate Races: I have two half-marathons planned before the main event:
- 27.04.2025, Trail Half Marathon
- 15.06.2025, Road Half Marathon
Training Availability: I can realistically train 6 days a week, aiming for 1 rest day. I also incorporate 2 strength training sessions per week (let me know where they best fit).
Current Gear: My primary trail shoe is the Hoka Speedgoat 6.
Data Source: Use the MCP server to fetch my last 10 completed activities from intervals.icu. Also, fetch my wellness data (Sleep, HRV if available) for the past 7 days from intervals.icu.
Output Format: Provide the training plan for the upcoming week (Week [X] of [Y]). Present it as a table AND also provide it in CSV format for easy copy-pasting. Include workout type (Easy, Tempo, Long Run, Strength, Rest), duration or distance, and target intensity (e.g., heart rate zone, pace, or RPE - Rate of Perceived Exertion).
Feedback & Adaptation: This is a weekly process. Today is Sunday. Use the fetched activity data from the past week to assess my performance and adjust the plan for the next week accordingly. Briefly explain why you're making any adjustments (e.g., "Increased long run slightly due to strong performance last week," or "Added an extra easy day as HRV suggests accumulated fatigue")

--

--

Merab Tato Kutalia
Merab Tato Kutalia

Written by Merab Tato Kutalia

Android GDE, Software Engineer, specializing in Android

No responses yet