Skip to main content
Glama
SrenoG
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