Strava
@eddmann
About Strava
A comprehensive Model Context Protocol server for Strava integration. Query and analyze your activities, explore segments and routes, compare workouts, and track training progress. Includes 11 tools organized into Activities, Athlete, Segments, Routes, and Analysis categories, pl
Config
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"strava": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/ABSOLUTE/PATH/TO/strava-mcp.env:/app/.env",
"ghcr.io/eddmann/strava-mcp:latest",
"--transport",
"stdio"
]
}
}
}Tools
No tools detected
We auto-extract tools from the README. The maintainer can list them under a ## Tools heading to populate this section.
Overview
What is Strava?
An MCP server that provides 11 tools to interact with a user's Strava account, organized into activities, athlete profile, segments, routes, and analysis. It also includes a resource for athlete context and prompt templates for common queries, enabling access through Claude, ChatGPT, and other LLMs.
How to use Strava?
Install using Python 3.11+ with uv or Docker, then run the interactive authentication wizard (strava-mcp-auth). Add the server to your Claude Desktop configuration using uv run or Docker commands, and then ask natural language questions about your activities, segments, routes, or training analysis.
Key features of Strava
- 11 tools across 5 categories (activities, athlete, segments, routes, analysis)
- 1 MCP resource for ongoing athlete profile context
- 6 built-in prompt templates for common queries
- Supports both stdio (single-user) and HTTP (multi-user) modes
- OAuth-based authentication with automatic token refresh
- Cursor-based pagination with sensible defaults (10 items for most lists)
Use cases of Strava
- Analyze recent training over a specified time period
- Explore and track performance on specific segments
- Compare multiple runs or races side-by-side
- Export routes to GPX or TCX format
- Find activities similar to a reference workout for progress tracking
FAQ from Strava
What are the prerequisites for running Strava?
You need Python 3.11+ and uv, or Docker. A Strava API application must be created at strava.com with the callback domain set to localhost.
How does authentication work?
For stdio mode, a one-time OAuth flow through the browser saves tokens to a .env file with auto-refresh. For HTTP mode, per-user OAuth flow stores tokens in a session store (in-memory or DynamoDB) with a configurable expiration (default 12 hours).
What data can I access with this server?
The server can read your athlete profile and zones, all activity data, activity summaries, and star/unstar segments. The required OAuth scopes include profile:read_all, activity:read_all, activity:read, and profile:write.
Can I use this server with ChatGPT?
Yes, by running the server in HTTP mode and exposing it via ngrok or a public URL. Set STRAVA_MCP_BASE_URL to the ngrok URL and use that URL (with /mcp path) as your MCP server endpoint in ChatGPT.
What transport modes does the server support?
Two modes: stdio (default, single-user via standard input/output) and HTTP (streamable HTTP, multi-user with separate sessions). Select with the --transport flag (e.g., --transport http).
Frequently asked questions
What are the prerequisites for running Strava?
You need Python 3.11+ and uv, or Docker. A Strava API application must be created at strava.com with the callback domain set to `localhost`.
How does authentication work?
For stdio mode, a one-time OAuth flow through the browser saves tokens to a `.env` file with auto-refresh. For HTTP mode, per-user OAuth flow stores tokens in a session store (in-memory or DynamoDB) with a configurable expiration (default 12 hours).
What data can I access with this server?
The server can read your athlete profile and zones, all activity data, activity summaries, and star/unstar segments. The required OAuth scopes include `profile:read_all`, `activity:read_all`, `activity:read`, and `profile:write`.
Can I use this server with ChatGPT?
Yes, by running the server in HTTP mode and exposing it via ngrok or a public URL. Set `STRAVA_MCP_BASE_URL` to the ngrok URL and use that URL (with `/mcp` path) as your MCP server endpoint in ChatGPT.
What transport modes does the server support?
Two modes: stdio (default, single-user via standard input/output) and HTTP (streamable HTTP, multi-user with separate sessions). Select with the `--transport` flag (e.g., `--transport http`).
Basic information
More Other MCP servers
XcodeBuildMCP
cameroncookeA Model Context Protocol (MCP) server and CLI that provides tools for agent use when working on iOS and macOS projects.
Blender
ahujasidOpen-source MCP to use Blender with any LLM
AutoBrowser MCP
autobrowser-aiBrowser MCP is a Model Context Provider (MCP) server that allows AI applications to control your browser
Unity MCP ✨
justinpbarnettUnity MCP acts as a bridge between AI assistants and your Unity Editor. Give your LLM tools to manage assets, control scenes, edit scripts, and automate tasks within Unity.
Awesome Mlops
visengerA curated list of references for MLOps
Comments