strava-mcp
Provides comprehensive access to the Strava API v3, enabling management of activities, athlete profiles, clubs, segments, routes, and more, including OAuth authentication and token management.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@strava-mcpshow my last 5 running activities"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Strava MCP Server ā”
A comprehensive Model Context Protocol (MCP) server that provides full access to the Strava API v3. Perfect for integrating Strava data with Claude Desktop and other MCP-compatible clients.
⨠Features
šāāļø Activities
Create and update manual activities
Retrieve detailed activity information
Access comments, kudos, laps, and power zones
Search and filter activities with advanced parameters
Upload GPX/TCX files
š¤ Athletes
Get authenticated athlete profile and stats
Access training zones and settings
Update athlete profile information
Retrieve athlete's club memberships
š Clubs
Browse club details and activities
Access member lists and administrators
Get club-specific activity feeds
šÆ Segments & Routes
Explore segments in specific areas
Access starred segments and leaderboards
Get segment efforts and achievements
Retrieve route details and export formats
š§ Additional Features
40+ API endpoints with full Strava API v3 coverage
OAuth 2.0 authentication with automatic token management
Thread-safe operations for reliable concurrent access
Comprehensive error handling with detailed logging
MCP-compliant tools and resources classification
Related MCP server: Strava MCP Server
š Quick Start
Prerequisites
Python 3.8 or higher
Strava Developer Account
Claude Desktop or other MCP client
Installation
Clone the repository
git clone https://github.com/yourusername/strava-mcp.git cd strava-mcpCreate virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activateInstall dependencies
pip install -r requirements.txtSet up Strava API credentials
Go to Strava Developers
Create a new application
Set Authorization Callback Domain to:
localhostSet Authorization Callback URL to:
http://localhost:8080Note your
Client IDandClient Secret
Complete setup (Recommended - All users)
python setup_complete.pyThis single script will:
Guide you through OAuth setup
Save tokens to
.envfileAutomatically update your Claude Desktop config
Alternative setups for specific use cases:
# For server deployments (no Claude Desktop): python -m mcp_server.oauth_setup # For token refresh only (when tokens expire): python update_claude_config.pyConfigure Claude Desktop (if not auto-updated) Add to your
claude_desktop_config.json:{ "mcpServers": { "strava-mcp": { "command": "path/to/your/strava-mcp/start_mcp_server.bat", "cwd": "path/to/your/strava-mcp" } } }
š§ Usage
Manual Token Refresh
When your tokens expire, refresh them:
# Refresh tokens and update Claude Desktop config
python update_claude_config.py
# Or just refresh tokens in .env file
python refresh_tokens.pyAvailable Tools & Resources
š ļø Tools (Write Operations)
create_strava_activity- Create manual activitiesupdate_strava_activity- Update existing activitiesupdate_athlete_profile- Update athlete informationstar_strava_segment- Star/unstar segmentsupload_activity_file- Upload GPX/TCX filessearch_activities- Advanced activity searchexplore_segments_in_area- Find segments by locationget_segment_leaderboard- Get segment rankingsget_activity_stream_data- Get activity stream data
š Resources (Read Operations)
Activity details, comments, kudos, laps, zones
Athlete profile, stats, zones, clubs
Club details, activities, members
Gear information and usage stats
Route details and export formats
Segment information and efforts
Stream data (GPS, power, heart rate)
š Authentication
This server uses OAuth 2.0 with manual token refresh:
Secure token storage in environment variables
Thread-safe token management
Automatic Claude Desktop config updates
Manual refresh capability for full control
š Project Structure
strava-mcp/
āāā mcp_server/
ā āāā __init__.py
ā āāā __main__.py # MCP server entry point
ā āāā server.py # FastMCP server with tools/resources
ā āāā api.py # Complete Strava API v3 wrapper
ā āāā auth.py # OAuth 2.0 authentication manager
ā āāā oauth_setup.py # Initial OAuth setup utility
āāā requirements.txt # Python dependencies
āāā refresh_tokens.py # Manual token refresh utility
āāā update_claude_config.py # Claude Desktop config updater
āāā start_mcp_server.bat # Server startup script (Windows)
āāā start_mcp_server.sh # Server startup script (Unix/Linux)
āāā README.md # This fileš¤ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m 'Add some AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)Open a Pull Request
š License
This project is licensed under the MIT License - see the LICENSE file for details.
š Acknowledgments
Strava for their comprehensive API
Model Context Protocol for the standard
FastMCP for the server framework
ā Star this repo!
If you find this project useful, please consider giving it a star! It helps others discover this tool.
This server cannot be deployed
Maintenance
Related MCP Connectors
Strava MCP tools for AI: athletes, activities, segments, clubs, routes. Powered by HAPI MCP server.
Pace is a remote MCP server that exposes wearable and fitness data to Claude via the Model Context Protocol. It connects to Garmin, Oura, Whoop, Polar, Fitbit and 20+ devices and provides 15 tools for querying sleep, activity, recovery, and training data. Hosted on Google Cloud Run, OAuth 2.1 authentication, Streamable HTTP transport. Instructions: First you need to create an account at: https://pacetraining.co and connect your wearables. After that you can connect the remote Server via Custom Connector in Claude and OAuth 2.1 Flow startet.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Connect Claude to your Intervals.icu watch data for fitness, workout review, and plan writing.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables Claude to access and analyze your Strava activities through OAuth authentication. Supports retrieving activity lists and detailed workout data for fitness tracking and analysis.2-
- AlicenseAqualityDmaintenanceAn MCP server that enables interaction with the Strava API v3 to manage fitness activities, athlete profiles, segments, and routes. It supports retrieving detailed performance metrics, exploring geographic data, and managing club information through natural language.43 npmISC
- FlicenseBqualityDmaintenanceConnects Claude or any MCP client to the Strava API v3, enabling access to fitness data such as activities, athletes, clubs, segments, routes, and streams.37-
- FlicenseNot gradedqualityDmaintenanceIntegrates Strava data for marathon coaching and training analysis, enabling Claude Desktop to access recent runs, weekly mileage, and pace trends.1-