loading…
Search for a command to run...
loading…
Connects Claude to the Strava API to provide direct access to fitness data, including athlete statistics, detailed activity logs, and time-series performance me
Connects Claude to the Strava API to provide direct access to fitness data, including athlete statistics, detailed activity logs, and time-series performance metrics. It enables users to analyze training progress, compare workouts, and retrieve specific segment details through natural language queries.
An MCP (Model Context Protocol) server that connects Claude to the Strava API, giving Claude direct access to your training data.
localhostnpm install
npm run setup
The setup wizard will:
.env filenpm run build
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_all
After 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=AUTHORIZATION_CODE' \
-F 'grant_type=authorization_code'
Save the refresh_token from the response and create a .env file:
STRAVA_CLIENT_ID=your_client_id
STRAVA_CLIENT_SECRET=your_client_secret
STRAVA_REFRESH_TOKEN=your_refresh_token
Build the Docker image:
docker build -t strava-mcp-server .
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"strava": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--env-file", "/absolute/path/to/your/.env",
"strava-mcp-server"
]
}
}
}
Replace /absolute/path/to/your/.env with the full path to your .env file.
{
"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).
| Tool | Description |
|---|---|
get_athlete |
Get your Strava profile |
get_athlete_stats |
Get lifetime and recent statistics |
get_activities |
List recent activities (paginated) |
get_activities_between |
Get all activities within a date range (auto-paginated) |
get_activity |
Get detailed info for one activity |
get_activity_laps |
Get lap/split data for an activity |
get_activity_zones |
Get HR and power zone distribution |
get_activity_streams |
Get time-series data (GPS, HR, power, etc.) |
get_starred_segments |
Get your starred segments |
get_segment |
Get details for a specific segment |
get_segment_efforts |
Get your efforts on a segment (with optional date filter) |
Once connected, try asking Claude:
# Run in dev mode (no build step)
npm run dev
# Build for production
npm run build
npm start
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"strava-mcp-server": {
"command": "npx",
"args": []
}
}
}