Strava MCP Server

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Provides access to the Strava API for retrieving and analyzing activity data, including runs, rides, and workouts. Supports fetching activity details, athlete statistics, route visualization, achievement tracking, and social features like kudos and comments.

Servidor Strava MCP

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona acceso a la API de Strava. Este servidor permite que los modelos de lenguaje interactúen con los datos de Strava, incluyendo actividades, información de los atletas y más.

Características

  • 🏃‍♂️ Seguimiento y análisis de actividad
  • 📊 Estadísticas de los atletas
  • 🗺️ Visualización de rutas
  • 🏆 Seguimiento de logros
  • 🤝 Funciones sociales (felicitaciones, comentarios)

Prerrequisitos

  • Python 3.12+
  • Credenciales de la API de Strava
  • pip (instalador de paquetes de Python)

Instalación

  1. Clonar el repositorio:
git clone https://github.com/yourusername/strava_mcp.git cd strava_mcp
  1. Crear un entorno virtual:
python -m venv venv source venv/bin/activate # On Windows: .\venv\Scripts\activate
  1. Instalar dependencias:
pip install -r requirements.txt

Configuración

  1. Crea un archivo config/.env con tus credenciales de API de Strava:
STRAVA_CLIENT_ID=your_client_id STRAVA_CLIENT_SECRET=your_client_secret STRAVA_REFRESH_TOKEN=your_refresh_token
  1. Para obtener las credenciales de la API de Strava:
    • Vaya a https://www.strava.com/settings/api
    • Crear una nueva aplicación
    • Anote el ID del cliente y el secreto del cliente
    • Siga el flujo de OAuth 2.0 para obtener su token de actualización

Uso

Usando con Claude

Una vez conectado, podrás interactuar con tus datos de Strava a través de Claude de varias maneras:

Consultas de actividad

  • "Muéstrame mis actividades recientes"
  • "Obtener detalles sobre mi última carrera"
  • "¿Cuál fue mi viaje más largo este mes?"
  • "Muéstrame actividades donde establecí récords personales"
  • "Mostrar el mapa de ruta de mi última actividad"

Análisis de rendimiento

  • "¿Cuál es mi ritmo promedio de carrera este año?"
  • "Compara mi rendimiento ciclista entre el mes pasado y este mes"
  • "Muéstrame mis zonas de frecuencia cardíaca del entrenamiento de ayer"
  • "¿Cuál es mi ganancia de elevación total para todas las actividades?"
  • Calcula mi kilometraje semanal para correr

Interacciones sociales

  • "¿Quién me dio elogios por mi última actividad?"
  • "Muéstrame comentarios sobre mi maratón"
  • "Enumerar todas las actividades de mi club"
  • "Encuentra actividades que hice con amigos"

Seguimiento de logros

  • "Enumerar todos mis logros del segmento"
  • "Mostrar mis récords personales en segmentos locales"
  • ¿Qué logros obtuve esta semana?
  • "Mostrar mi progreso en los objetivos anuales"

Datos disponibles a través de Claude

  1. Detalles de la actividad:
    • Distancia, duración, ritmo
    • Mapas de rutas y perfiles de elevación
    • Datos de frecuencia cardíaca, potencia y cadencia
    • Información sobre vueltas y tiempos parciales
    • Condiciones climáticas durante la actividad
  2. Estadísticas de atletas:
    • Totales del año hasta la fecha y de todos los tiempos
    • Récords y logros personales
    • Carga de entrenamiento y tendencias de fitness
    • Uso y mantenimiento de equipos
  3. Datos sociales:
    • Felicitaciones y comentarios
    • Actividades del club y tablas de clasificación
    • Actividades y desafíos entre amigos
    • Esfuerzos y clasificaciones de segmentos
  4. Información de ruta:
    • Mapas detallados con datos de elevación
    • Análisis de segmentos
    • Rutas y segmentos populares
    • Planificación y análisis de rutas

Como servidor MCP

Actualice la configuración de Claude Desktop:

{ "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" } } } }

Como servidor HTTP

  1. Iniciar el servidor:
./run_server.sh
  1. Acceda a la API en http://localhost:8000

Puntos finales disponibles:

  • GET /activities/recent - Lista de actividades recientes
  • GET /activities/{id} - Obtener detalles de la actividad
  • GET /activities/{id}/map - Obtener la visualización del mapa de actividades
  • GET /athlete/stats - Obtener estadísticas de atletas

Desarrollo

Estructura del proyecto

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

Contribuyendo

  1. Bifurcar el repositorio
  2. Crear una rama de características
  3. Confirme sus cambios
  4. Empujar hacia la rama
  5. Crear una solicitud de extracción

Seguridad

  • Nunca confirmes archivos .env ni credenciales de API
  • El archivo .gitignore está configurado para evitar que se envíen datos confidenciales
  • Utilice variables de entorno para todas las configuraciones sensibles

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Expresiones de gratitud

  • Documentación de la API de Strava
  • Especificación del Protocolo de Contexto de Modelo (MCP)
  • Colaboradores y mantenedores
-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor de protocolo de contexto de modelo que permite que los modelos de lenguaje interactúen con los datos de Strava, incluidas actividades, estadísticas de atletas, rutas, logros y funciones sociales.

  1. Features
    1. Prerequisites
      1. Installation
        1. Configuration
          1. Usage
            1. Using with Claude
            2. As an MCP Server
            3. As an HTTP Server
          2. Development
            1. Project Structure
            2. Contributing
          3. Security
            1. License
              1. Acknowledgments
                ID: sm3o76u1xq