Last week I published four thousand words trying to work out whether the UTMB Index is fair. Coefficients. Standard deviations. A metaphor about exchange rates. It was, I think, a good piece. It was also the intellectual equivalent of doing your taxes in public.
So this week I wanted to remember that data can be a toy, not just a courtroom. I wanted to mess about.
The excuse arrived at the perfect moment. On June 1st, Strava quietly shipped something called an MCP connector — and I’ve spent the last few evenings doing the most gloriously irresponsible thing a running nerd can do: I plugged my entire training history into an AI and started poking it to see what fell out.
This is the story of the five things we made. None of them will make you faster. All of them made me grin like an idiot. Let’s go.
First — what on earth is “Strava AI”?
Forget the acronym. Here’s the whole thing in one sentence: it’s a plug between Strava and Claude.
You flip a switch in your settings, and suddenly an AI can read your Strava — every run, every heartbeat, every metre of climb — and answer questions about it in plain language. “How much do I slow down per 100 metres of climbing?” “Which of my shoes is closest to death?” You ask like you’d ask a knowledgeable friend, and it goes and reads the actual data to answer.
Two things matter, and they’re both reassuring. It’s read-only — it can look, but it can’t touch. It cannot delete a run, edit a time, or post anything. And it’s yours — you turn it on, you turn it off, nobody else gets in. It reads your data live, in the moment you ask, rather than from some file you uploaded and forgot about.
That’s it. That’s the magic trick. Everything below is just me abusing that one superpower.
The one grown-up thought before we play: it’s a data layer, not a coach
I have to say this once, because it’s the single most important thing to understand — and then I promise we’ll go and have fun.
The people who’ve tested this seriously all land in the same place. Marc at NUA Coach — who, full disclosure, is building a competing AI coach — put it as cleanly as anyone: “the analysis is spectacular. And it’s still not a coach.” And Scott Dunlap, a trail runner who runs the connector alongside a custom AI coach he built for his own Ironman training, nailed the distinction: “it’s a data layer, not a coaching layer. The app tells you what happened… A custom coaching system tells you what to do about it.”
Here’s the distinction in human terms. A coach tells you what to do next Tuesday. This thing tells you what already happened, with a clarity you’ve never had before. It waits for your question — it never nudges you. It doesn’t hold a running model of your fitness in its head. It’s a brilliant analyst who has read every page of your training diary and forgotten nothing, and who will never, ever text you first.
Which is exactly why it’s the perfect toy. A coach has opinions about what you should do. A data layer just hands you the box of Lego and walks away.
And I’m glad to take that box — because the other job, the one that actually decides what I do next Tuesday, already belongs to someone. A human. My coach, Kai Moser at Two Peaks Endurance, reads the context no activity file can hold: the bad night’s sleep, the brutal work week, the niggle I never logged, the race that’s still three months out. He’s the one who knows when to push and, far more importantly, when to hold me back. Two Peaks coach the likes of Hannes Namberger and Rosanna Buchauer, so I know exactly whose hands I’m in — and nothing on this page, least of all an AI, is coming for that job. The data layer is the sharpest analyst I’ve ever had. Kai is the coach. You want both, and you should never, ever confuse the two.
So I built five things.
No. 1 — Run to the Beat 🎵
Match my footsteps to the music.
Here’s a thing your legs do that you’ve probably never measured: they have a cadence — a steps-per-minute rhythm. Songs have a rhythm too, measured in BPM. The obvious, slightly insane idea: what if you matched them, so every footstrike lands on a beat?
So I asked Claude to pull the cadence data out of my actual runs and find songs whose BPM lock onto my step rhythm. It built me a little matcher — pick a run, and it tunes itself to the tempo of that run and hands you a playlist that fits.
The first draft was a disaster in the most useful way. It confidently served me a stack of perfectly-on-tempo songs by… Justin Bieber. Technically correct. Spiritually bankrupt. (I am not, it turns out, a Bieber-at-154-BPM guy.)
So I did the thing you’re supposed to do with an AI: I pushed back. I pointed it at one of my own playlists — “Downhill Rock” — and it went and pulled the real tracks that sit in my running zone. Superblood Wolfmoon by Pearl Jam at 153 BPM. Mr. Brightside at 148. Plug in Baby by Muse. My own music, sorted by the beat my legs already run to.
→ Play with it live: uphillnotes.com/run-to-the-beat.html
Hold that number — 154 BPM — because it comes back at the end and ruins me a little.
No. 2 — The Mimic 🏔️
Rebuild the OCC’s mountain outside my front door.
I have a race in my legs I’m proud of: the OCC, 2025, in the shadow of Mont Blanc. Its elevation profile has a personality — a gentle long opener, a plunge to the valley, then the cruel bit: the biggest climb comes late, when your legs are already wrecked, before a long ride home.
The problem with training for that shape is that it lives in the Alps, and I live in Wiesbaden. I did not want to keep flying to Chamonix to feel like the OCC.
So Claude read my real OCC race off Strava, extracted its elevation signature — soft in, deep valley, big late climb, long descent — and then went looking for that same shape in the hills of the Taunus, right on my doorstep. It stitched together a 31.9 km loop out of Königstein, up the Altkönig, down into the Kronberg valley, then the big grind up the Großer Feldberg late in the run, exactly where the OCC puts its roof.
→ Explore both profiles and maps: uphillnotes.com/occ-mimic.html
Look at those two curves. Different countries, a fifth of the drive — same envelope. The high point lands at 65% of the OCC and 76% of the Taunus loop. Both back-loaded. Both mean pain.
And now the honest part, because the fun ones always have one. When Claude tried to save the route into Strava, it couldn’t — the connector is read-only, remember, it can look but not write. And when it first designed the route, the elevation data came back as pure garbage, so the first version of that teal line above was modelled from the summits, not measured. To make it real, I had to do the low-tech thing: upload the route to Strava myself, let Strava compute the heights, export it back out, and hand it over. Four clicks I did with my own thumbs. The AI is a genius that occasionally needs you to open a door for it. Good. I like being needed.
No. 3 — The Shoe Graveyard 👟
Which of my shoes is dying?
This one is barely a build — it’s one question — and it delighted me more than things that took hours.
“Read my Strava gear and lay out my rotation.” Ten seconds later: thirteen pairs of shoes, 4,430 logged kilometres, ranked by mileage. A rotation I own but had genuinely never seen laid out in one place.
→ See the full rotation: uphillnotes.com/shoe-biography.html
The headline is embarrassing and perfect: a single pair of Nike Pegasus 40 has done 1,547 kilometres. That’s over a third of everything, on one uncomplaining road shoe. My NNormal Cadí — the pair that carried me round the TDC this May — sits mid-table, a specialist saved for the days that matter.
It’s the kind of thing Strava has technically always known and never bothered to tell me. The data was just sitting there, waiting for someone to ask the right question. That’s the whole game.
No. 4 — The Mountain, Told as Data 🌄
My TDC race as a thing you scroll through.
This is the one I’m proudest of, and the one I can’t fully show you in a photo.
In May I ran the Trail d’Alsace TDC — 48.5 km, 1,741 metres up, five hours and fifty-six minutes, and (I’ll allow myself this) 22 personal records buried in the splits. Claude pulled every stream from that day — altitude, heart rate, pace, every point on the course — and we built it into a thing you scroll.
The mountain rises out of the dark as a glowing ridge. As you scroll, a marker travels the course, the part you’ve “run” lights up in copper, and the numbers — kilometre, elevation, heart rate — tick along beside you. You ride your own race from Obernai, up to the Sainte-Odile ridge, down into the valley, up to the roof at Heidenkopf, and home.
→ Scroll the whole mountain: uphillnotes.com/tdc-data-story.html
A flat chart tells you the elevation. This makes you feel the shape of the day — the patience of the long opener, the free speed of the descent, the ugly honesty of a climb that comes at kilometre 30 when you’ve got nothing left. It’s a race report where the only writer is the data.
(A screenshot is like describing a rollercoaster — do yourself a favour and open the live one above.)
No. 5 — My Running Fingerprint
What kind of runner am I, really?
For the last one I wanted a mirror, not a metric. I asked Claude to read a spread of my runs — easy road, tempo, two trails, the TDC race — and draw me a portrait of how I run. Not a plan. Not “you should.” Just: who is this person, according to 233 data points?
→ Read your own curve: uphillnotes.com/running-fingerprint.html
Three things fell out, and I love all of them.
One: climbing costs me exactly 28%. On the flat I cruise at 9.5 km/h; the moment it tips uphill I drop to 6.8. Every metre of climb, paid in speed, on the nose.
Two: I have a split personality about pacing. Across everything I’m almost perfectly even — a disciplined +1.4% between my first third and my last. But break it down and the mask slips: on tempo runs I go out too hot and fade, and on trails I negative-split like a saint. Apparently I’m patient in the mountains and an idiot on the flat. This is the single most me fact a spreadsheet has ever produced.
And three — here’s where it got me. My legs, left to their own devices, default to a cadence of 154 steps per minute.
One hundred and fifty-four. The exact number the Run to the Beat matcher went hunting for in the very first thing I built. I set out to find music for my stride, and five experiments later the data quietly told me my stride had a fixed, favourite number all along. I didn’t design that rhyme. It was just there, in the data, waiting.above.)
So, was any of it useful?
Not even slightly. I am not faster. I have no plan. Nobody should train like this.
And that was the entire point. For one week I got to treat eight years of running data as a box of Lego instead of a report card — and it turns out the box is enormous, and the pieces do things I never imagined. A song matcher. A mountain rebuilt near my house. A graveyard of shoes. A race I can scroll. A portrait of my own stride that ends on the exact number I started with.
It’s a data layer, not a coach. Which is another way of saying: it won’t tell you what to do. It’ll just hand you everything you’ve ever done, and let you play. After a month of arguing about whether numbers are fair, I’d forgotten they could also be fun.
Go plug something in. See what falls out.
The setup, if you want to try it
You’ll need a paid Strava subscription (it’s subscriber-only for now) and Claude. In Claude: Connectors → Add Connector → “Strava App MCP” → Connect → authorise. Check if you’re in the rollout at strava.com/settings/mcp — it’s still going out in waves, so not everyone has it yet. Then just… ask it things.
One honest caveat box 📌
It can be confidently wrong. AI fumbles chained maths. Ask it to show its working before you trust a number, and spot-check against the app.
Mountains break elevation. GPS heights in steep terrain are dodgy; trust a barometric altimeter over an AI’s vertical claims.
It’s your GPS and your heart rate. Sensitive stuff. It’s read-only and revocable — but think before you connect.







