Strava MCP Server
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.
yorrickjansen
Tools
get_user_activities
Get the authenticated user's activities. Args: ctx: The MCP request context before: An epoch timestamp for filtering activities before a certain time after: An epoch timestamp for filtering activities after a certain time page: Page number per_page: Number of items per page Returns: List of activities
get_activity
Get details of a specific activity. Args: ctx: The MCP request context activity_id: The ID of the activity include_all_efforts: Whether to include all segment efforts Returns: The activity details
get_activity_segments
Get the segments of a specific activity. Args: ctx: The MCP request context activity_id: The ID of the activity Returns: List of segment efforts for the activity
README
Strava MCP Server
A Model Context Protocol (MCP) server for interacting with the Strava API.
<a href="https://glama.ai/mcp/servers/@yorrickjansen/strava-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@yorrickjansen/strava-mcp/badge" alt="Strava Server MCP server" /> </a>
User Guide
Installation
You can easily install Strava MCP with uvx
:
uvx strava-mcp
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
):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" ] }
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:
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.
Running in Development Mode
Run the server with MCP CLI:
mcp dev strava_mcp/main.py
Manual Authentication
You can get a refresh token manually by running:
python get_token.py
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
pytest
Publishing to PyPI
Building the package
# Build both sdist and wheel
uv build
Publishing to PyPI
# Publish to Test PyPI first
uv publish --index testpypi
# Publish to PyPI
uv publish
License
Acknowledgements
Recommended Servers
Crypto Price & Market Analysis MCP Server
A Model Context Protocol (MCP) server that provides comprehensive cryptocurrency analysis using the CoinCap API. This server offers real-time price data, market analysis, and historical trends through an easy-to-use interface.
MCP PubMed Search
Server to search PubMed (PubMed is a free, online database that allows users to search for biomedical and life sciences literature). I have created on a day MCP came out but was on vacation, I saw someone post similar server in your DB, but figured to post mine.
dbt Semantic Layer MCP Server
A server that enables querying the dbt Semantic Layer through natural language conversations with Claude Desktop and other AI assistants, allowing users to discover metrics, create queries, analyze data, and visualize results.
mixpanel
Connect to your Mixpanel data. Query events, retention, and funnel data from Mixpanel analytics.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.

Nefino MCP Server
Provides large language models with access to news and information about renewable energy projects in Germany, allowing filtering by location, topic (solar, wind, hydrogen), and date range.
Vectorize
Vectorize MCP server for advanced retrieval, Private Deep Research, Anything-to-Markdown file extraction and text chunking.
Mathematica Documentation MCP server
A server that provides access to Mathematica documentation through FastMCP, enabling users to retrieve function documentation and list package symbols from Wolfram Mathematica.
kb-mcp-server
An MCP server aimed to be portable, local, easy and convenient to support semantic/graph based retrieval of txtai "all in one" embeddings database. Any txtai embeddings db in tar.gz form can be loaded
Research MCP Server
The server functions as an MCP server to interact with Notion for retrieving and creating survey data, integrating with the Claude Desktop Client for conducting and reviewing surveys.