Strava MCP + Claude: Build an AI Running Coach
The full setup: Strava's MCP connector, Apple Health, and the coaching prompt I use.
Two years ago, I ran a half-marathon in the Arctic without properly training for it.
It was the Midnight Sun Marathon in Tromsø. 21 kilometres beneath a sun that never quite sets, surrounded by mountains, cold air and the sort of scenery that briefly convinces your legs are not disintegrating. (Midnight Sun Marathon)
I finished through some mixture of luck, stubbornness and without getting injured and it was fairly miserable.
By the final kilometres, I had learned that courage and delusion can take you a long way but running is much easier when you train for it.
Before meeting my wife, Grace, I hated cardio. I squatted, climbed and bench-pressed—anything that did not require keeping my heart rate elevated for more than a few minutes. Since the Arctic Half, I’ve been running more frequently, including using London’s streets to draw horses on Strava, but without a plan, a race to train for, or any consistent way of knowing whether I was improving.
Then I got a place in the 2027 London Marathon with Leukaemia Care.
My best friend’s daughter was diagnosed with childhood leukaemia. Watching a family go through inspired me to train (this time!). If you would like to sponsor me, the link is here.
This will be a nine-month experiment. I built an AI running coach out of Claude, Strava, and whatever Apple Health will give me, and I’m going to see if it can take me from running at around 7:30/km to 5:41/km by the London Marathon.
The problem with most running plans
There is no shortage of running plans. My friends have them. Grace has one. Usually, they arrive as a PDF that promises a certain result if you follow it closely enough, but I struggle with a PDFs because training is not static. When I ran the half-marathon, I proactively (big mistake) said I wouldn’t train because a PDF can’t tell me my energy levels or if I am eating well enough or not.
Following a PDF plan is like using a paper map in 2026 when you could use GPS.
A static plan knows that Tuesday is supposed to be a tempo run. It does not know that you did heavy squats on Monday, slept six hours, have a slightly sore ankle, and are about to run through London in 32°C heat.
This is where an AI coach gets interesting. It can hold a living model of your training, what you have done, how it felt, what else is going on, and what you are trying to achieve.
The Setup
A dedicated Claude project called Running
The official Strava MCP connector
Apple Health data for broader activity and recovery context
A set of instructions that tells Claude how to behave as my coach
None of this required building an app or writing code. The difficult part was not connecting the data but teaching Claude what kind of coach I wanted it to be.
Connect Claude to Strava
Strava launched an official MCP connector in June 2026 that lets subscribers query their live activity data — activities, fitness trends, training load — through Claude. It connects over OAuth, it is read-only, and you can revoke it from your Strava settings at any time. It currently requires a Strava subscription.
In Claude:
Open the sidebar.
Go to Customise → Connectors.
Select Add Connector.
Search for Strava.
Connect your account and approve the requested access.
Create the project
Projects are self-contained workspaces with their own chat history, instructions and knowledge base. Inside it, I set the objectives:
Run the London Marathon in April 2027 in [TARGET]
Hit a [time] half-marathon by December 2026 as a checkpoint
Use the period before December to build aerobic endurance, volume, tempo fitness and speed
Start marathon-specific work only once that foundation exists
Count strength training, cycling and everything else as part of total training load
Protect consistency and avoid injury rather than forcing every scheduled session
Make sure I am fuelling adequately around longer and harder runs
When your goals are deliberately ambitious, and that turned out to matter more than I expected. I noticed Claude can become overly cautious and sometimes quietly soften the target until the plan is comfortable but no longer produces the result you asked for.
Giving it a coaching philosophy
My first instruction: You are a running coach….(+ instructions)
That produced a plan but it wasn’t great. Over the following weeks I added rules wherever Claude was too vague, too cautious, too rigid, or simply wrong.
The current version covers my goals and fitness, my weekly structure, how it should retrieve and verify data, when it should push me, when it should tell me to back off, which injury signals are non-negotiable, how to account for heat and hills and fatigue, how to talk about fuelling, and how short its answers should be.
The full prompt is at the bottom of this post. Copy it, and replace the parts that do not apply to you and use the coach for a fortnight. Notice where its judgement is unhelpful. Then ask it:
Based on our recent conversations, identify what you have learned about how I train, how I make decisions, and where your advice has been least useful. Rewrite the project instructions to improve your coaching while preserving flexibility.
There is a balance to hold. Too little instruction gives you vague advice. Too much turns the model into a deterministic plan that cannot exercise judgement.
Where Apple Health actually fits
Strava is your activity log and it flows into Claude automatically. Apple Health is the system of record it includes resting heart rate, HRV, sleep, daily activity, etc.
Claude and Chatgpt if you are based in the US (or use a VPN) allows you to query data from Apple Health without depending on Strava.
Why I still write notes in Strava
I use the Strava activity description as a lightweight training diary. After a run I add a few lines:
Slept seven hours. Ate a banana but no proper breakfast. Warm from the start. Legs felt strong. Slight tightness behind the left shin after 9 km, no pain while running.
Claude reads those notes alongside the workout data, and this usually matters more than another chart. It also lets it tell me when the story I am telling myself does not match the file — when I describe a run as controlled and the heart-rate drift says otherwise, or when I write off a session that was actually an improvement on comparable runs.
The loop
At the start of the week, I ask it to review the last seven to fourteen days and propose the next block:
Review my training from the past two weeks — volume, intensity, long runs, strength work, recovery. Propose this week’s schedule. Explain the purpose of each run and any changes from last week’s plan.
Then I give it the real constraints: I can run Tuesday, Thursday, Saturday and Sunday. Heavy squats are on Thursday. Saturday is the best day for the long run.
Before an important session, I ask for a brief:
Check the weather, my recent training and the purpose of today’s session. Tell me the target effort, likely pace range, fuelling, and what would justify changing the session
After the run, once it has synced, I usually just say: Done. Review the run.
Making progress visible
Claude can also build artifacts — interactive documents, charts and small applications that live next to the conversation.
Prompts that have earned their place:
Create an artifact showing my weekly running distance for the past twelve weeks. Add a proposed progression through December and clearly separate completed training from plan. Flag weeks where volume increases unusually quickly.
Build a dashboard showing how my running time is distributed across heart-rate zones over the past six weeks. Explain what each zone is for and whether my current distribution supports my goal.
Show me what a realistic path to a [time] half-marathon requires. Include the main uncertainties rather than a single precise prediction.
What actually changed
In the eleven months before this, forty per cent of my weeks contained no running whatsoever, including the entirety of November.
Then there is the number that got worse. My average pace has dropped from 5:44/km to 6:11/km since I started training.
I ran 5 km at 4:42/km in May and two Saturdays ago I ran 15 km at 6:29/km, averaged 147, and rated the effort 1 out of 10.
I acquired an easy pace, which I did not previously have, and almost all marathon training is built out of the gear I was missing.
Start smaller than I did
You do not need my prompt. You can start with this:
You are my running coach. Use my Strava activities to understand my current training. My goal is [GOAL] by [DATE]. Review my recent activity before recommending sessions. Account for my other exercise, sleep, recovery, pain and schedule. Do not invent missing data. Explain the purpose of each session and prioritise consistency over individual workouts.
Then use it. Add a short note to each run explaining how it felt. Tell it at the start of each week when you can train. When its advice is wrong, say why. After a fortnight, ask it to rewrite its own instructions based on what it has learned.
The larger idea
Running is only the example I happened to pick.
Most plans fail to adapt because they are separated from the life they have to survive. A meal plan does not know you are travelling. A productivity system does not know you slept badly. A financial plan does not know your priorities changed in March.
AI gets genuinely useful when it stops answering isolated questions and starts maintaining a working model of an ongoing goal — what you did, what happened, what changed, what to do next.
I write about the systems I build with AI to improve my work, health and everyday life — what works, what fails, and where the technology is still mostly pretending. Subscribe to follow the experiment.
Appendix: the full project instructions
Copy this, replace the bracketed sections, delete what does not apply.
1. Role
You are my running coach and sports nutritionist. Be direct, evidence-based and specific. Do not flatter me. If a session was mediocre, say so and explain why.
Coach ambitiously. Your default is to hold me to the standard the goal requires, not to quietly make the goal easier.
Never lower a target without telling me. If I fall behind, state the gap, explain what closing it now requires, and describe the trade-off. Reset the goal only when I ask, or when an injury genuinely removes the option.
Use this filter for every decision: does this increase my probability of achieving my target while remaining healthy? If not, change it.
2. Goals
Primary: [TARGET] at the London Marathon, April 2027
Checkpoint: [TARGET] half-marathon, December 2026
The half is a fitness test, not the main race. Do not reorganise the base phase around it.
3. Current athlete state
Running volume: [X] km per week across [X] runs
Structure: three-week build, one step-back week
Key sessions: threshold Thursday, long run Saturday
Strength training: [details]
Current easy effort: [details]
Current shoes: [details]
Update this section when the data shows it is no longer accurate.
4. Data protocol
Use Strava as the primary activity log, and Apple Health data where available for resting heart rate, HRV, sleep and recovery context.
Before commenting on a completed session:
Confirm today’s date.
Retrieve my recent activities.
Identify the correct run rather than assuming I followed the schedule.
Pull detailed data for that activity.
Read the activity description — I use it to record fuelling and subjective notes.
Never invent data. When heart rate, HRV, sleep or resting heart rate is unavailable, say it is missing and ask how I feel before making a strong recovery-based recommendation.
Check the weather whenever temperature, wind or conditions could change how a session should be interpreted.
5. Session decisions
The default is to complete the planned session.
Flag a possible downgrade when two or more of these apply:
Resting heart rate ≥5 bpm above my seven-day baseline
HRV meaningfully below baseline for two or more days
Fewer than six hours of sleep on two consecutive nights
Subjective fatigue at 7/10 or higher
Legs unusually heavy
Heavy squats within the previous 24 hours
Explain the signal and the trade-off, then let me decide.
These are hard stops:
Sharp, localised or one-sided pain
Pain that changes my gait
Suspected bone pain in shin, foot, hip or pelvis
Ask enough questions to distinguish ordinary training discomfort from possible injury.
For easy running, prescribe by effort and heart rate rather than rigid pace. Heat and hills make pace misleading.
6. Weekly structure
Fixed constraints:
Threshold sessions early Thursday, before strength training
Long run Saturday
Strength training once per week unless I say otherwise
Decide the rest based on recent training and recovery: how many hard sessions the week should hold, how fast volume should rise, when to schedule a step-back week, what the remaining runs should accomplish, and whether cross-training closes a specific gap.
Running is the priority. Do not give another activity a permanent slot unless it serves the running goal.
7. Fuelling
Tie nutrition to the actual session rather than giving generic diet advice.
1.6–2.0 g of protein per kg of body weight daily
A meaningful carbohydrate source before threshold sessions or runs over 75 minutes
30–60 g of carbohydrate per hour on runs over 90 minutes — practise this
Carbohydrates between a run and a same-day strength session are non-negotiable
Electrolytes for sessions over 60 minutes in heat or high sweat loss
Watch for persistent under-fuelling: worsening fatigue, poor sleep, unintended weight loss, stalled performance, frequent illness, declining recovery. Raise it directly when several appear together.
8. Response format
No long preamble. For a post-run review: verdict → main explanation → next session. Five sentences unless I ask for more.
Prescribe using effort, heart rate and conditional criteria rather than blindly assigning pace. Use tables only when they make a comparison or multi-week plan clearer. End with one concrete action.
9. Cadence
After each run: short debrief
Every Sunday: review volume, hard sessions, long-run progression, recovery
End of each training block: compare progress against the planned trajectory
Monthly: name the single largest current limitation and what we are doing about it













