Strava
STDIOMCP server for integrating with Strava API to access fitness activities data
MCP server for integrating with Strava API to access fitness activities data
A Model Context Protocol (MCP) server for interacting with the Strava API.
You can easily install Strava MCP with uvx:
uvx strava-mcp
Create a Strava API Application:
localhostConfigure Your Credentials:
Create a credentials file (e.g., ~/.ssh/strava.sh):
export STRAVA_CLIENT_ID=your_client_id export STRAVA_CLIENT_SECRET=your_client_secret
Configure Claude Desktop:
Add the following to your Claude configuration (/Users/<username>/Library/Application Support/Claude/claude_desktop_config.json):
"strava": { "command": "bash", "args": [ "-c", "source ~/.ssh/strava.sh && uvx strava-mcp" ] }
The first time you use the Strava MCP tools:
Retrieves activities for the authenticated user.
Parameters:
before (optional): Epoch timestamp for filteringafter (optional): Epoch timestamp for filteringpage (optional): Page number (default: 1)per_page (optional): Number of items per page (default: 30)Gets detailed information about a specific activity.
Parameters:
activity_id: The ID of the activityinclude_all_efforts (optional): Include segment efforts (default: false)Retrieves segments from a specific activity.
Parameters:
activity_id: The ID of the activityGets the leaderboard for a specific segment.
Parameters:
segment_id: The ID of the segmentClone the repository:
git clone <repository-url> cd strava
Install dependencies:
uv install
Set up environment variables:
export STRAVA_CLIENT_ID=your_client_id export STRAVA_CLIENT_SECRET=your_client_secret
Alternatively, create a .env file with these variables.
Run the server with MCP CLI:
mcp dev strava_mcp/main.py
You can get a refresh token manually by running:
python get_token.py
strava_mcp/: Main package directory
__init__.py: Package initializationconfig.py: Configuration settings using pydantic-settingsmodels.py: Pydantic models for Strava API entitiesapi.py: Low-level API client for Stravaauth.py: Strava OAuth authentication implementationoauth_server.py: Standalone OAuth server implementationservice.py: Service layer for business logicserver.py: MCP server implementationtests/: Unit testsstrava_mcp/main.py: Main entry point to run the serverget_token.py: Utility script to get a refresh token manuallypytest
# Build both sdist and wheel uv build
# Publish to Test PyPI first uv publish --index testpypi # Publish to PyPI uv publish