Strava MCP Server
Servidor MCP de Strava
Un servidor del Protocolo de Contexto de Modelos (MCP) que conecta Claude a tu cuenta de Strava. Pídele a Claude en lenguaje natural que analice tu entrenamiento, prediga tiempos de carrera, calcule cargas de entrenamiento o genere un plan de entrenamiento periodizado completo.
Características
13 herramientas en 5 categorías: autenticación, actividades, análisis, predicción, planificación
Flujo OAuth2 con servidor de callback local automático: sin necesidad de copiar códigos manualmente
Ritmos de entrenamiento basados en VDOT (Fórmula de carrera de Jack Daniels)
Métricas de carga de entrenamiento CTL/ATL/TSB (Carga de entrenamiento crónica/aguda, Equilibrio de estrés de entrenamiento)
Predicciones de tiempo de carrera mediante la fórmula de Riegel
Planes de entrenamiento periodizados completos (Base → Construcción → Pico → Taper) con lógica específica para la carrera
Requisitos
Node.js ≥ 18
Una cuenta de Strava
Claude Desktop (o cualquier cliente compatible con MCP)
Configuración
1. Crear una aplicación de API de Strava
Ve a strava.com/settings/api y crea una aplicación.
Dominio de callback de autorización:
localhost
Anota tu Client ID y Client Secret.
2. Configurar variables de entorno
cp .env.example .envEdita .env:
STRAVA_CLIENT_ID=your_client_id
STRAVA_CLIENT_SECRET=your_client_secret
STRAVA_REDIRECT_URI=http://localhost:8080/callback
TOKENS_FILE_PATH=./tokens.json3. Construir
npm install
npm run build4. Configurar Claude Desktop
Edita %APPDATA%\Claude\claude_desktop_config.json (Windows) o ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"strava": {
"command": "node",
"args": ["C:/path/to/McpStrava/dist/index.js"],
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"TOKENS_FILE_PATH": "C:/path/to/McpStrava/tokens.json"
}
}
}
}Puedes usar tanto
.envcomo el bloqueenven la configuración de Claude Desktop: ambos funcionan.
5. Autenticar
Reinicia Claude Desktop y, en una conversación:
Llama a
strava_get_auth_url: Claude devolverá una URLAbre la URL en tu navegador y autoriza la aplicación en Strava
La página mostrará "✓ Authentification réussie !" y los tokens se guardarán automáticamente
Herramientas disponibles
Autenticación
Herramienta | Descripción |
| Genera la URL de OAuth2 e inicia el servidor de callback local |
| Alternativa manual: intercambia un código de autorización por tokens |
| Comprueba si los tokens son válidos y cuándo caducan |
Actividades
Herramienta | Descripción |
| Lista actividades recientes (Carrera, Ciclismo, Caminata, Todas) con distancia, ritmo, FC |
| Detalle completo de una actividad: parciales por km, vueltas, calorías |
| Estadísticas globales de Strava: esta semana, este año, histórico |
Análisis
Herramienta | Descripción |
| Desglose del volumen semanal + puntuación de consistencia |
| CTL (forma física) / ATL (fatiga) / TSB (frescura) mediante TRIMP |
| Distribución en 6 zonas de ritmo, verificación de la regla 80/20 |
Predicción
Herramienta | Descripción |
| Predice tiempos de llegada mediante la fórmula de Riegel a partir de un esfuerzo de referencia |
| Calcula la puntuación VDOT + 5 zonas de ritmo de entrenamiento a partir de cualquier rendimiento en carrera |
Planificación de entrenamiento
Herramienta | Descripción |
| Plan periodizado completo desde hoy hasta el día de la carrera (Base/Construcción/Pico/Taper) |
| Genera solo las sesiones de la próxima semana para una fase determinada |
Detalles del plan de entrenamiento
Fases
Fase | Enfoque | Intensidad |
Base | Base aeróbica | Carreras suaves, carrera larga, progresiones |
Construcción | Umbral de lactato | Tempo, carrera media suave, carrera larga |
Pico | VO2max + específico de carrera | Intervalos, tempo, carrera larga |
Taper | Frescura | Volumen reducido, calidad de mantenimiento |
Cómo se calcula el volumen
Volumen inicial — combinación de tu promedio de 4 semanas en km y la estimación semanal en km derivada del CTL (robusto ante pausas por lesiones)
Volumen pico — 1.4× el actual, con mínimos específicos por carrera (5K: 40km, 10K: 50km, Media: 60km, Maratón: 80km)
Progresión semanal — limitada a +10% por semana para prevenir lesiones
Semanas de recuperación — automáticas cada 4 semanas dentro de cada fase (volumen × 0.8)
Lógica específica de carrera
Maratón (Construcción y Pico): Las carreras largas incluyen una sección a ritmo de maratón (~45% de la carrera a ritmo de competición)
Profundidad del Taper: Los 5K reducen hasta el 80% del volumen pico, el Maratón hasta el 40% — las carreras más cortas necesitan menos recuperación
Intervalos: 6 × 1000m para 5K/10K, 5 × 1000m para Media/Maratón
VDOT y zonas de ritmo
Basado en la Fórmula de carrera de Jack Daniels. Zonas calculadas como una fracción del VDOT:
Zona | % de VDOT | Uso |
Suave | 65% | Carreras diarias, carrera larga |
Maratón | 80% | Secciones a ritmo de maratón |
Umbral | 86% | Carreras tempo |
Intervalo | 98% | Intervalos de VO2max |
Repetición | 105% | Trabajo de velocidad / progresiones |
Generación de planes para amigos (modo manual)
strava_generate_training_plan admite un modo manual que evita Strava por completo. Pasa current_weekly_km y goal_time juntos y no se necesita cuenta de Strava; útil para generar planes para amigos desde tu propio Claude Desktop.
Parámetros requeridos
Parámetro | Descripción | Ejemplo |
| Distancia de carrera |
|
| Fecha de carrera (AAAA-MM-DD) |
|
| Tiempo objetivo |
|
| Kilometraje semanal actual |
|
Ejemplos de prompts
Génère un plan marathon pour mon ami, il court 55km par semaine et vise 3h45, la course est le 18 octobre 2026Mon amie veut courir un semi-marathon en 1h50 le 2026-09-14, elle fait environ 40km par semaineCuando se proporcionan tanto current_weekly_km como goal_time, la herramienta omite todas las llamadas a la API de Strava. El resume en la respuesta incluirá source_volume: "Fourni manuellement" para confirmar qué modo se utilizó.
Comparación de modos
Modo Strava | Modo Manual | |
Se necesita cuenta de Strava | Sí | No |
Calibración de volumen | Promedio de 4 semanas + CTL | Valor que proporcionas |
Estimación de VDOT | De actividades recientes o | De |
Caso de uso | Tu propio entrenamiento | Amigos / atletas sin Strava |
Desarrollo
# Watch mode (no build step needed)
npm run dev
# Build TypeScript
npm run build
# Run built server
npm start
# Clean build artifacts
npm run cleanEstructura del proyecto
src/
├── index.ts # MCP server entry point
├── config.ts # Env vars, Strava constants, race distances
├── types.ts # Shared TypeScript interfaces
├── auth/
│ ├── oauth.ts # OAuth2 URL builder, token exchange
│ ├── tokenStore.ts # Load/save tokens.json, expiry check
│ ├── callbackServer.ts # Local HTTP server for OAuth redirect
│ └── authTools.ts # MCP auth tools
├── strava/
│ ├── client.ts # Axios instance with auto token refresh
│ ├── activities.ts # Strava activities API
│ ├── athlete.ts # Strava athlete/stats API
│ └── activityTools.ts # MCP activity tools
├── analytics/
│ ├── metrics.ts # Weekly stats, pace zones, consistency score
│ ├── trainingLoad.ts # TRIMP, CTL/ATL/TSB computation
│ └── analysisTools.ts # MCP analysis tools
├── prediction/
│ ├── riegel.ts # Riegel race time prediction formula
│ ├── vdot.ts # VDOT computation, training paces, race equivalents
│ └── predictionTools.ts # MCP prediction tools
└── planning/
├── workouts.ts # Workout templates and distance bounds
├── plan.ts # Plan generation, phase allocation, VDOT estimation
└── planTools.ts # MCP planning toolsTokens
tokens.json almacena tus tokens de acceso y actualización de Strava. Está en .gitignore: nunca lo subas al repositorio. Los tokens se actualizan automáticamente cuando caducan (los tokens de acceso de Strava duran 6 horas).
Ejemplos de prompts
Modo Strava (tu propia cuenta)
Analyse mes 8 dernières semaines d'entraînementQuelle serait mon heure sur un marathon si je cours un 10K en 45min ?Génère-moi un plan d'entraînement pour un semi-marathon le 2026-09-20Calcule ma charge d'entraînement actuelle et dis-moi si je suis en forme pour une course ce week-endMontre-moi la répartition de mes allures sur les 4 dernières semainesModo manual (amigos / sin Strava)
Génère un plan marathon pour mon ami, il court 55km par semaine et vise 3h45, la course est le 18 octobre 2026Mon amie veut courir un semi-marathon en 1h50 le 14 septembre 2026, elle fait 40km par semaineLicencia
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SkyBlob12/McpStrava'
If you have feedback or need assistance with the MCP directory API, please join our Discord server