Cool use of AI. I have a few recommendations: -
1) Create a folder on your computer. Create 2 subfolders - one called source, and an empty one called wiki.
2) In the "source" file, add coaching articles and philosophies you agree with, any documents you think are important for Claude to know about, diary entries, etc etc - basically anything you want claude to know to make it a good coach
3) Open the terminal in your computer and install claude code. Google how.
4) Navigate (in your terminal) to the folder created in step 1)
5) STart claude
6) Share with it this article https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f
7) Tell it that you want to base this project on the wiki article and that it should write instructions for it to do so.
8) Ask away.....
Claude will now have a much better memory of your context, the type of training you're undertaking and how best to interpret your data. You can connect strava and get it to remember your data etc. You can also get it to write short projects like code to analyse performance, improvement etc, you can hook it up to whatsapp and get it to message you your weekly plan etc etc.
The wiki structure is the magic. It builds the persona of the coach and has access to philosophies that help it to write its plans and interpret your data,
Ganz ähnlich hätte das bei mir aussehen können, leider ist der MCP für mich noch nicht freigeschaltet. Die haben wohl einen gestaffelten Rollout... Vielleicht muss ich noch mal gucken und ich habe die notification nur nicht entdeckt. Ich verstehe da im spieltrieb aber total. Da können Stunden ins Land gehen 😄