strava-mcp-agent
Give Claude access to your Strava data. An MCP server that exposes your runs, rides, swims, and all Strava metrics as tools for AI-powered coaching, analysis, and conversation.
What it does
strava-mcp-agent connects your Strava account to any MCP-compatible client (Claude Desktop, Claude Code, etc.) and provides 13 tools covering every aspect of your athletic data:
| 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) |
Quick Start
Step 1: Install
pip install strava-mcp-agent
Step 2: 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 3: 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 4: Restart Claude Desktop
That's it. Your 13 Strava tools are ready. Just ask Claude about your runs.
Manual setup (if you prefer)
Click to expand
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"
}
}
}
}
Usage Examples
Once connected, just talk to Claude:
- "How was my running this month?"
- "Compare my last 5 runs — am I getting faster?"
- "What's my average heart rate on long runs vs tempo runs?"
- "Show me my weekly mileage trend for the past 2 months"
- "What gear has the most miles on it?"
The get_running_summary tool is especially powerful for coaching — it computes weekly mileage, pace trends, best 5K/10K efforts, and heart rate stats, all in one call.
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
- MCP-compatible client (Claude Desktop, Claude Code, etc.)
License
MIT
Metadata
Release files for strava-mcp-agent 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| strava_mcp_agent-0.2.0.tar.gz | 19.7 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| strava_mcp_agent-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.1 kB
Release files / strava_mcp_agent-0.2.0.tar.gz
| Download URL | strava_mcp_agent-0.2.0.tar.gz |
|---|---|
| Size | 19.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
931ff561c2fec104102b80b03716db4492aaa9ac312bdb91ad6c8d3377942238
|
|
BLAKE2b-256 checksum How to use checksums |
0925c037f5c7dde82be3d5186cd7ed438a35b5566994706fa128ec1410aa5a7f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / strava_mcp_agent-0.2.0-py3-none-any.whl
| Download URL | strava_mcp_agent-0.2.0-py3-none-any.whl |
|---|---|
| Size | 16.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fbf4a7b43209ce8f549428f6fda4424f867798a14056a742d82b5d74aecb86e2
|
|
BLAKE2b-256 checksum How to use checksums |
ac5a3b9f2d675b91f4d857f293aff4609fbdde1971d77c98a799e8cb0ac8cec4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Security for strava-mcp-agent 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.