Strava MCP Server

Un servidor que se conecta a la API de Strava, permitiendo que los modelos de lenguaje accedan a los datos y funciones de Strava.

Documentación

Servidor MCP de Strava

Habla con tus datos de Strava usando IA.

Conecta Claude a tu cuenta de Strava y haz preguntas en lenguaje natural: "¿Cuánto corrí este mes?", "Analiza mi último recorrido en bicicleta" o "Muéstrame mis segmentos más rápidos".

MseeP.ai Security Assessment Badge

Strava Server MCP server

¿Qué Puedes Hacer Con Esto?

Una vez conectado, simplemente habla con Claude como si hablaras con un amigo que tiene acceso a todos tus datos de Strava:

🏃 Haz Seguimiento de Tu Progreso

"¿Cuántos kilómetros corrí este mes?"

"Compara mis estadísticas de carrera de enero a diciembre"

"¿Cuál es mi recorrido en bicicleta más largo?"

📊 Analiza Tus Entrenamientos

"Desglosa mi último entrenamiento de ciclismo: muéstrame potencia, frecuencia cardíaca y cadencia"

"¿Cómo se vieron mis zonas de frecuencia cardíaca durante la carrera de ayer?"

"¿Cuál fue mi ritmo promedio en cada vuelta de mi entrenamiento por intervalos?"

🗺️ Explora Rutas y Segmentos

"¿Cuáles son los segmentos de ciclismo más populares cerca de Central Park?"

"Muéstrame mis segmentos destacados"

"Exporta mi ruta del domingo por la mañana como archivo GPX"

🏆 Obtén Perspectivas de Entrenamiento

"Analiza mi carga de entrenamiento esta semana"

"¿Cómo se compara mi condición física actual con la del mes pasado?"

"Dame un resumen de mi rendimiento en ciclismo este año"


Inicio Rápido (3 Pasos)

Paso 1: Agregar a Claude Desktop

Abre tu archivo de configuración de Claude Desktop:

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

Agrega esto al archivo:

{
  "mcpServers": {
    "strava": {
      "command": "npx",
      "args": ["-y", "@r-huijts/strava-mcp-server"]
    }
  }
}

Paso 1 (alternativa): Agregar a Claude Code

Puedes agregar este servidor MCP a Claude Code con el siguiente comando:

claude mcp add --transport stdio strava -- npx @r-huijts/strava-mcp-server

Puedes confirmar la instalación exitosa de la siguiente manera:

% claude mcp list
Checking MCP server health...

strava: npx @r-huijts/strava-mcp-server - ✓ Connected

Paso 2: Reinicia Claude Desktop

Cierra y vuelve a abrir Claude Desktop para cargar la nueva configuración.

Paso 3: Conecta Tu Strava

Solo dile a Claude:

"Conecta mi cuenta de Strava"

Se abrirá una ventana del navegador. Ingresa tus credenciales de la API de Strava, autoriza la aplicación, ¡y listo!

¡Eso es todo! Comienza a preguntar sobre tus actividades.


Conectando Tu Cuenta de Strava

Configuración Inicial

Cuando digas "Conecta mi cuenta de Strava", esto es lo que sucede:

  1. Se abre una ventana del navegador mostrando una página de configuración
  2. Ingresa tus credenciales de la API de Strava (ID de Cliente y Secreto de Cliente)
  3. Haz clic en "Continuar a Strava" - serás redirigido a Strava
  4. Autoriza la aplicación en el sitio web de Strava
  5. Verás el mensaje de éxito - puedes cerrar el navegador
  6. ¡Listo! Claude confirma que estás conectado

Tus credenciales se guardan localmente en ~/.config/strava-mcp/config.json y persisten entre sesiones.

Obteniendo Tus Credenciales de la API de Strava

