LABSCO SUMMARY
Read-only access to your own training log.
Everything here is a read: it answers questions about what you already did rather than posting or editing anything on Strava. Setup is the honest cost — there is no published binary, and the refresh token has to be obtained by hand before the first query works.
What it is
An MCP server over the Strava API, run from a clone on your machine with your own Strava application credentials. It reads your training data so a model can compare weeks, summarize a race or pull the map for a ride without you exporting anything.
What you get
- Activity detail: distance, duration and pace, splits and lap information, heart rate, power and cadence, plus the weather during the effort
- Route maps and elevation profiles for an activity
- Athlete statistics — year-to-date and all-time totals, personal records, training load and fitness trends, equipment usage
- Social data: kudos and comments, club activities and leaderboards, friends' activities and challenges
- Segment efforts, achievements and rankings
- An optional HTTP mode on port 8000 with
/activities/recent,/activities/{id},/activities/{id}/mapand/athlete/stats
Requirements
A Strava account and your own API application, created at https://www.strava.com/settings/api. You need three values — STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET and STRAVA_REFRESH_TOKEN — and the refresh token comes from walking the OAuth flow yourself, which is the step that takes the time. Python 3.12+; clone the repository, install from requirements.txt, and point the client at python src/strava_server.py with the three values in the env block. MIT.
Setup effort
Build from source — git clone https://github.com/ctvidic/strava-mcp-server.git
USE CASES
01
Comparing this month's riding to last month's
Ask for the two windows together and let the model do the arithmetic on distance, elevation and pace instead of reading two dashboards.
02
Debriefing a hard session
Pull the splits, heart rate zones and weather from a single activity and ask what the numbers say about the effort.
03
Tracking progress on a yearly goal
Read the year-to-date totals and personal records, then ask what pace the remaining months need.
BEFORE YOU INSTALL
What to know first
Requires
- python on PATH
- Python 3.12+
- STRAVA_CLIENT_ID in your environment
- STRAVA_CLIENT_SECRET in your environment
- STRAVA_REFRESH_TOKEN in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
TERMINAL
git clone https://github.com/ctvidic/strava-mcp-server.git
cd strava-mcp-server
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
pip install -r requirements.txtMCP Clients
Claude Desktop
CLAUDE DESKTOP · JSON
{
"mcpServers": {
"Strava": {
"command": "python",
"args": [
"src/strava_server.py"
],
"cwd": "<YOUR_PATH_TO_STRAVA_MCP>",
"env": {
"STRAVA_CLIENT_ID": "<YOUR_STRAVA_CLIENT_ID>",
"STRAVA_CLIENT_SECRET": "<YOUR_STRAVA_CLIENT_SECRET>",
"STRAVA_REFRESH_TOKEN": "<YOUR_STRAVA_REFRESH_TOKEN>"
}
}
}
}<YOUR_PATH_TO_STRAVA_MCP> is the full path of your strava-mcp-server clone (the script path is relative to it), and <YOUR_STRAVA_REFRESH_TOKEN> the refresh token from Strava's OAuth flow. The dependencies went into the clone's venv, so if plain python does not see them, put the full path of that venv's python in "command".