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.
README
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 |
|---|---|
get_athlete_context |
Loads your full training profile at conversation start — HR zones, current Z2 pace, weekly mileage trends, goals, injuries. Auto-refreshes if stale. |
update_athlete_profile |
Save your max HR, resting HR, weight, FTP, and custom HR zones |
update_athlete_goals |
Track race targets, training phase, and deadlines |
update_athlete_injuries |
Log injuries, update recovery status, mark as resolved |
add_training_note |
Persistent coaching notes across sessions (last 50 kept) |
Strava Data Tools
| Tool | Description |
|---|---|
get_athlete |
Your profile — name, weight, FTP, bio |
get_athlete_stats |
All-time & recent totals for run/bike/swim |
list_activities |
Browse activities with date/type filtering |
get_activity |
Full detail for one activity (splits, HR, cadence, weather) |
get_activity_zones |
Heart-rate and power zone distribution |
get_activity_laps |
Per-lap pace, HR, and distance breakdown |
get_activity_streams |
Raw sensor data (GPS, HR, cadence, watts, altitude) |
get_starred_segments |
Your starred segments |
get_segment_efforts |
Efforts on a specific segment |
get_routes |
Routes you've created |
get_gear |
Shoe/bike details and mileage |
get_clubs |
Clubs you belong to |
get_running_summary |
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.
Quick Start (2 commands)
pip install strava-mcp-agent
strava-mcp-token
Step 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. My Claude MCP) |
| Category | Pick any |
| Club | Leave blank |
| Website | http://localhost |
| Authorization Callback Domain | localhost |
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-token
It 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)
<details> <summary>Click to expand</summary>
Add to your Claude Desktop config:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.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"
}
}
}
}
</details>
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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.