Strava MCP Server

by r-huijts

Integrations

  • Uses .ENV files to store and manage authentication credentials and configuration options for the Strava API integration.

  • Runs as a Node.js application, with the server being launched through the Node runtime in Claude's configuration.

  • Provides tools for accessing Strava data including recent activities, profile details, athlete stats, activity streams (power, heart rate, cadence), segments management, detailed activity information, route management, and exporting routes in GPX/TCX formats.

Servidor Strava MCP

Este proyecto implementa un servidor de Protocolo de Contexto de Modelo (MCP) en TypeScript que actúa como puente con la API de Strava. Expone los datos y las funcionalidades de Strava como herramientas que los Grandes Modelos de Lenguaje (LLM) pueden utilizar a través del estándar MCP.

Características

  • 🏃 Accede a actividades recientes, perfil y estadísticas.
  • 📊 Obtenga flujos de actividad detallados (potencia, frecuencia cardíaca, cadencia, etc.).
  • 🗺️ Explora, visualiza, destaca y administra segmentos.
  • ⏱️ Ver información detallada sobre la actividad y el esfuerzo del segmento.
  • 📍 Listado y visualización de detalles de rutas guardadas.
  • 💾 Exportar rutas en formato GPX o TCX al sistema de archivos local.
  • 🤖 Respuestas JSON compatibles con IA a través de MCP.
  • 🔧 Utiliza Strava API V3.

Ejemplos de interacción en lenguaje natural

Hazle preguntas como estas a tu asistente de IA para interactuar con tus datos de Strava:

Actividad reciente y perfil:

  • "Muéstrame mis actividades recientes de Strava".
  • "¿Cuales fueron mis últimos 3 viajes?"
  • "Obtener la información de mi perfil de Strava".
  • "¿Cuál es mi nombre de usuario de Strava?"

Flujos de actividad y datos:

  • "Obtén los datos de frecuencia cardíaca de mi carrera matutina de ayer".
  • "Muéstrame los datos de potencia de mi último viaje".
  • "¿Cuál fue mi perfil de cadencia para mi recorrido de cien kilómetros del fin de semana?"
  • "Obtener todos los datos de transmisión de mi entrenamiento del jueves por la noche".
  • "Muéstrame el perfil de elevación para mi ascenso al Monte Diablo".

Estadísticas:

  • "¿Cuáles son mis estadísticas de carrera de este año en Strava?"
  • "¿Cuánto he recorrido en bicicleta en total?"
  • "Muéstrame mis totales de natación de todos los tiempos".

Actividades específicas:

  • "Dame los detalles de mi última carrera."
  • "¿Cuál fue la potencia promedio en mi entrenamiento por intervalos el martes?"
  • "¿Usé mi bicicleta Trek para viajar ayer?"

Clubs:

  • "¿En qué clubes de Strava estoy?"
  • "Enumera los clubes a los que me he unido."

Segmentos:

  • "Enumere los segmentos que protagonicé cerca de Boulder, Colorado".
  • "Muestra mis segmentos favoritos."
  • Obtén detalles del segmento "Alpe du Zwift".
  • "¿Hay algún buen tramo para correr cerca del Golden Gate Park?"
  • "Encuentra escaladas desafiantes cerca de Boulders Flagstaff Mountain".
  • "Estrella el segmento 'Flagstaff Road Climb' para mí".
  • "Quita la estrella del segmento 'Lefthand Canyon'".

Esfuerzos del segmento:

  • "Muestra mis esfuerzos en el segmento 'Sunshine Canyon' este mes".
  • "Enumere mis intentos en Box Hill entre enero y junio de este año".
  • "Obtén los detalles de mi récord personal en Alpe d'Huez".

Rutas:

  • "Enumerar mis rutas guardadas de Strava".
  • "Mostrar la segunda página de mis rutas."
  • "¿Cuál es el desnivel de mi ruta Boulder Loop?"
  • "Obtén la descripción de mi ruta 'Boulder Loop'".
  • "Exportar mi ruta 'Boulder Loop' como un archivo GPX".
  • "Guarda mi ruta del domingo por la mañana como un archivo TCX".

Ejemplo de mensaje avanzado

A continuación se muestra un ejemplo de una solicitud más avanzada para crear un análisis de tus actividades de Strava realizado por un entrenador de ciclismo profesional:

