Skip to main content
Glama

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

  1. Clone the repository:

git clone https://github.com/yourusername/strava_mcp.git cd strava_mcp
  1. Create a virtual environment:

python -m venv venv source venv/bin/activate # On Windows: .\venv\Scripts\activate
  1. Install dependencies:

pip install -r requirements.txt

Configuration

  1. Create a config/.env file with your Strava API credentials:

STRAVA_CLIENT_ID=your_client_id STRAVA_CLIENT_SECRET=your_client_secret STRAVA_REFRESH_TOKEN=your_refresh_token
  1. To obtain Strava API credentials:

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

  1. Activity Details:

    • Distance, duration, pace

    • Route maps and elevation profiles

    • Heart rate, power, and cadence data

    • Splits and lap information

    • Weather conditions during activity

  2. Athlete Statistics:

    • Year-to-date and all-time totals

    • Personal records and achievements

    • Training load and fitness trends

    • Equipment usage and maintenance

  3. Social Data:

    • Kudos and comments

    • Club activities and leaderboards

    • Friend activities and challenges

    • Segment efforts and rankings

  4. 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:

{ "mcpServers": { "Strava": { "command": "python", "args": ["src/strava_server.py"], "cwd": "/path/to/strava_mcp", "env": { "STRAVA_CLIENT_ID": "your_client_id", "STRAVA_CLIENT_SECRET": "your_client_secret", "STRAVA_REFRESH_TOKEN": "your_refresh_token" } } } }

As an HTTP Server

  1. Start the server:

./run_server.sh
  1. 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

strava_mcp/ ├── src/ │ ├── strava_server.py # MCP server implementation │ ├── strava_http_server.py # HTTP API server │ ├── map_utils.py # Map visualization utilities │ └── templates.py # HTML templates ├── config/ │ └── .env # Environment variables (not in git) ├── requirements.txt # Python dependencies └── run_server.sh # Server startup script

Contributing

  1. Fork the repository

  2. Create a feature branch

  3. Commit your changes

  4. Push to the branch

  5. 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

-
security - not tested
-
license - not tested
-
quality - not tested

Related MCP Servers

  • A
    security
    -
    license
    A
    quality
    Integration Strava API с Model Context Protocol SDK
    Last updated -
    4
    MIT License
  • -
    security
    -
    license
    -
    quality
    A Model Context Protocol server that provides language models with access to personal Whoop fitness data, allowing queries for cycles, recovery, strain, and workout information from the Whoop API.
    Last updated -
    12
    • Apple
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that provides language models with access to Strava API data, allowing them to query and analyze athlete activities from Strava.
    Last updated -
    4
    17
    MIT License
    • Apple
  • A
    security
    -
    license
    A
    quality
    Model Context Protocol server that enables LLMs and AI assistants to retrieve real-time Dota 2 statistics, match data, player information, and game metrics through a standardized interface.
    Last updated -
    17
    4
    MIT License
    • Linux

View all related MCP servers

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/ctvidic/strava-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server