How To Use the Strava MCP, The New AI Connector to Your Strava Data Layer
发布时间:2026-08-19 | 浏览:1
Strava launched a new MCP interface to be used with AI tools; here's what I have found it can and can't do after playing around with it for a few weeks
[This is more of a techie nerd story, so my apologies to subscribers looking for race reports and nature pictures. Feel free to just skip this one, and I promise there are more race and life updates coming soon. For those of you following along the ELEO AI Endurance Coach stories, this one is more your speed, particularly if you are building an AI coach of your own.]
Strava recently launched their Model Context Protocol (MCP) server , and it changes the game for athletes who want to do more with their data than scroll a feed. MCP is a standard that lets AI assistants (Claude, ChatGPT, etc) connect directly to your Strava account and query your training data programmatically. Custom insights, new charts and graphs, mixing Strava data with other sources, and more - a whole new world of data possibilities once you complete the five minute set up. For those of who have built and maintained connections between AI tools and the Strava API, this is a big step up in usability - no more OAuth dance, no API keys, no rate-limit headaches. Just structured access to everything Strava knows about your training, including some data and granularity previously unavailable in the app or the API.
This is an impressive strategic move by the Strava team. They are the first company in the health and wearables industry to embrace open access with AI tools, rather than depend solely on building their own closed AI assistants (Whoop, Garmin, etc). Strava has always touted the ethos of “you own your data”, and the MCP is an open and forward investment that fully embraces this. Big shout out to the Strava team for their innovation and leadership!
I’ve been using Strava’s MCP as part of my Ironman training, alongside ELEO, the custom AI endurance coach I built earlier this year. After exploring every tool in the MCP toolkit, I wanted to share what I have found, what the MCP unlocks, and what still requires a purpose-built coaching layer.
Why Have One Coach, When You Can Have Them All? (Part II of Building ELEO, the AI Triathlon & Running Coach)
New Things You Can Do With the Strava MCP
For you Claude Cowork users, setting up the MCP is as easy as going into the “Connectors” menu, searching for Strava, and following the prompts. 1 From that point, you have read-only access to your data. Some of the new things you can do with the MCP include:
Search and filter activities programmatically. MCP lets you query by date range, sport type, and tags, then process hundreds of activities in seconds. For example, just ask Claude to build you a table of your fastest runs between 10k-20k in the last six months with elevation over 100m. Or ask it how much you slow down at altitude, or the percentage of rides you do in your hometown. None of these queries are possible in the app, nor easily done with the API.
Access activity tags at scale. Tags like *WithPet*, *WithKid*, *Race*, and *LongRun* exist in the app, but you can only see them one activity at a time. MCP surfaces them across your entire history, which means you can finally answer questions like *”What percentage of my total kilometers this year were with my dog?”* (Answer for me: 4.8%. That’s 170.6 km across 81 outings — an average of 3.5 pet walks per week — out of 3,545 total km. That query took about 10 seconds via MCP.) The API doesn’t allow access to activity tags, so this is a brand new capability.
Pull second-by-second stream data. The app shows you a heart rate chart, and the API gives you an average. The MCP gives you the actual numbers — every heartbeat, every watt, every GPS coordinate, every cadence reading, time-stamped to the second. ELEO used these data streams to confirm that during a CSS swim test of 10x100m, my heart rate crossed from 125 bpm to 143 bpm between reps 5 and 6, proving my aerobic breakpoint (and also proving I went out too fast on the test). The app’s chart hinted at this. The stream data proved it.
Get structured lap and interval data. For a trail run with 27 segments, I can pull average HR and power for each climb and descent independently. The app shows segment results one at a time. MCP delivers them all at once, ready for analysis.
Bulk analysis across your full history. Aggregate data across 250+ activities without manually scrolling and transcribing. Compute year-over-year trends, identify patterns, and spot anomalies.
Simpler developer experience. No OAuth flow to manage, no token refresh logic, no rate limit headaches. MCP handles authentication through the connection layer, so you just make tool calls and get data back. This would have saved me dozens of coding iterations of ELEO v1, which still had a clunky interface that often required running fetch scripts.
What The Strava API Can Do That The MCP Can’t
Write operations and create data. The API can create activities, update descriptions and gear assignments, and upload GPX/TCX files. The MCP is strictly read-only. (I actually discovered I had 8 pet hikes incorrectly typed as “Run” — fixing them required an API script, not MCP.)
Webhook support. The API supports push notifications when new activities are created, which is essential for automated pipelines. The MCP requires a query.
Route creation and deeper segment exploration. The API has endpoints for route building and detailed segment data that MCP doesn’t expose.
What the Strava App Does That Neither The MCP Nor API Can
The Strava App still has many unique features, such as social capabilities (your feed, comments, kudos), the route builder, Beacon live tracking, segment leaderboard browsing, joining groups and group activities, and Strava’s own Fitness & Freshness analytics. The app is still the social and planning layer; MCP and the API are the data layers.
The Nine MCP Tools
The Strava MCP server exposes nine tools. Here’s what each one does and why it matters.
1. list_activities — The search engine for your training
The workhorse. Filter by date range, sport type, and — critically — activity tags. Pagination handles large result sets. This is how I pulled 5+ months of training data across three pages to compute the pet-walk percentage above.
2. get_activity_streams — Your second-by-second data
Heart rate, power, cadence, altitude, GPS coordinates, and time — all at per-second resolution. This is where training analysis gets real. Stream data let me map the exact HR inflection point during a swim test that the app’s chart only hinted at.
3. get_activity_performance — Structured interval data
Laps, splits, segment efforts, best efforts, and PR achievements. For any activity with multiple segments (trail runs, interval sessions), this delivers everything in one structured response instead of clicking through the app one segment at a time.
4. get_athlete_zones — Your threshold configuration
Returns your configured heart rate zones, power zones (with FTP), and run pace zones. Useful for building automated analysis — though as I’ll discuss below, generic zones often diverge significantly from lab-tested thresholds.
5. get_gear — Equipment lifecycle tracking
Every bike and shoe with total distance logged. My primary running shoes show 600 km — getting close to replacement territory. This data exists in the app, but MCP makes it queryable for automated alerts.
6–9. Profile, Clubs, Training Plan, Health Check
Athlete profile data, club membership and events, connected training plans (Strava partners with platforms like Runna), and a health check endpoint. Useful for integration plumbing but less exciting for day-to-day analysis.
The AI Coaching Gap - What I Still Need ELEO To Do
MCP is a data access layer, not a coaching system. This distinction matters. Here’s what I’ve found my AI coaching system ( ELEO ) handles that no combination of Strava app, API, or MCP can provide. 2
Using Real Test and Lab Data
Strava’s heart rate (HR) zones are derived from generic formulas, although they can be updated manually. My derived bike zones from Strava show Z2 as HR 116–132. My *actual* Z2 from a professional lactate threshold test is HR 90–98 with power at 160–180W. That’s a **massive** difference — Strava’s Z2 ceiling is above my confirmed LT2. Training in Strava’s “Z2” would have me grinding lactate, not building an aerobic base.
ELEO uses the confirmed zones for every workout prescription and post-ride analysis. This single difference changes everything about how training load is interpreted. And it was ELEO that originally suggested we do the tests, as well as how often we update them.
Sport-specific Load Tracking
Strava’s Fitness & Freshness scores uses a single model. ELEO computes TSS with sport-specific thresholds — bike at HR 115 (FTP 222W), run at HR 142, swim at HR 130 — then tracks training load measurements such as CTL, ATL, and TSB independently. A 5.5-hour bike ride at HR 97 generated 217 TSS by power (accurate), while a generic HR model would have significantly underestimated it because the bike threshold is much lower than the run threshold.
Recovery-adjusted Daily Prescriptions
ELEO pulls Whoop recovery data every morning and adjusts the day’s training prescription. A 36% recovery day after a big Saturday means the swim gets shortened and the sauna gets encouraged. A 98% recovery day means the scheduled intervals stay on the board, or are perhaps increased, depending on the days ahead. Strava has no awareness of your recovery state — it shows you what you did, not what you should do.
Cross-platform Data Fusion
ELEO merges data from Strava (workouts), Whoop (recovery, HRV, sleep), bloodwork (ApoB, ferritin, vitamin D, thyroid), DEXA scans (body composition), VO2 Max tests, and a periodized training calendar into a single coaching context. It also has video and still pictures of my position on the bike, and my running stride. When I report metatarsal pain at hour 2 of a bike ride, ELEO can cross-reference that against my cleat position, power output, shoe wear, and recent body composition changes. No single data source has that picture.
Periodization and Race Strategy
ELEO maintains a 24-week periodized plan targeting my ‘A’ race (Ironman Canada Ottawa), with specific CTL targets (83–88 by peak build), race-day power targets (160–170W for the full Ironman, 180–190W for the 70.3), fueling protocols (100g carbs/hour), and wetsuit swim pacing (1:35/100m vs. 1:55/100m without). Strava can tell you how fast you went. ELEO tells you how fast you should go, and adjusts the plan when a family emergency eats three training days.
MCP and ELEO - The Tech Stack That Works For Me
For an advanced AI training system, the real power isn’t any single layer, it’s the combination. Here’s how a typical training day flows through the stack:
1. Morning: ELEO reads Whoop recovery data and the training calendar, then delivers today’s prescription adjusted for how I slept and how recovered I am.
2. Workout: I train with my Apple Watch and heart rate strap recording to Strava as usual.
3. Post-workout: ELEO pulls the activity from Strava via MCP — HR streams, lap splits, power data — and analyzes it against the prescribed workout using lactate-confirmed zones.
4. Logging: ELEO computes sport-specific TSS and appends to the training log. I only provide RPE and notes — all the numbers come from Strava.
5. Dashboard: CTL/ATL/TSB recalculates automatically, and tomorrow’s prescription adjusts if today was harder or easier than planned.
Before the Strava MCP, step 3 required a custom Python script to authenticate with Strava’s API, handle token refresh, and parse the response. MCP reduces that to a single tool call, and allows the data to be queried at a much more granular level. The coaching logic on top stays the same, but the plumbing and access to high quality data both got dramatically simpler.
The Bottom Line
Strava’s MCP is the most significant addition to their developer ecosystem since the API itself. For athletes who want to go beyond the feed — aggregating data across months, discovering patterns in their training, or feeding structured workout data into AI-powered tools — MCP is the access layer that makes it all practical. It is useful enough for me that it justifies the requirement of Strava Premium instantly.
But it’s a data layer, not a coaching layer. The app tells you what happened. The API and MCP let you query what happened. A custom coaching system tells you what to do about it, and adjusts when life gets in the way.
For most athletes, MCP plus a capable AI assistant is a massive upgrade over the app alone. For those deep into structured training, the real unlock is MCP as the data pipe feeding a system that actually understands your physiology, your schedule, and your goals.
Kudos to Team Strava!!! This is a huge upgrade for users, and a big advancement for the industry. Many thanks! 🙏🙌🤩
Scott Dunlap is training for Ironman Canada Ottawa (August 2, 2026) using ELEO , a custom AI endurance coach built on Claude. He currently lives in Portland, Oregon, where he hikes with his pug Hugo 4.8% of the time. 🐶
As of publishing time, the Strava MCP is in Beta, and is being released to individuals a handful at a time. So you might find when you connect to the MCP, it says “waiting for permission”. If so, you’re in the queue, and will need to sit tight until they approve it.
I fully admit that I have gone off the deep end when it comes to AI coaching and race preparation, integrating blood tests, DEXA scans, bike aerodynamics, and VO2 Max tests. For most athletes this is overkill, and HR zone assumptions are just fine. But if you are facing a 400+ hour training block for your next ‘A’ race, I would highly suggest you integrate these metobolic tests to ensure you adaptation is optimized, and ensure aren’t just doing junk miles, or even worse, damage. It will be humbling, I promise you that, but it will give you the confidence that every hour of training is not wasted. I’ve found ELEO to be a perfect way to instantly adjust your training plan to every test result.
Discussion about this post
Really helpful overview! Thanks, Scott.
I know you have a post on ELEO, but what do you think the best starting point is for building that coaching layer? Just vibe coding with Claude? Any particular prompt structure you recommend?
And have you experimented at all with which models work better with the Strava MCP?
Ready for more?