MCP Strava Server
Provides OAuth-based access to Strava activities, enabling retrieval of activity data including runs, workouts, and performance metrics like distance and pace
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
flowchart TD
A[Start in VS Code] --> B[Write server.py with MCP tools and env based config]
B --> C["Install deps in venv: mcp[cli], requests, anyio"]
C --> D["Strava app settings: Authorisation Callback Domain = localhost, Website = http://localhost"]
D --> E["In Claude Desktop add server env vars:<br/>STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET,<br/>STRAVA_REDIRECT_URI, STRAVA_TOKEN_PATH, STRAVA_SCOPES"]
E --> F[Claude launches MCP server via venv python and args server.py]
F --> G{You run oauth_login in Claude}
G --> H[Server starts local callback on http://localhost:8723/callback and opens browser]
H --> I[You sign in to Strava and authorise]
I --> J[Strava redirects back with code]
J --> K["Server POST /oauth/token with client_id, client_secret, code"]
K --> |200 OK| L["Server saves access_token, refresh_token, expires_at to STRAVA_TOKEN_PATH"]
L --> M[You call list_activities or get_activity from Claude]
M --> N{Is access_token expired soon}
N -- Yes --> O["Server POST /oauth/token with refresh_token to get new tokens"]
O --> L
N -- No --> P["Server calls Strava API with Authorization: Bearer access_token"]
P --> Q[JSON returns to MCP server]
Q --> R[Claude replies to you with a summary]
%% Error branch during login
K --> |401 or other error| S{Error type}
S --> |client_secret invalid| T[Fix STRAVA_CLIENT_SECRET in Claude env then run oauth_login again]
S --> |client_id invalid| U[Fix STRAVA_CLIENT_ID then run oauth_login again]
S --> |redirect_uri mismatch| V[Keep STRAVA_REDIRECT_URI = http://localhost:8723/callback and dashboard domain = localhost]
S --> |code invalid or expired| W[Run oauth_login again and authorise promptly]MCP Strava Server
A small Python MCP server that lets Claude Desktop read your Strava activities. Ask things like: show my last 10 runs with distance and average pace.
What it does
Tools:
oauth_login,list_activities,get_activityLocal OAuth with automatic token refresh
Tokens saved to a local JSON file that is not committed
Related MCP server: Strava MCP Server
Prereqs
Windows 10 or 11 on x64
Python 3.10 or newer
Claude Desktop installed
Setup
cd C:\Users\AtikantJain\mcp-strava
python -m venv .venv
. .\.venv\Scripts\Activate.ps1
pip install -r requirements.txtThis server cannot be deployed
Maintenance
Related MCP Connectors
Connect Claude to your Intervals.icu watch data for fitness, workout review, and plan writing.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
tri-train is a training platform for triathletes that syncs activities from Strava and Garmin and exposes them to Claude through a remote MCP server. Ask Claude how your last block went, why your run pace dropped, or whether you are fresh enough for Sunday's race, and it answers from your real data: activities with laps and grade-adjusted pace, weekly load and the performance management chart (CTL/ATL/TSB), sleep, HRV and resting heart rate, and your race calendar with predictions. Claude can also act: create and adjust planned workouts with structured intervals, push them to your Garmin watch, add races and write notes. Every change is journaled and can be undone. Read and write access are separate OAuth scopes, and the server enforces them on every call. Built and hosted in Switzerland by a triathlete; data stays on our own servers (Swiss revDSG / GDPR).
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Related MCP Servers
- AlicenseBqualityDmaintenanceConnects 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.895 npmISC
- AlicenseAqualityDmaintenanceConnects Claude to your Strava account for analyzing training, predicting race times, and generating periodized training plans via natural language.1395 npmISC
- AlicenseAqualityDmaintenanceConnects Claude to your Strava account so you can query your activities, stats, routes, and segments using natural language.2715 npm1MIT
- AlicenseAqualityDmaintenanceConnects Strava training data to Claude, enabling personalized coaching through analysis of training load, workout planning, gear maintenance, and power metrics.1044 PyPI1MIT