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".
¿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:
- Se abre una ventana del navegador mostrando una página de configuración
- Ingresa tus credenciales de la API de Strava (ID de Cliente y Secreto de Cliente)
- Haz clic en "Continuar a Strava" - serás redirigido a Strava
- Autoriza la aplicación en el sitio web de Strava
- Verás el mensaje de éxito - puedes cerrar el navegador
- ¡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):
- Ve a strava.com/settings/api
- Haz clic en "Crear una aplicación" (o ve tu aplicación existente)
- 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
- 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: truepara 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:
- Flagstaff Road - 5.2 km, 6.8% de pendiente promedio
- Sunshine Canyon - 3.8 km, 7.2% de pendiente promedio
- 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 preguntar | Qué 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 preguntar | Qué 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 preguntar | Qué 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 preguntar | Qué 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 preguntar | Qué 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 preguntar | Qué hace |
|---|---|
| "¿En qué clubes estoy?" | Lista tus clubes de Strava |
Entrenamientos
| Qué puedes preguntar | Qué hace |
|---|---|
| "Convierte este entrenamiento en un archivo de Zwift" | Formatea un plan de entrenamiento en un archivo estructurado (actualmente Zwift .zwo) |
Servidor
| Qué puedes preguntar | Qué 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.jsonsea 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:
- Limpia la caché de npx: Ejecuta
rm -rf ~/.npm/_npxen la terminal - Verifica que la configuración use
@r-huijts/strava-mcp-server(no el antiguostrava-mcp-server) - Reinicia Claude Desktop por completo (sal y vuelve a abrir)
- 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:
| Variable | Descripción |
|---|---|
STRAVA_CLIENT_ID | Tu ID de Cliente de la Aplicación de Strava |
STRAVA_CLIENT_SECRET | Tu Secreto de Cliente de la Aplicación de Strava |
STRAVA_ACCESS_TOKEN | Token de acceso OAuth |
STRAVA_REFRESH_TOKEN | Token de actualización OAuth |
ROUTE_EXPORT_PATH | Directorio 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
- Variables de entorno (mayor prioridad)
~/.config/strava-mcp/config.json- 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.