Necesitas crear una aplicación gratuita de la API de Strava (configuración única):

  1. Ve a strava.com/settings/api
  2. Haz clic en "Crear una aplicación" (o ve tu aplicación existente)
  3. Completa el formulario:
    • Nombre de la aplicación: Lo que quieras (por ejemplo, "Mi Asistente Claude")
    • Categoría: Elige cualquiera
    • Sitio web: Puede ser cualquier cosa (por ejemplo, http://localhost)
    • Dominio de devolución de llamada de autorización: Debe ser localhost
  4. Copia tu ID de Cliente y Secreto de Cliente

¡Eso es todo! Solo necesitas hacer esto una vez.

Gestionando Tu Conexión

  • Verificar estado: "¿Estoy conectado a Strava?"
  • Reconectar: "Conecta mi cuenta de Strava" (usa force: true para reconectar)
  • Desconectar: "Desconecta mi cuenta de Strava"

Opciones de Instalación

Opción A: Solo Úsalo (Recomendado)

¡No se necesita instalación! El comando npx en el Inicio Rápido descarga y ejecuta automáticamente la versión más reciente.

Opción B: Instalar Globalmente

Si prefieres instalarlo una sola vez:

npm install -g @r-huijts/strava-mcp-server

Luego actualiza tu configuración de Claude para usar:

{
  "mcpServers": {
    "strava": {
      "command": "strava-mcp-server"
    }
  }
}

Nota: Aunque el nombre del paquete es @r-huijts/strava-mcp-server, el nombre del ejecutable sigue siendo strava-mcp-server por compatibilidad con versiones anteriores.

Opción C: Compilar desde el Código Fuente

Para desarrolladores que quieran modificar el código:

git clone https://github.com/r-huijts/strava-mcp.git
cd strava-mcp
npm install
npm run build

Luego apunta Claude a tu compilación local:

{
  "mcpServers": {
    "strava": {
      "command": "node",
      "args": ["/path/to/strava-mcp/dist/server.js"]
    }
  }
}

Conversaciones de Ejemplo

Registro Matutino

Tú: ¿Qué hice para hacer ejercicio esta semana?

Claude: Mirando tus actividades de Strava esta semana, completaste:

  • Lunes: carrera de 5.2 km (28:15)
  • Miércoles: paseo en bicicleta de 45 km (1:32:00)
  • Sábado: carrera de 10 km (52:30)

Total: 60.2 km en 3 actividades. ¡Buena constancia!

Análisis de Entrenamiento

Tú: Analiza mi último entrenamiento de ciclismo en detalle

Claude: Aquí tienes un desglose de tu recorrido "Bucle Vespertino" de ayer:

Resumen

  • Distancia: 42.3 km
  • Tiempo: 1:28:45
  • Velocidad promedio: 28.6 km/h

Análisis de Potencia

  • Potencia promedio: 185W
  • Potencia normalizada: 198W
  • Potencia máxima: 520W

Frecuencia Cardíaca

  • Promedio: 142 lpm
  • Máxima: 175 lpm
  • Tiempo en Zona 4+: 23 minutos

Tu relación potencia-frecuencia cardíaca sugiere una buena eficiencia aeróbica...

Encontrando Nuevas Rutas

Tú: Encuéntrame algunas subidas de ciclismo desafiantes cerca de Boulder, Colorado

Claude: Aquí tienes segmentos de subida populares cerca de Boulder:

  1. Flagstaff Road - 5.2 km, 6.8% de pendiente promedio
  2. Sunshine Canyon - 3.8 km, 7.2% de pendiente promedio
  3. Left Hand Canyon - 8.1 km, 4.5% de pendiente promedio

¿Quieres que marque alguno de estos como destacado para que puedas encontrarlos fácilmente más tarde?


Herramientas Disponibles

Cuenta y Perfil

Qué puedes preguntarQué hace
"Conecta mi cuenta de Strava"Vincula tu Strava a Claude
"Verifica mi conexión de Strava"Muestra el estado de la conexión
"Desconecta mi cuenta de Strava"Desvincula Strava y borra los tokens almacenados
"Obtén mi perfil de Strava"Muestra la información de tu perfil
"¿Qué zapatillas tengo?"Lista tus zapatillas y la distancia de uso
"¿Cuáles son mis zonas de entrenamiento?"Muestra las zonas de frecuencia cardíaca y potencia

Actividades

Qué puedes preguntarQué hace
"Muestra mis actividades recientes"Lista tus últimos entrenamientos
"Obtén todas mis carreras de enero"Obtiene actividades con filtros
"Analiza la actividad 12345"Información detallada sobre una actividad
"Muestra las vueltas de mi última carrera"Desglose vuelta por vuelta
"Obtén datos de frecuencia cardíaca de mi paseo"Datos de entrenamiento en series de tiempo (formato compacto optimizado)
"Muestra fotos de mi caminata"Fotos de la actividad

Estadísticas y Progreso

Qué puedes preguntarQué hace
"¿Cuáles son mis estadísticas de carrera?"Totales del año y de todos los tiempos
"¿Cuánto he andado en bicicleta este año?"Totales de actividad por tipo
"¿Cuál es mi recorrido más largo?"Récords personales

Segmentos

Qué puedes preguntarQué hace
"Muestra mis segmentos destacados"Tus segmentos favoritos
"Encuentra segmentos cerca de [ubicación]"Descubre segmentos populares
"Obtén detalles del segmento 12345"Información del segmento y clasificación
"Destaca este segmento"Guardar en favoritos
"Muestra mis esfuerzos en [segmento]"Tus intentos en un segmento

Rutas

Qué puedes preguntarQué hace
"Lista mis rutas guardadas"Tus rutas creadas
"Obtén detalles de mi [nombre de ruta]"Información de la ruta
"Exporta [ruta] como GPX"Descargar para dispositivos GPS
"Exporta [ruta] como TCX"Descargar para dispositivos GPS

Clubes

Qué puedes preguntarQué hace
"¿En qué clubes estoy?"Lista tus clubes de Strava

Entrenamientos

Qué puedes preguntarQué hace
"Convierte este entrenamiento en un archivo de Zwift"Formatea un plan de entrenamiento en un archivo estructurado (actualmente Zwift .zwo)

Servidor

Qué puedes preguntarQué hace
"¿Qué versión tiene el servidor de Strava?"Muestra la versión del servidor MCP y metadatos

Solución de Problemas

"Conecta mi cuenta de Strava" no abre un navegador

  • Asegúrate de que Claude Desktop esté ejecutando el servidor MCP (verifica si hay errores en Claude)
  • Intenta reiniciar Claude Desktop
  • Verifica que el puerto 8111 no esté bloqueado por un firewall

"Error de autenticación" o "Token inválido"

  • Tu token puede haber expirado - di "Conecta mi cuenta de Strava" para reconectar
  • Asegúrate de que tu aplicación de la API de Strava siga activa en strava.com/settings/api

Error de "Credenciales faltantes"

  • Necesitas completar el flujo de OAuth - di "Conecta mi cuenta de Strava"
  • Si estás usando variables de entorno, asegúrate de que las 4 estén configuradas (consulta la sección para Desarrolladores)

Claude no ve las herramientas de Strava

  • Asegúrate de que tu claude_desktop_config.json sea JSON válido (¡sin comas finales!)
  • Reinicia Claude Desktop después de hacer cambios en la configuración
  • Revisa la consola de desarrollador de Claude para ver mensajes de error

JSONRPC.ProtocolTransportError después del cambio de nombre del paquete

Si estás recibiendo un error JSONRPC después de actualizar a @r-huijts/strava-mcp-server:

  1. Limpia la caché de npx: Ejecuta rm -rf ~/.npm/_npx en la terminal
  2. Verifica que la configuración use @r-huijts/strava-mcp-server (no el antiguo strava-mcp-server)
  3. Reinicia Claude Desktop por completo (sal y vuelve a abrir)
  4. Prueba manualmente: Ejecuta npx -y @r-huijts/strava-mcp-server - deberías ver "Iniciando Servidor MCP de Strava v1.2.1..."

Para Desarrolladores

Haz clic para expandir los detalles técnicos

Variables de Entorno

En lugar de usar la autenticación basada en navegador, puedes configurar variables de entorno:

VariableDescripción
STRAVA_CLIENT_IDTu ID de Cliente de la Aplicación de Strava
STRAVA_CLIENT_SECRETTu Secreto de Cliente de la Aplicación de Strava
STRAVA_ACCESS_TOKENToken de acceso OAuth
STRAVA_REFRESH_TOKENToken de actualización OAuth
ROUTE_EXPORT_PATHDirectorio para exportaciones GPX/TCX

Actualización de Tokens

El servidor actualiza automáticamente los tokens expirados. Los nuevos tokens se guardan tanto en process.env como en ~/.config/strava-mcp/config.json.

Prioridad de Configuración

  1. Variables de entorno (mayor prioridad)
  2. ~/.config/strava-mcp/config.json
  3. Archivo local .env

Compilación y Pruebas

npm install
npm run build
npm test

Optimización de Flujos de Actividades

La herramienta get-activity-streams usa un formato compacto por defecto, reduciendo el tamaño del payload en ~70-80% mientras conserva todos los datos:

  • Formato compacto (predeterminado): Matrices sin procesar con metadatos, ~70-80% más pequeño, ideal para procesamiento con LLM
  • Formato detallado: Objetos legibles por humanos con valores formateados (compatible con versiones anteriores)
  • Fragmentación inteligente: Las actividades grandes se dividen automáticamente en fragmentos de ~50KB
  • Reducción de muestreo opcional: Puede reducir conjuntos de datos muy grandes mientras conserva características clave

El formato compacto incluye metadatos completos (unidades, descripciones, estadísticas) para que los LLM puedan entender los datos numéricos sin procesar.

Referencia de la API

El servidor implementa el Protocolo de Contexto de Modelo (MCP) y expone 25 herramientas para la API v3 de Strava. Consulta el código fuente en src/tools/ para ver los detalles de implementación.

Contribuciones

¡Las contribuciones son bienvenidas! Por favor, envía una Solicitud de Extracción (Pull Request).


Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles.


¿Preguntas? Abre un problema en GitHub.