Strava MCP Server
by ctvidic
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Strava MCP Server
A Model Context Protocol (MCP) server that provides access to the Strava API. This server enables language models to interact with Strava data, including activities, athlete information, and more.
Features
- πββοΈ Activity tracking and analysis
- π Athlete statistics
- πΊοΈ Route visualization
- π Achievement tracking
- π€ Social features (kudos, comments)
Prerequisites
- Python 3.12+
- Strava API credentials
- pip (Python package installer)
Installation
- Clone the repository:
Copy
- Create a virtual environment:
Copy
- Install dependencies:
Copy
Configuration
- Create a
config/.env
file with your Strava API credentials:
Copy
- To obtain Strava API credentials:
- Go to https://www.strava.com/settings/api
- Create a new application
- Note down the Client ID and Client Secret
- Follow the OAuth 2.0 flow to get your refresh token
Usage
Using with Claude
Once connected, you can interact with your Strava data through Claude in various ways:
Activity Queries
- "Show me my recent activities"
- "Get details about my last run"
- "What was my longest ride this month?"
- "Show me activities where I set personal records"
- "Display the route map for my latest activity"
Performance Analysis
- "What's my average running pace this year?"
- "Compare my cycling performance between last month and this month"
- "Show me my heart rate zones from yesterday's workout"
- "What's my total elevation gain for all activities?"
- "Calculate my weekly mileage for running"
Social Interactions
- "Who gave kudos on my latest activity?"
- "Show me comments on my marathon run"
- "List all my club activities"
- "Find activities I did with friends"
Achievement Tracking
- "List all my segment achievements"
- "Show my personal records on local segments"
- "What achievements did I earn this week?"
- "Display my progress on yearly goals"
Data Available Through Claude
- Activity Details:
- Distance, duration, pace
- Route maps and elevation profiles
- Heart rate, power, and cadence data
- Splits and lap information
- Weather conditions during activity
- Athlete Statistics:
- Year-to-date and all-time totals
- Personal records and achievements
- Training load and fitness trends
- Equipment usage and maintenance
- Social Data:
- Kudos and comments
- Club activities and leaderboards
- Friend activities and challenges
- Segment efforts and rankings
- Route Information:
- Detailed maps with elevation data
- Segment analysis
- Popular routes and segments
- Route planning and analysis
As an MCP Server
Update your Claude Desktop configuration:
Copy
As an HTTP Server
- Start the server:
Copy
- Access the API at
http://localhost:8000
Available endpoints:
- GET
/activities/recent
- List recent activities - GET
/activities/{id}
- Get activity details - GET
/activities/{id}/map
- Get activity map visualization - GET
/athlete/stats
- Get athlete statistics
Development
Project Structure
Copy
Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
Security
- Never commit
.env
files or API credentials - The
.gitignore
file is configured to prevent sensitive data from being committed - Use environment variables for all sensitive configuration
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Strava API Documentation
- Model Context Protocol (MCP) Specification
- Contributors and maintainers
This server cannot be installed
A Model Context Protocol server that enables language models to interact with Strava data, including activities, athlete statistics, routes, achievements, and social features.