Skip to content

Repository files navigation

Strava MCP Server

A Model Context Protocol (MCP) server that integrates Strava data for marathon coaching and training analysis. This server enables Claude Desktop to access your Strava activities and provide personalized running insights.

Features

  • Recent Activity Analysis - Fetch and analyze your recent running activities
  • Weekly Mileage Tracking - Calculate weekly mileage totals and trends
  • Pace Trend Analysis - Analyze pace improvements and patterns over time
  • Automatic Token Management - Handles Strava API token refresh automatically

Quick Setup

1. Prerequisites

  • Python 3.8 or higher
  • Strava account with API access
  • Claude Desktop application

2. Clone and Install

git clone <repository-url>
cd strava-mcp
pip install -r requirements.txt

3. Configure Strava API

  1. Create a Strava API application at developers.strava.com
  2. Copy .env-template to .env:
    cp .env-template .env
  3. Fill in your actual Strava API credentials in .env:
    STRAVA_CLIENT_ID=your_actual_client_id
    STRAVA_CLIENT_SECRET=your_actual_client_secret
    STRAVA_REFRESH_TOKEN=your_actual_refresh_token
    

4. Test the Server

python strava_mcp_server.py

The server should start without errors. Press Ctrl+C to stop it.

5. Configure Claude Desktop

Add this configuration to your Claude Desktop MCP settings:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "strava-marathon-coach": {
      "command": "python",
      "args": ["/absolute/path/to/strava_mcp_server.py"],
      "env": {
        "STRAVA_CLIENT_ID": "your_client_id",
        "STRAVA_CLIENT_SECRET": "your_client_secret",
        "STRAVA_REFRESH_TOKEN": "your_refresh_token"
      }
    }
  }
}

Important: Use the absolute path to your strava_mcp_server.py file.

6. Restart Claude Desktop

Restart Claude Desktop completely for the MCP server to be recognized.

Available Tools

Tool Description Default Parameters
get_recent_runs Fetches recent running activities Last 30 days
get_weekly_mileage Calculates weekly mileage totals Last 4 weeks
analyze_pace_trends Analyzes pace trends over time Last 30 days

Usage Examples

Once configured, ask Claude:

  • "What are my recent runs?"
  • "Show me my weekly mileage for the past 4 weeks"
  • "Analyze my pace trends"
  • "How is my marathon training progressing?"

Security Notes

  • Never commit your .env file to version control
  • Keep your Strava API credentials secure
  • The .env-template file shows the required format but contains example values only

Troubleshooting

Server Won't Start

  • Verify all environment variables are set in .env
  • Check Python package installation: pip install -r requirements.txt
  • Validate Strava API credentials

Claude Can't Connect

  • Ensure absolute path in Claude Desktop config
  • Verify environment variables in config match your actual credentials
  • Restart Claude Desktop after config changes
  • Check Claude Desktop logs for connection errors

API Errors

  • Refresh token may be expired - re-authorize your Strava app
  • Verify your Strava API app has "read activities" permissions

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

License

MIT License - see LICENSE file for details

About

Strava MCP connector for claude desktop.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages