MCP Strava Server

by MariyaFilippova

21 stars
330 downloads
Not rated
GitHub

About

A Model Context Protocol (MCP) server that integrates Strava with Claude for Desktop, enabling AI-powered analysis of your fitness activities.

Details

Author
MariyaFilippova
GitHub stars
21
Downloads
330
Categories
Other

- Route generation with Google Maps links (no API key needed)
- Discover popular Strava segments nearby and build routes
- OAuth authentication with automatic token refresh
- Activity analysis by ID or recent activities list
- Data streams: heart rate, pace, altitude, cadence, power, GPS
- Lap splits with distance, time, speed, elevation, and HR
- Paginated search of activities by date range
- Historical comparisons between months and year-over-year

Clone the repository, configure Strava API credentials in src/main/resources/.env, build with ./gradlew shadowJar, then add the server to Claude for Desktop's claude_desktop_config.json with the Java command pointing to the built JAR. On first use, run the auth_strava tool to authorize via browser; tokens are persisted and auto-refreshed. Use the logout tool to switch accounts.

MCP Strava Server

Screenshot 2026-03-05 at 15 53 28

A Model Context Protocol (MCP) server that integrates Strava with Claude for Desktop, enabling AI-powered analysis of your fitness activities.

Features

- ⭐ Route Generation - suggest round-trip routes with a Google Maps link (no API key needed) - ⭐ Popular Routes - discover popular Strava segments nearby and get a Google Maps loop through them - OAuth Authentication with automatic token refresh and persistence - Activity Analysis - get details on any activity by ID, or browse recent ones - Data Streams - heart rate, pace, altitude, cadence, power, GPS for any activity - Lap Splits - per-lap distance, time, speed, elevation, and heart rate - Paginated Search - find activities by date range with full pagination - Historical Comparisons - compare months year-over-year - Statistics - all-time stats, weekly/monthly summaries - Filtering - by activity type (Run, Ride, Swim, etc.)

Available Tools

| Tool | Description |
|------|-------------|
| auth_strava | Authorize with Strava (opens browser) |
| logout | Clear stored tokens to switch accounts |
| last_activity | Get details of your most recent activity |
| get_activity | Fetch any activity by its ID |
| recent_activities | List last 10 activities |
| search_activities | Paginated search with optional date range (before/after epoch, page, per_page) |
| athlete_stats | All-time statistics (rides, runs, swims) |
| activities_by_type | Filter activities by sport type |
| weekly_summary | Summary of the past 7 days |
| monthly_summary | Summary of the past 30 days |
| month_summary | Summary for a specific month/year |
| compare_months | Compare two months (e.g., Jan 2025 vs Jan 2026) |
| get_streams | Heart rate data for last activity |
| get_activity_streams | Full data streams (HR, pace, altitude, cadence, power, GPS, etc.) for any activity |
| get_laps | Lap splits for any activity (distance, time, speed, elevation, HR) |
| suggest_route | Generate a round-trip route and get a Google Maps link for navigation |
| popular_routes | Find popular Strava segments nearby and build a Google Maps route through them |

Setup

1. Clone the Repository

git clone https://github.com/MariyaFilippova/mcp-strava.git
cd mcp-strava

2. Configure Strava API Credentials

Get your credentials from Strava API settings.

Create/edit src/main/resources/.env:

CLIENT_ID="your-client-id"
CLIENT_SECRET="your-client-secret"

3. Build the Project

./gradlew shadowJar

The JAR will be at: build/libs/strava-mcp-server-2.1.0-all.jar

4. Configure Claude for Desktop

Edit Claude's configuration file:

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.