strava-mcp-agent
Integrates with Strava to access athlete profile, activities, stats, segments, routes, gear, clubs, and provides running summaries for AI coaching.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@strava-mcp-agentAm I on track for my sub-50 10K goal?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
strava-mcp-agent
Your AI running coach that actually remembers. An MCP server with persistent memory that connects your Strava data to Claude — tracking your zones, pace trends, injuries, and goals across sessions so coaching advice stays current.
What it does
strava-mcp-agent gives Claude 18 tools — 13 for live Strava data and 5 for persistent memory that carries context across every conversation.
Memory & Context Tools
Tool | Description |
| Loads your full training profile at conversation start — HR zones, current Z2 pace, weekly mileage trends, goals, injuries. Auto-refreshes if stale. |
| Save your max HR, resting HR, weight, FTP, and custom HR zones |
| Track race targets, training phase, and deadlines |
| Log injuries, update recovery status, mark as resolved |
| Persistent coaching notes across sessions (last 50 kept) |
Strava Data Tools
Tool | Description |
| Your profile — name, weight, FTP, bio |
| All-time & recent totals for run/bike/swim |
| Browse activities with date/type filtering |
| Full detail for one activity (splits, HR, cadence, weather) |
| Heart-rate and power zone distribution |
| Per-lap pace, HR, and distance breakdown |
| Raw sensor data (GPS, HR, cadence, watts, altitude) |
| Your starred segments |
| Efforts on a specific segment |
| Routes you've created |
| Shoe/bike details and mileage |
| Clubs you belong to |
| AI-ready coaching summary (weekly mileage, pace trends, best efforts, HR stats) |
Why memory matters
Without memory, Claude forgets everything between conversations:
Session 1: "Your Z2 pace is 9:30/km"
Session 2: "Your Z2 pace improved to 8:10/km"
Session 3: "I recommend running at 9:00–9:30/km" ← wrong, forgot the improvement
With memory, fitness metrics are auto-computed from your Strava data and persist. Claude always knows your current zones, trends, and injuries.
Related MCP server: whoop-mcp
Quick Start (2 commands)
pip install strava-mcp-agent
strava-mcp-tokenStep 1: Create a Strava API app (one time)
Go to strava.com/settings/api and fill in:
Field | What to enter |
Application Name | Anything (e.g. |
Category | Pick any |
Club | Leave blank |
Website |
|
Authorization Callback Domain |
|
The callback domain must be
localhost— this is what allows the setup wizard to receive the authorization code on your machine.
Click Create. On the next page, copy your Client ID (a number like 123456) and Client Secret (a long code like abc123def456...).
Step 2: Run the setup wizard
strava-mcp-tokenIt will:
Ask for your Client ID and Client Secret
Open your browser — click Authorize on the Strava page
Auto-detect your OS (macOS / Linux / Windows)
Find the Python that has the package installed
Write the Claude Desktop config file for you
Step 3: Restart Claude Desktop
Your 18 tools are ready. To get the most out of coaching, start by telling Claude your max HR and goals:
"Set my max HR to 190, resting HR 48, and my goal is sub-50 10K by June"
Claude will save this and use it to compute accurate training zones from then on.
Manual setup (if you prefer)
Add to your Claude Desktop config:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"strava": {
"command": "strava-mcp",
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}Usage Examples
Once connected, just talk to Claude:
"What's my current Z2 pace and how has it changed over the last 3 months?"
"My left knee is sore — adjust my training plan for this week"
"Am I on track for my sub-50 10K goal?"
"How was my running this month compared to last month?"
"Which shoes have the most miles on them?"
Memory is stored in ~/.strava-mcp/memory/ as plain JSON files — easy to inspect or back up.
Security
Credentials are loaded from environment variables only — never hardcoded. The server uses Strava's OAuth2 refresh token flow and automatically handles token renewal.
Requirements
Python 3.10+
A Strava account with API access
Claude Desktop (or any MCP-compatible client)
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/koushikmaji31/strava-mcp-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server