Provides access to Strava training data, including athlete profiles, lifetime and recent statistics, activity lists, detailed activity information, time-series data (GPS, heart rate, power, cadence, altitude), and segment details.
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 ServerSummarize my training activities from this past week."
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 Server
An MCP (Model Context Protocol) server that connects Claude to the Strava API, giving Claude direct access to your training data.
Features
Athlete Profile — Get your Strava profile info
Athlete Stats — Lifetime and recent totals (runs, rides, swims)
Activities — List recent activities or filter by date range
Activity Details — Deep dive into any single activity
Activity Streams — Time-series data: GPS, heartrate, power, cadence, altitude
Segments — Starred segments and segment details
Setup
1. Create a Strava API Application
Go to strava.com/settings/api
Create an application — use
http://localhostas the redirect URINote your Client ID and Client Secret
2. Get a Refresh Token
Open this URL in your browser (replace CLIENT_ID):
https://www.strava.com/oauth/authorize?client_id=CLIENT_ID&response_type=code&redirect_uri=http://localhost&scope=read_all,activity:read_allAfter authorizing, you'll be redirected to http://localhost?code=AUTHORIZATION_CODE. Copy the code and exchange it:
curl -s -X POST 'https://www.strava.com/oauth/token' \
-F 'client_id=CLIENT_ID' \
-F 'client_secret=CLIENT_SECRET' \
-F 'code=REFRESH_TOKEN' \
-F 'grant_type=authorization_code'Save the refresh_token from the response.
3. Install & Build
npm install
npm run build4. Configure Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.xx:
{
"mcpServers": {
"strava": {
"command": "node",
"args": ["/Users/USERNAME/Apps/StravaMCP/dist/index.js"],
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}Restart Claude Desktop. You should see the Strava tools available in the tools menu (hammer icon).
Available Tools
Tool | Description |
| Get your Strava profile |
| Get lifetime and recent statistics |
| List recent activities (paginated) |
| Get activities within a date range |
| Get detailed info for one activity |
| Get time-series data (GPS, HR, power, etc.) |
| Get your starred segments |
| Get details for a specific segment |
Example Prompts
Once connected, try asking Claude:
"What were my activities this week?"
"Analyze my running performance over the past month"
"Compare my cycling times in January vs February"
"Show me my heartrate data from my last run"
"What are my all-time stats?"
Development
# Run in dev mode (no build step)
npm run dev
# Build for production
npm run build
npm startLicense
MIT
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.