strava-mcp
Enables full integration with Strava API v3 for managing activities, athletes, clubs, segments, and routes through MCP-compatible clients like Claude Desktop.
README
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
š 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-mcp -
Create virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate -
Install dependencies
pip install -r requirements.txt -
Set up Strava API credentials
- Go to Strava Developers
- Create a new application
- Set Authorization Callback Domain to:
localhost - Set Authorization Callback URL to:
http://localhost:8080 - Note your
Client IDandClient Secret
-
Complete setup (Recommended - All users)
python setup_complete.pyThis single script will:
- Guide you through OAuth setup
- Save tokens to
.envfile - Automatically 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.py -
Configure 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.py
Available 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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.