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 "Install 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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Anway-Kapoor/strava-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server