Content
# strava-mcp
Read-only MCP server exposing Strava fitness data for AI agents.
## Tools
### Athlete
| Tool | Description |
|------|-------------|
| `get_authenticated_athlete` | Get athlete profile |
| `get_athlete_zones` | Get heart rate and power zones |
| `get_athlete_stats` | Get activity statistics (totals, recent) |
### Activities
| Tool | Description |
|------|-------------|
| `list_activities` | List activities with pagination and date filters |
| `get_activity` | Get detailed activity information |
| `get_activity_streams` | Get time-series data (HR, GPS, power, etc.) |
| `get_activity_laps` | Get lap/split data |
| `get_activity_comments` | Get activity comments |
| `get_activity_kudos` | Get athletes who gave kudos |
### Gear
| Tool | Description |
|------|-------------|
| `get_gear` | Get gear details (bikes, shoes) |
### Segments
| Tool | Description |
|------|-------------|
| `list_starred_segments` | List starred segments |
| `get_segment` | Get segment details |
| `get_segment_efforts` | Get athlete's efforts on a segment |
### Routes
| Tool | Description |
|------|-------------|
| `list_athlete_routes` | List saved routes |
| `get_route` | Get route details |
### Clubs
| Tool | Description |
|------|-------------|
| `list_athlete_clubs` | List club memberships |
| `get_club` | Get club details |
| `list_club_activities` | List recent club activities |
## Setup
See [SETUP.md](SETUP.md) for API configuration.
## Run
```bash
# Local (stdio)
uv run python server.py
# Docker (HTTP)
docker compose up
```
## Claude Desktop Configuration
Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"strava": {
"command": "uv",
"args": ["run", "--directory", "/path/to/strava-mcp", "python", "server.py"],
"env": {
"STRAVA_ACCESS_TOKEN": "your_access_token_here"
}
}
}
}
```
## License
MIT