You are Tom Verhaegen, elite cycling coach and mentor to world champion Mathieu van der Poel. Analyze my most recent Strava activity. Provide a thorough, data-driven assessment of the ride, combining both quantitative insights and textual interpretation. Begin your report with a written summary that highlights key findings and context. Then, bring the raw numbers to life: build an interactive, visually striking dashboard using HTML, CSS, and JavaScript. Use bold, high-contrast colors and intuitive, insightful chart types that best suit each metric (e.g., heart rate, power, cadence, elevation). Embed clear coaching feedback and personalized training recommendations directly within the visualization. These should be practical, actionable, and grounded solely in the data provided—no assumptions or fabrications. As a bonus, sprinkle in motivational quotes and cheeky commentary from Mathieu van der Poel himself—he's been watching my rides with one eyebrow raised and a smirk of both concern and amusement. Goal: Deliver a professional-grade performance analysis that looks and feels like it came straight from the inner circle of world-class cycling.

Este mensaje crea un análisis personalizado de tu actividad más reciente en Strava, completo con comentarios de entrenamiento profesional y un panel de visualización personalizado.

⚠️ Secuencia de configuración importante

Para una integración exitosa con Claude, siga estos pasos en el orden exacto:

  1. Instalar el servidor y sus dependencias
  2. Configurar el servidor en la configuración de Claude
  3. Completar el flujo de autenticación de Strava
  4. Reinicie Claude para garantizar la carga adecuada de la variable de entorno

Saltarse pasos o realizarlos fuera de orden puede provocar que Claude no lea correctamente las variables de entorno.

Instalación y configuración

  1. Prerrequisitos:
    • Node.js (se recomienda v18 o posterior)
    • npm (normalmente viene con Node.js)
    • Una cuenta de Strava

1. De la fuente

  1. Repositorio de clones:
    git clone https://github.com/r-huijts/strava-mcp.git cd strava-mcp
  2. Dependencias de instalación:
    npm install
  3. Construir el proyecto:
    npm run build

2. Configurar Claude Desktop

Actualice su archivo de configuración de Claude:

