Strava MCP Server

Accede a la API de Strava para consultar datos de actividades de atletas.

Documentación

Strava MCP Server

Python Package License: MIT Python 3.10 Install MCP Server

Un servidor Model Context Protocol (MCP) que proporciona acceso a la API de Strava. Permite a los modelos de lenguaje consultar los datos de actividades de los atletas desde la API de Strava.

Herramientas disponibles

El servidor expone las siguientes herramientas:

Consultas de actividades

  • get_activities(limit: int = 10): Obtener las actividades recientes del atleta autenticado
  • get_activities_by_date_range(start_date: str, end_date: str, limit: int = 30): Obtener actividades dentro de un rango de fechas específico
  • get_activity_by_id(activity_id: int): Obtener información detallada sobre una actividad específica
  • get_recent_activities(days: int = 7, limit: int = 10): Obtener actividades de los últimos X días

Las fechas deben proporcionarse en formato ISO (YYYY-MM-DD).

Formato de los datos de actividad

El servidor devuelve los datos de actividad con nombres de campos y unidades consistentes:

CampoDescripciónUnidad
nameNombre de la actividad-
sport_typeTipo de deporte-
start_dateFecha y hora de inicioISO 8601
distance_metresDistanciametros
elapsed_time_secondsTiempo total transcurridosegundos
moving_time_secondsTiempo en movimientosegundos
average_speed_mpsVelocidad mediametros por segundo
max_speed_mpsVelocidad máximametros por segundo
total_elevation_gain_metresGanancia total de elevaciónmetros
elev_high_metresElevación más altametros
elev_low_metresElevación más bajametros
caloriesCalorías quemadaskcal
start_latlngCoordenadas de inicio[lat, lng]
end_latlngCoordenadas de fin[lat, lng]

Autenticación

Para usar este servidor, necesitarás autenticarte con la API de Strava. Sigue estos pasos:

  1. Crea una aplicación de la API de Strava:

    • Ve a Configuración de la API de Strava
    • Crea una aplicación para obtener tu ID de cliente y secreto de cliente
    • Establece el Dominio de devolución de llamada de autorización a localhost
  2. Obtén tu token de actualización:

    • Usa el script get_strava_token.py incluido:
    python get_strava_token.py
    
    • Sigue las instrucciones para autorizar tu aplicación
    • El script guardará tus tokens en un archivo .env
  3. Establece las variables de entorno: El servidor requiere las siguientes variables de entorno:

    • STRAVA_CLIENT_ID: Tu ID de cliente de la API de Strava
    • STRAVA_CLIENT_SECRET: Tu secreto de cliente de la API de Strava
    • STRAVA_REFRESH_TOKEN: Tu token de actualización de la API de Strava

Uso

Claude para escritorio

Actualiza tu claude_desktop_config.json (ubicado en ~/Library/Application\ Support/Claude/claude_desktop_config.json en macOS y %APPDATA%/Claude/claude_desktop_config.json en Windows) para incluir lo siguiente:

{
    "mcpServers": {
        "strava": {
            "command": "uvx",
            "args": [
                "strava-mcp-server"
            ],
            "env": {
                "STRAVA_CLIENT_ID": "YOUR_CLIENT_ID",
                "STRAVA_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
                "STRAVA_REFRESH_TOKEN": "YOUR_REFRESH_TOKEN"
            }
        }
    }
}

Claude Web

Para Claude Web, puedes ejecutar el servidor localmente y conectarlo usando la extensión MCP.

Ejemplos de consultas

Una vez conectado, puedes hacer preguntas a Claude como:

  • "¿Cuáles son mis actividades recientes?"
  • "Muéstrame mis actividades de la semana pasada"
  • "¿Cuál fue mi carrera más larga en el último mes?"
  • "Obtén detalles sobre mi última actividad de ciclismo"

Manejo de errores

El servidor proporciona mensajes de error legibles para problemas comunes:

  • Formatos de fecha inválidos
  • Errores de autenticación de la API
  • Problemas de conectividad de red

Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.