Integrations
Provides tools for accessing data from the Strava API, including retrieving user activities, getting specific activity details, accessing activity segments, and viewing segment leaderboards.
Strava MCP Server
A Model Context Protocol (MCP) server for interacting with the Strava API.
User Guide
Installation
You can easily install Strava MCP with uvx
:
Setting Up Strava Credentials
- Create a Strava API Application:
- Go to https://www.strava.com/settings/api
- Create a new application to obtain your Client ID and Client Secret
- For "Authorization Callback Domain", enter
localhost
- Configure Your Credentials:
Create a credentials file (e.g.,
~/.ssh/strava.sh
):Copy - Configure Claude Desktop:
Add the following to your Claude configuration (
/Users/<username>/Library/Application Support/Claude/claude_desktop_config.json
):Copy
Authentication
The first time you use the Strava MCP tools:
- An authentication flow will automatically start
- Your browser will open to the Strava authorization page
- After authorizing, you'll be redirected back to a local page
- Your refresh token will be saved automatically for future use
Available Tools
Get User Activities
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)
Get Activity
Gets detailed information about a specific activity.
Parameters:
activity_id
: The ID of the activityinclude_all_efforts
(optional): Include segment efforts (default: false)
Get Activity Segments
Retrieves segments from a specific activity.
Parameters:
activity_id
: The ID of the activity
Get Segment Leaderboard
Gets the leaderboard for a specific segment.
Parameters:
segment_id
: The ID of the segment- Various optional filters (gender, age group, etc.)
Developer Guide
Project Setup
- Clone the repository:Copy
- Install dependencies:Copy
- Set up environment variables:Alternatively, create aCopy
.env
file with these variables.
Running in Development Mode
Run the server with MCP CLI:
Manual Authentication
You can get a refresh token manually by running:
Project Structure
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 implementation
tests/
: Unit testsstrava_mcp/main.py
: Main entry point to run the serverget_token.py
: Utility script to get a refresh token manually
Running Tests
Publishing to PyPI
Building the package
Publishing to PyPI
License
Acknowledgements
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
A Model Context Protocol server that enables users to access Strava fitness data, including user activities, activity details, segments, and leaderboards through a structured API interface.
Related Resources
Related MCP Servers
- -securityAlicense-qualityIntegration Strava API с Model Context Protocol SDKLast updated -PythonMIT License
- -securityFlicense-qualityA Model Context Protocol server that provides language models with access to personal Whoop fitness data, allowing queries for cycles, recovery, strain, and workout information from the Whoop API.Last updated -2Python
- AsecurityAlicenseAqualityA Model Context Protocol server that provides language models with access to Strava API data, allowing them to query and analyze athlete activities from Strava.Last updated -43PythonMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables language models to interact with Strava data, including activities, athlete statistics, routes, achievements, and social features.Last updated -2PythonMIT License