{ "mcpServers": { "strava-mcp-local": { "command": "node", "args": [ "/absolute/path/to/your/strava-mcp/dist/server.js" ] // Environment variables are read from the .env file by the server } } }

Asegúrese de reemplazar /absolute/path/to/your/strava-mcp/ con la ruta real a su instalación.

3. Configuración de la autenticación de Strava

El script setup-auth.ts facilita la configuración de la autenticación con la API de Strava. Sigue estos pasos cuidadosamente:

Crear una aplicación API de Strava
  1. Vaya a https://www.strava.com/settings/api
  2. Crear una nueva aplicación:
    • Ingrese los detalles de su solicitud (nombre, sitio web, descripción)
    • Importante: Establezca "Dominio de devolución de llamada de autorización" en localhost
    • Anote su ID de cliente y secreto de cliente
Ejecutar el script de configuración
# In your strava-mcp directory npx tsx scripts/setup-auth.ts

Siga las instrucciones para completar el flujo de autenticación (instrucciones detalladas en la sección Autenticación a continuación).

4. Reiniciar Claude

Tras completar todos los pasos anteriores, reinicie Claude Desktop para que los cambios surtan efecto. Esto garantiza que:

  • Se carga la nueva configuración
  • Las variables de entorno se leen correctamente
  • El servidor Strava MCP se inicializó correctamente

🔑 Variables de entorno

VariableDescripción
ID DE CLIENTE DE STRAVASu ID de cliente de la aplicación Strava (obligatorio)
SECRETO DEL CLIENTE DE STRAVASu secreto de cliente de la aplicación Strava (obligatorio)
TOKEN DE ACCESO DE STRAVASu token de acceso a la API de Strava (generado durante la configuración)
TOKEN DE ACTUALIZACIÓN DE STRAVASu token de actualización de API de Strava (generado durante la configuración)
RUTA_EXPORTACIÓN_RUTARuta absoluta para guardar los archivos de ruta exportados (opcional)

Manejo de tokens

Este servidor implementa la actualización automática de tokens. Cuando el token de acceso inicial caduca (normalmente después de 6 horas), el servidor utiliza automáticamente el token de actualización almacenado en .env para obtener un nuevo token de acceso y un nuevo token de actualización. Estos nuevos tokens se actualizan tanto en el proceso en ejecución como en el archivo .env , lo que garantiza la continuidad del funcionamiento.

Solo necesita ejecutar el script scripts/setup-auth.ts una vez para la configuración inicial.

Configurar ruta de exportación (opcional)

Si desea utilizar las herramientas export-route-gpx o export-route-tcx , deberá especificar un directorio para guardar los archivos exportados.

Edite su archivo .env y agregue/actualice la variable ROUTE_EXPORT_PATH :

# Optional: Define an *absolute* path for saving exported route files (GPX/TCX) # Ensure this directory exists and the server process has write permissions. # Example: ROUTE_EXPORT_PATH=/Users/your_username/strava-exports ROUTE_EXPORT_PATH=

Reemplace el marcador de posición con la ruta absoluta al directorio de exportación deseado. Asegúrese de que el directorio exista y que el servidor tenga permiso para escribir en él.

Referencia de API

El servidor expone las siguientes herramientas MCP:


get-recent-activities

Obtiene las actividades recientes del usuario autenticado.

  • Cuándo usarlo: Cuando el usuario pregunta sobre sus entrenamientos, actividades, carreras, paseos, etc. recientes.
  • Parámetros:
    • perPage (opcional):
      • Tipo: number
      • Descripción: Número de actividades a recuperar.
      • Predeterminado: 30
  • Salida: Lista de texto formateado de actividades recientes (Nombre, ID, Distancia, Fecha).
  • Errores: Token faltante o inválido, errores de API de Strava.

get-athlete-profile

Obtiene la información del perfil del atleta autenticado.

  • Cuándo usarlo: Cuando el usuario solicita los detalles de su perfil, nombre de usuario, ubicación, peso, estado premium, etc.
  • Parámetros: Ninguno
  • Salida: cadena de texto formateada con detalles del perfil.
  • Errores: Token faltante o inválido, errores de API de Strava.

get-athlete-stats

Obtiene estadísticas de actividad (recientes, hasta la fecha, de todos los tiempos) del atleta autenticado.

  • Cuándo usarlo: Cuando el usuario solicita sus estadísticas generales, totales de carreras/recorridos/nados, récords personales (recorrido más largo, subida más grande).
  • Parámetros: Ninguno
  • Salida: Resumen de texto formateado de las estadísticas, respetando las preferencias de medición del usuario.
  • Errores: Token faltante o inválido, errores de API de Strava.

get-activity-details

Obtiene información detallada sobre una actividad específica utilizando su ID.

  • Cuándo usarlo: Cuando el usuario solicita detalles sobre una actividad específica identificada por su ID.
  • Parámetros:
    • activityId (obligatorio):
      • Tipo: number
      • Descripción: El identificador único de la actividad.
  • Salida: Cadena de texto formateada con información detallada de la actividad (tipo, fecha, distancia, tiempo, velocidad, frecuencia cardíaca, potencia, marcha, etc.), respetando las preferencias de medición del usuario.
  • Errores: Token faltante o inválido, activityId inválido, Errores de API de Strava.

list-athlete-clubs

Enumera los clubes de los que es miembro el atleta autenticado.

  • Cuándo usarlo: Cuando el usuario pregunta sobre los clubes a los que se ha unido.
  • Parámetros: Ninguno
  • Salida: Lista de texto formateado de clubes (nombre, ID, deporte, miembros, ubicación).
  • Errores: Token faltante o inválido, errores de API de Strava.

list-starred-segments

Enumera los segmentos protagonizados por el atleta autenticado.

  • Cuándo usarlo: Cuando el usuario pregunta sobre sus segmentos destacados o favoritos.
  • Parámetros: Ninguno
  • Salida: Lista de texto formateada de segmentos destacados (nombre, ID, tipo, distancia, grado, ubicación).
  • Errores: Token faltante o inválido, errores de API de Strava.

get-segment

Obtiene información detallada sobre un segmento específico utilizando su ID.

  • Cuándo usarlo: Cuando el usuario solicita detalles sobre un segmento específico identificado por su ID.
  • Parámetros:
    • segmentId (obligatorio):
      • Tipo: number
      • Descripción: El identificador único del segmento.
  • Salida: Cadena de texto formateada con información detallada del segmento (distancia, pendiente, elevación, ubicación, estrellas, esfuerzos, etc.), respetando la preferencia de medición del usuario.
  • Errores: Token faltante o inválido, segmentId inválido, errores de API de Strava.

explore-segments

Busca segmentos populares dentro de un área geográfica determinada (cuadro delimitador).

  • Cuándo usarlo: Cuando el usuario desea buscar o descubrir segmentos en un área geográfica específica, filtrando opcionalmente por tipo de actividad o categoría de escalada.
  • Parámetros:
    • bounds (obligatorio):
      • Tipo: string
      • Descripción: Separados por comas: south_west_lat,south_west_lng,north_east_lat,north_east_lng .
    • activityType (opcional):
      • Tipo: string ( "running" o "riding" )
      • Descripción: Filtrar por tipo de actividad.
    • minCat (opcional):
      • Tipo: number (0-5)
      • Descripción: Categoría mínima de escalada. Requiere activityType: 'riding' .
    • maxCat (opcional):
      • Tipo: number (0-5)
      • Descripción: Categoría máxima de ascenso. Requiere activityType: 'riding' .
  • Salida: Lista de texto formateada de segmentos encontrados (nombre, ID, categoría de ascenso, distancia, pendiente, elevación).
  • Errores: Token faltante o inválido, formato bounds inválido, combinación de filtros inválida, errores de API de Strava.

star-segment

Marca o desmarca un segmento específico para el atleta autenticado.

  • Cuándo usarlo: cuando el usuario solicita explícitamente marcar con estrella, marcar como favorito, quitar de estrella o marcar como favorito un segmento específico identificado por su ID.
  • Parámetros:
    • segmentId (obligatorio):
      • Tipo: number
      • Descripción: El identificador único del segmento.
    • starred (requerido):
      • Tipo: boolean
      • Descripción: true para destacar, false para dejar de destacar.
  • Salida: Mensaje de éxito que confirma la acción y el nuevo estado destacado del segmento.
  • Errores: Token faltante o inválido, segmentId inválido, errores de API de Strava (por ejemplo, segmento no encontrado, límite de velocidad).

get-segment-effort

Obtiene información detallada sobre el esfuerzo de un segmento específico utilizando su ID.

  • Cuándo usarlo: Cuando el usuario solicita detalles sobre un esfuerzo de segmento específico identificado por su ID.
  • Parámetros:
    • effortId (obligatorio):
      • Tipo: number
      • Descripción: El identificador único del esfuerzo del segmento.
  • Salida: cadena de texto formateada con información detallada del esfuerzo (nombre del segmento, ID de la actividad, tiempo, distancia, frecuencia cardíaca, potencia, clasificación, etc.).
  • Errores: Token faltante o inválido, effortId inválido, errores de API de Strava.

list-segment-efforts

Enumera los esfuerzos del atleta autenticado en un segmento determinado, opcionalmente filtrado por fecha.

  • Cuándo usarlo: cuando el usuario solicita enumerar sus esfuerzos o intentos en un segmento específico, posiblemente dentro de un rango de fechas.
  • Parámetros:
    • segmentId (obligatorio):
      • Tipo: number
      • Descripción: El ID del segmento.
    • startDateLocal (opcional):
      • Tipo: string (formato ISO 8601)
      • Descripción: Filtrar los esfuerzos que comienzan después de esta fecha y hora.
    • endDateLocal (opcional):
      • Tipo: string (formato ISO 8601)
      • Descripción: Filtrar esfuerzos que finalizan antes de esta fecha y hora.
    • perPage (opcional):
      • Tipo: number
      • Descripción: Número de resultados por página.
      • Predeterminado: 30
  • Salida: Lista de texto formateado de esfuerzos de segmentos coincidentes.
  • Errores: Token faltante o inválido, segmentId inválido, Formato de fecha inválido, Errores de API de Strava.

list-athlete-routes

Enumera las rutas creadas por el atleta autenticado.

  • Cuándo usarlo: Cuando el usuario solicita ver las rutas que ha creado o guardado.
  • Parámetros:
    • page (opcional):
      • Tipo: number
      • Descripción:Número de página para paginación.
    • perPage (opcional):
      • Tipo: number
      • Descripción: Número de rutas por página.
      • Predeterminado: 30
  • Salida: Lista de texto formateada de rutas (Nombre, ID, Tipo, Distancia, Elevación, Fecha).
  • Errores: Token faltante o inválido, errores de API de Strava.

get-route

Obtiene información detallada de una ruta específica utilizando su ID.

  • Cuándo usarlo: Cuando el usuario solicita detalles sobre una ruta específica identificada por su ID.
  • Parámetros:
    • routeId (obligatorio):
      • Tipo: number
      • Descripción: El identificador único de la ruta.
  • Salida: cadena de texto formateada con detalles de la ruta (nombre, ID, tipo, distancia, elevación, tiempo estimado, descripción, recuento de segmentos).
  • Errores: Token faltante o inválido, routeId inválido, errores de API de Strava.

export-route-gpx

Exporta una ruta específica en formato GPX y la guarda localmente.

  • Cuándo usarlo: Cuando el usuario solicita explícitamente exportar o guardar una ruta específica como un archivo GPX.
  • Requisito previo: La variable de entorno ROUTE_EXPORT_PATH debe estar configurada correctamente en el servidor.
  • Parámetros:
    • routeId (obligatorio):
      • Tipo: number
      • Descripción: El identificador único de la ruta.
  • Salida: Mensaje de éxito que indica la ubicación de guardado o un mensaje de error.
  • Errores: Token faltante o inválido, ROUTE_EXPORT_PATH faltante o inválido, Errores del sistema de archivos (permisos, espacio en disco), routeId inválido, Errores de API de Strava.

export-route-tcx

Exporta una ruta específica en formato TCX y la guarda localmente.

  • Cuándo usarlo: cuando el usuario solicita explícitamente exportar o guardar una ruta específica como un archivo TCX.
  • Requisito previo: La variable de entorno ROUTE_EXPORT_PATH debe estar configurada correctamente en el servidor.
  • Parámetros:
    • routeId (obligatorio):
      • Tipo: number
      • Descripción: El identificador único de la ruta.
  • Salida: Mensaje de éxito que indica la ubicación de guardado o un mensaje de error.
  • Errores: Token faltante o inválido, ROUTE_EXPORT_PATH faltante o inválido, Errores del sistema de archivos (permisos, espacio en disco), routeId inválido, Errores de API de Strava.

get-activity-streams

Recupera flujos de datos de series temporales detallados de una actividad de Strava, perfecto para analizar métricas de entrenamiento, visualizar rutas o realizar análisis detallados de la actividad.

  • Cuándo usarlo: Cuando necesita datos detallados de series de tiempo de una actividad para:
    • Análisis de la intensidad del entrenamiento a través de las zonas de frecuencia cardíaca
    • Cálculo de métricas de potencia para actividades de ciclismo
    • Visualización de datos de ruta mediante coordenadas GPS
    • Análisis de cambios de ritmo y elevación
    • Análisis detallado de segmentos
  • Parámetros:
    • id (obligatorio):
      • Tipo: number | string
      • Descripción: El identificador de actividad de Strava para obtener transmisiones
    • types (opcional):
      • Tipo: array
      • Predeterminado: ['time', 'distance', 'heartrate', 'cadence', 'watts']
      • Tipos disponibles:
        • time : Tiempo en segundos desde el inicio
        • distance : Distancia en metros desde el inicio
        • latlng : Matriz de pares [latitud, longitud]
        • altitude : Elevación en metros
        • velocity_smooth : Velocidad suavizada en metros/segundo
        • heartrate : frecuencia cardíaca en latidos por minuto
        • cadence : Cadencia en revoluciones por minuto
        • watts : potencia de salida en vatios
        • temp : Temperatura en Celsius
        • moving : Booleano que indica si se mueve
        • grade_smooth : Pendiente de la carretera como porcentaje
    • resolution (opcional):
      • Tipo: string
      • Valores: 'low' (100 puntos), 'medium' (1000 puntos), 'high' (~10000 puntos)
      • Descripción: Resolución/densidad de datos
    • series_type (opcional):
      • Tipo: string
      • Valores: 'time' o 'distance'
      • Predeterminado: 'distance'
      • Descripción: Tipo de serie base para la indexación de puntos de datos
    • page (opcional):
      • Tipo: number
      • Predeterminado: 1
      • Descripción: Número de página para resultados paginados
    • points_per_page (opcional):
      • Tipo: number
      • Predeterminado: 100
      • Valor especial: -1 devuelve TODOS los puntos de datos divididos en múltiples mensajes
      • Descripción: Número de puntos de datos por página
  • Formato de salida:
    1. Metadatos:
      • Tipos de transmisión disponibles
      • Puntos de datos totales
      • Resolución y tipo de serie
      • Información de paginación (página actual, páginas totales)
    2. Estadísticas (cuando corresponda):
      • Frecuencia cardíaca: máxima, mínima, media
      • Potencia: máxima, media, potencia normalizada
      • Velocidad: máxima y media en km/h
    3. Datos de transmisión:
      • Datos de series de tiempo formateados para cada transmisión solicitada
      • Formatos legibles para humanos (por ejemplo, hora formateada, km/h para velocidad)
      • Precisión numérica consistente
      • Puntos de datos etiquetados
  • Ejemplo de solicitud:
    { "id": 12345678, "types": ["time", "heartrate", "watts", "velocity_smooth", "cadence"], "resolution": "high", "points_per_page": 100, "page": 1 }
  • Características especiales:
    • Paginación inteligente para grandes conjuntos de datos
    • Modo de recuperación de datos completo (puntos por página = -1)
    • Estadísticas y metadatos enriquecidos
    • Salida formateada tanto para consumo humano como para LLM
    • Conversiones automáticas de unidades
  • Notas:
    • Requiere actividad:leer alcance
    • No todas las transmisiones están disponibles para todas las actividades.
    • Las actividades más antiguas podrían tener datos limitados
    • Las actividades grandes se paginan automáticamente
    • La disponibilidad de la transmisión depende del dispositivo de grabación y del tipo de actividad.
  • Errores:
    • Token faltante o inválido
    • ID de actividad no válido
    • Permisos insuficientes
    • Tipos de transmisión no disponibles
    • Parámetros de paginación no válidos

get-activity-laps

Recupera las vueltas registradas para una actividad específica de Strava.

  • Cuándo utilizarlo:
    • Analizar las variaciones de rendimiento en diferentes segmentos (vueltas) de una actividad.
    • Compare tiempos de vuelta, velocidades, frecuencias cardíacas o potencias de salida.
    • Comprender cómo se estructuró una actividad (por ejemplo, entrenamiento por intervalos).
  • Parámetros:
    • id (obligatorio):
      • Tipo: number | string
      • Descripción: El identificador único de la actividad de Strava.
  • Formato de salida: Un resumen de texto que detalla cada vuelta, incluyendo:
    • Índice de vueltas
    • Nombre de la vuelta (si está disponible)
    • Tiempo transcurrido (formateado como HH:MM:SS)
    • Hora de movimiento (formateada como HH:MM:SS)
    • Distancia (en km)
    • Velocidad media (en km/h)
    • Velocidad máxima (en km/h)
    • Ganancia de elevación total (en metros)
    • Frecuencia cardíaca promedio (si está disponible, en lpm)
    • Frecuencia cardíaca máxima (si está disponible, en lpm)
    • Cadencia media (si está disponible, en rpm)
    • Vatios promedio (si está disponible, en W)
  • Ejemplo de solicitud:
    { "id": 1234567890 }
  • Ejemplo de fragmento de respuesta:
    Activity Laps Summary (ID: 1234567890): Lap 1: Warmup Lap Time: 15:02 (Moving: 14:35) Distance: 5.01 km Avg Speed: 20.82 km/h Max Speed: 35.50 km/h Elevation Gain: 50.2 m Avg HR: 135.5 bpm Max HR: 150 bpm Avg Cadence: 85.0 rpm Lap 2: Interval 1 Time: 05:15 (Moving: 05:10) Distance: 2.50 km Avg Speed: 29.03 km/h Max Speed: 42.10 km/h Elevation Gain: 10.1 m Avg HR: 168.2 bpm Max HR: 175 bpm Avg Cadence: 92.1 rpm Avg Power: 280.5 W (Sensor) ...
  • Notas:
    • Requiere activity:read para actividades públicas/seguidores, activity:read_all para actividades privadas.
    • La disponibilidad de datos de vueltas depende del dispositivo de registro y del tipo de actividad (por ejemplo, es posible que las actividades manuales no tengan vueltas).
  • Errores:
    • Token faltante o inválido
    • ID de actividad no válido
    • Permisos insuficientes
    • Actividad no encontrada

get-athlete-zones

Recupera la frecuencia cardíaca y las zonas de potencia configuradas del atleta autenticado.

  • Cuándo usarlo: Cuando el usuario pregunta sobre sus zonas de frecuencia cardíaca, zonas de potencia o configuraciones de zona de entrenamiento.
  • Parámetros: Ninguno
  • Formato de salida: Devuelve dos bloques de texto:
    1. Un resumen formateado que detalla las zonas configuradas:
      • Zonas de frecuencia cardíaca: estado personalizado, rangos de zona, distribución del tiempo (si está disponible)
      • Zonas de potencia: rangos de zonas, distribución temporal (si está disponible)
    2. Los datos JSON sin procesar completos tal como los devuelve la API de Strava.
  • Ejemplo de fragmento de respuesta (resumen):
    **Athlete Zones:** ❤️ **Heart Rate Zones** Custom Zones: No Zone 1: 0 - 115 bpm Zone 2: 115 - 145 bpm Zone 3: 145 - 165 bpm Zone 4: 165 - 180 bpm Zone 5: 180+ bpm ⚡ **Power Zones** Zone 1: 0 - 150 W Zone 2: 151 - 210 W Zone 3: 211 - 250 W Zone 4: 251 - 300 W Zone 5: 301 - 350 W Zone 6: 351 - 420 W Zone 7: 421+ W Time Distribution: - 0-50: 0:24:58 - 50-100: 0:01:02 ... - 450-∞: 0:05:43
  • Notas:
    • Requiere profile:read_all .
    • Es posible que las zonas no estén configuradas para todos los atletas.
  • Errores:
    • Token faltante o inválido
    • Permisos insuficientes (falta el ámbito profile:read_all - error 403)
    • Se requiere suscripción (potencialmente, si Strava cambia el acceso a la API)

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

Licencia

Este proyecto está licenciado bajo la licencia MIT; consulte el archivo de LICENCIA para obtener más información. (Si se utiliza la licencia MIT, actualice si es diferente).

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Un servidor TypeScript que actúa como puente hacia la API de Strava, permitiendo a los LLM acceder a las actividades, rutas, segmentos y datos de los atletas de los usuarios a través de la interacción con lenguaje natural.

  1. Características
    1. Ejemplos de interacción en lenguaje natural
      1. Ejemplo de mensaje avanzado
        1. ⚠️ Secuencia de configuración importante
          1. Instalación y configuración
            1. 1. De la fuente
            2. 2. Configurar Claude Desktop
            3. 3. Configuración de la autenticación de Strava
            4. 4. Reiniciar Claude
          2. 🔑 Variables de entorno
            1. Manejo de tokens
              1. Configurar ruta de exportación (opcional)
                1. Referencia de API
                  1. get-recent-activities
                  2. get-athlete-profile
                  3. get-athlete-stats
                  4. get-activity-details
                  5. list-athlete-clubs
                  6. list-starred-segments
                  7. get-segment
                  8. explore-segments
                  9. star-segment
                  10. get-segment-effort
                  11. list-segment-efforts
                  12. list-athlete-routes
                  13. get-route
                  14. export-route-gpx
                  15. export-route-tcx
                  16. get-activity-streams
                  17. get-activity-laps
                  18. get-athlete-zones
                2. Contribuyendo
                  1. Licencia

                    Related MCP Servers

                    • -
                      security
                      F
                      license
                      -
                      quality
                      A TypeScript-based server that provides a memory system for Large Language Models (LLMs), allowing users to interact with multiple LLM providers while maintaining conversation history and offering tools for managing providers and model configurations.
                      Last updated -
                      20
                      JavaScript
                      • 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
                      3
                      Python
                      MIT License
                      • Apple
                    • -
                      security
                      A
                      license
                      -
                      quality
                      A Model Context Protocol server that enables language models to interact with Strava data, including activities, athlete statistics, routes, achievements, and social features.
                      Last updated -
                      2
                      Python
                      MIT License
                      • Linux
                      • Apple
                    • A
                      security
                      A
                      license
                      A
                      quality
                      A TypeScript server that enhances AI assistants' capabilities when working with Starwind UI components, providing tools for project initialization, component installation, documentation access, and more.
                      Last updated -
                      6
                      15
                      TypeScript
                      MIT License

                    View all related MCP servers

                    ID: u4gauiqvik