Strava MCP Server
<!-- mcp-name: io.github.ArjanLig/strava-mcp -->
# Strava MCP Server
[](https://lobehub.com/mcp/arjanlig-strava-mcp-server)
Connect your Strava training data to Claude. This MCP server turns Claude into your personal training coach — analyzing your training load, planning workouts, and tracking your progress. Works with cycling, running, and any sport you track on Strava.

## Install
Works with [Claude Desktop](https://claude.ai/download) and [claude.ai](https://claude.ai) on any plan. Free plans can add 1 custom connector (remove any existing connector first), Pro and Max are unlimited.
### 1. Create a Strava API app
This takes about 2 minutes. You need a free Strava API app so Claude can access your data.
1. Go to [strava.com/settings/api](https://www.strava.com/settings/api)
2. Fill in the form — **Application Name**, **Category**, and **Description** can be anything (e.g. "My Claude connector")
3. Set **Authorization Callback Domain** to `strava-mcp-web.vercel.app`
4. Click **Create** and note your **Client ID** and **Client Secret**
### 2. Add the connector
1. Open Claude Desktop or [claude.ai](https://claude.ai)
2. Go to **Settings → Connectors → Add custom connector**
3. Paste this URL and save:
```
https://strava-mcp-web.vercel.app/mcp
```
### 3. Connect
Click **Connect** on the newly added connector. This opens a page where you enter your Strava Client ID and Client Secret, then authorize with Strava.
That's it! Ask Claude about your training.
## Tools
The server exposes 10 tools:
| Tool | Description |
|---|---|
| `get_recent_activities` | Your last activities with distance, duration, and heart rate |
| `get_activity_details` | Deep dive into a specific activity — power, HR, speed, suffer score |
| `get_training_load_analysis` | ATL, CTL, TSB with training advice and 8-week trends |
| `get_weekly_stats` | Weekly volume — activities, kilometers, hours |
| `get_weekly_training_plan` | Weekly plan based on current fitness and fatigue |
| `get_gear_maintenance` | Bike/shoe km totals with chain, cassette, tire warnings |
| `get_power_curve` | Best power outputs (5s–60min), FTP estimate, monthly comparison |
| `get_hr_zone_distribution` | Time in each HR zone with polarized training advice |
| `get_hr_drift_analysis` | Cardiac drift in steady rides — aerobic efficiency indicator |
| `check_workout_quality` | Interval consistency, power decoupling, recovery scoring |
## Example conversations
> "I want to ride tonight, what should I do?"
> "How is my training load looking?"
> "Check the quality of my last interval workout"
> "When do I need to replace my chain?"
> "What's my FTP and how does it compare to last month?"
> "Am I spending enough time in zone 2?"
> "I'm training for a 150km race in April — am I on track?"
## How it works
Claude pulls your Strava data in real-time and reasons about it in context — your recent rides, fitness trend, fatigue level, and goals.
**Training load analysis** uses the standard PMC model:
- **ATL** (7-day) — how tired you are now
- **CTL** (42-day) — your fitness level
- **TSB** — CTL minus ATL. Positive = fresh, negative = fatigued
- **Ramp rate** — week-over-week load change, with injury risk warnings
**Gear maintenance** tracks km on each bike and shoe, warning when chain (3000km), cassette (6000km), tires (5000km), or cables (8000km) need attention.
**Power curve** finds your best efforts across durations and estimates FTP at 95% of your 20-minute power.
**HR analysis** covers zone distribution (are you polarizing enough?) and cardiac drift (is your aerobic base improving?).
## Limitations
- Training load uses suffer score / HR — it underestimates fatigue from strength training or activities where HR stays low
- Power features require a power meter or smart trainer
- The weekly plan is a heuristic, not a replacement for a certified coach
## Troubleshooting
**Connector not working?**
Remove and re-add the connector in Settings → Connectors.
**Authentication error?**
Check that your Strava API app has `strava-mcp-web.vercel.app` as the callback domain.
## Website
[strava-mcp-web.vercel.app](https://strava-mcp-web.vercel.app)
## Built with
- [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) — Anthropic's open standard for connecting AI to external tools
- [Strava API v3](https://developers.strava.com/) — Access to athlete activities and metrics
## License
MIT
TDQS
Scored across 10 tools
Each tool targets a distinct analysis or information retrieval function, such as workout quality, gear maintenance, heart rate drift, power curve, and training load. No two tools have overlapping purposes, making it clear which tool to use for a given query.
All tools follow a verb_noun pattern using snake_case, with most starting with 'get'. One tool uses 'check' instead of 'get', and a few use abbreviations like 'hr' and 'stats', but these are minor deviations that don't affect readability.
With 10 tools, the set is well-scoped for a Strava analysis server covering key metrics like heart rate, power, training load, and gear maintenance. It's not too many to be overwhelming nor too few to be trivial.
The tool set comprehensively covers training analytics (HR, power, load, weekly stats, planning) and basic activity retrieval. Minor gaps exist, such as no tool for updating activity details or managing goals, but the core analysis workflows are well-supported.