strava-mcp
by SrenoG
README.md
# Strava MCP - Activities Reader
MCP to fetch Strava activities with OAuth and automatic token refresh.
## Installation
### 1. Create a Strava app
1. Go to [strava.com/settings/api](https://www.strava.com/settings/api)
2. Create an application
3. **Authorization Callback Domain**: `localhost`
4. Note the **Client ID** and **Client Secret**
### 2. Install the MCP
```bash
mkdir -p /home/sreno/mcps/strava_custom
cp -r * /home/sreno/mcps/strava_custom/
cd /home/sreno/mcps/strava_custom
# Create the venv
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
### 3. Configure
Copy `config.json.exemple` to `config.json`
Edit `config.json`:
```json
{
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
}
```
### 4. Authentication (once only)
```bash
source .venv/bin/activate
python auth.py
```
This opens the browser, you authorize, and tokens are saved.
### 5. Configure Claude Desktop
In `~/.config/claude-desktop/claude_desktop_config.json`:
```json
{
"mcpServers": {
"StravaCustom": {
"command": "bash",
"args": ["/home/sreno/mcps/strava_custom/run.sh"]
}
}
}
```
## Available tools
- `get_recent_activities`: Latest activities (configurable limit)
- `get_activities_range`: Activities between two dates
- `get_activity_details`: Details of a specific activity
- `get_athlete_stats`: Athlete global stats
## Notes
- Tokens are refreshed automatically
- If an error occurs after several months, re-run `python auth.py`
- Port 8081 is used for the OAuth callback
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues