MCP server for Strava API integration
npm install mcp-stravaMinimalist Strava integration for Claude.
7 focused tools. One-time auth. Zero bloat.
- "How was my training this week vs last?"
- "What's my average heart rate on tempo runs?"
- "Break down yesterday's workout by zones"
| Tool | What it does |
| ---------------------------- | --------------------------------------------------- |
| get_athlete_profile | Your profile info |
| get_athlete_stats | Totals: recent, YTD, all-time |
| get_athlete_zones | HR and power zone configuration |
| list_activities | Browse with date filtering |
| get_activity_detail | Full workout breakdown with laps and segments |
| get_activity_zones | Zone distribution with time and percentage per zone |
| get_segment_effort_streams | Segment analysis with historical comparison |
```
1. Create Strava App → strava.com/settings/api → get Client ID + Secret
2. Authorize (one-time) → STRAVA_CLIENT_ID=xxx STRAVA_CLIENT_SECRET=xxx \
STRAVA_REDIRECT_URI=http://localhost:3000/auth/callback \
npx mcp-strava-auth
3. Configure Claude → Add to claude_desktop_config.json (see below)
4. Restart Claude → Done! Ask Claude about your workouts
Visit https://www.strava.com/settings/api and create an application to get your Client ID and Secret.
Run the auth server with your Strava credentials:
`bash`
STRAVA_CLIENT_ID=your_client_id STRAVA_CLIENT_SECRET=your_client_secret STRAVA_REDIRECT_URI=http://localhost:3000/auth/callback npx mcp-strava-auth
Then:
1. Visit http://localhost:3000/auth/strava in your browser
2. Authorize on Strava's page
3. You'll see "Authorization Successful!" when complete
4. The server shuts down automatically
Tokens and credentials are stored securely in ~/.strava-mcp/tokens.json.
Add to your Claude Desktop config (claude_desktop_config.json):
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
`bash`
open ~/Library/Application\ Support/Claude/
Windows: %APPDATA%\Claude\claude_desktop_config.json
`json`
{
"mcpServers": {
"strava": {
"command": "npx",
"args": ["-y", "mcp-strava"]
}
}
}
Restart Claude Desktop to load the MCP server.
If you prefer to clone and build locally:
Visit https://www.strava.com/settings/api and create an application to get your Client ID and Secret.
`bash`
git clone https://github.com/adrienlupo/mcp-strava.git
cd mcp-strava
npm install
npm run build
Run the authorization server with your Strava credentials:
`bash`
STRAVA_CLIENT_ID=your_client_id STRAVA_CLIENT_SECRET=your_client_secret STRAVA_REDIRECT_URI=http://localhost:3000/auth/callback npm run auth
Then:
1. Visit http://localhost:3000/auth/strava in your browser
2. Authorize on Strava's page
3. You'll see "Authorization Successful!" when complete
4. The server shuts down automatically
Add to your Claude Desktop config (claude_desktop_config.json):
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
`bash`
open ~/Library/Application\ Support/Claude/
Windows: %APPDATA%\Claude\claude_desktop_config.json
`json`
{
"mcpServers": {
"strava": {
"command": "node",
"args": ["/absolute/path/to/mcp-strava/dist/index.js"]
}
}
}
Restart Claude Desktop to load the MCP server.
`bash``
npm install
npm run build
npm start
MIT