Install
$ agentstack add mcp-yorrickjansen-strava-mcp ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Strava MCP Server
[](https://github.com/yorrickjansen/strava-mcp/actions/workflows/ci.yml) [](https://codecov.io/gh/yorrickjansen/strava-mcp)
A Model Context Protocol (MCP) server for interacting with the Strava API.
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):
``bash 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//Library/Application Support/Claude/claude_desktop_config.json):
``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:
``bash git clone cd strava ``
- Install dependencies:
``bash uv install ``
- Set up environment variables:
``bash 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 implementationtests/: 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
[MIT License](LICENSE)
Acknowledgements
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: yorrickjansen
- Source: yorrickjansen/strava-mcp
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.