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.
Related MCP Servers
- Flicense-qualityDmaintenanceEnables Claude to access and analyze your Strava activities through OAuth authentication. Supports retrieving activity lists and detailed workout data for fitness tracking and analysis.Last updated2
- AlicenseBqualityDmaintenanceEnables interaction with Strava's API to access and manage activities, athlete data, routes, segments, clubs, and gear through natural language.Last updated2239MIT
- 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.Last updated125ISC
- AlicenseBqualityDmaintenanceConnects Claude to the Strava API to provide direct access to fitness data, including athlete statistics, detailed activity logs, and time-series performance metrics. It enables users to analyze training progress, compare workouts, and retrieve specific segment details through natural language queries.Last updated8125ISC
Related MCP Connectors
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Garmin data in Claude: 135 tools ā activities, sleep, HRV, training, workouts. Free, open source.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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