Strava MCP Server
Accede a la API de Strava para interactuar con actividades, información del atleta y otros datos de Strava.
GitHub
6
Prueba este MCPPatrocinadoDocumentación
Strava MCP Server
Un servidor de Model Context Protocol (MCP) que proporciona acceso a la API de Strava. Este servidor permite a los modelos de lenguaje interactuar con los datos de Strava, incluyendo actividades, información de atletas y más.
Características
- 🏃♂️ Seguimiento y análisis de actividades
- 📊 Estadísticas de atletas
- 🗺️ Visualización de rutas
- 🏆 Seguimiento de logros
- 🤝 Funciones sociales (kudos, comentarios)
Requisitos previos
- Python 3.12+
- Credenciales de la API de Strava
- pip (instalador de paquetes de Python)
Instalación
- Clona el repositorio:
git clone https://github.com/yourusername/strava_mcp.git
cd strava_mcp
- Crea un entorno virtual:
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
- Instala las dependencias:
pip install -r requirements.txt
Configuración
- Crea un archivo
config/.envcon tus credenciales de la API de Strava:
STRAVA_CLIENT_ID=your_client_id
STRAVA_CLIENT_SECRET=your_client_secret
STRAVA_REFRESH_TOKEN=your_refresh_token
- Para obtener credenciales de la API de Strava:
- Ve a https://www.strava.com/settings/api
- Crea una nueva aplicación
- Anota el Client ID y el Client Secret
- Sigue el flujo de OAuth 2.0 para obtener tu token de actualización
Uso
Uso con Claude
Una vez conectado, puedes interactuar con tus datos de Strava a través de Claude de varias maneras:
Consultas de actividades
- "Muéstrame mis actividades recientes"
- "Obtén detalles sobre mi última carrera"
- "¿Cuál fue mi recorrido más largo este mes?"
- "Muéstrame actividades donde establecí récords personales"
- "Muestra el mapa de ruta de mi última actividad"
Análisis de rendimiento
- "¿Cuál es mi ritmo de carrera promedio este año?"
- "Compara mi rendimiento en ciclismo entre el mes pasado y este mes"
- "Muéstrame mis zonas de frecuencia cardíaca del entrenamiento de ayer"
- "¿Cuál es mi ganancia total de elevación en todas las actividades?"
- "Calcula mi kilometraje semanal de carrera"
Interacciones sociales
- "¿Quién dio kudos en mi última actividad?"
- "Muéstrame los comentarios de mi carrera de maratón"
- "Enumera todas mis actividades de club"
- "Encuentra actividades que hice con amigos"
Seguimiento de logros
- "Enumera todos mis logros de segmentos"
- "Muestra mis récords personales en segmentos locales"
- "¿Qué logros obtuve esta semana?"
- "Muestra mi progreso en metas anuales"
Datos disponibles a través de Claude
-
Detalles de actividades:
- Distancia, duración, ritmo
- Mapas de ruta y perfiles de elevación
- Datos de frecuencia cardíaca, potencia y cadencia
- Información de splits y vueltas
- Condiciones climáticas durante la actividad
-
Estadísticas de atletas:
- Totales del año hasta la fecha y de todos los tiempos
- Récords personales y logros
- Carga de entrenamiento y tendencias de condición física
- Uso y mantenimiento de equipamiento
-
Datos sociales:
- Kudos y comentarios
- Actividades de club y clasificaciones
- Actividades y desafíos de amigos
- Esfuerzos y clasificaciones de segmentos
-
Información de rutas:
- Mapas detallados con datos de elevación
- Análisis de segmentos
- Rutas y segmentos populares
- Planificación y análisis de rutas
Como servidor MCP
Actualiza tu configuración de Claude Desktop:
{
"mcpServers": {
"Strava": {
"command": "python",
"args": ["src/strava_server.py"],
"cwd": "/path/to/strava_mcp",
"env": {
"STRAVA_CLIENT_ID": "your_client_id",
"STRAVA_CLIENT_SECRET": "your_client_secret",
"STRAVA_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
Como servidor HTTP
- Inicia el servidor:
./run_server.sh
- Accede a la API en
http://localhost:8000
Endpoints disponibles:
- GET
/activities/recent- Lista actividades recientes - GET
/activities/{id}- Obtén detalles de la actividad - GET
/activities/{id}/map- Obtén la visualización del mapa de la actividad - GET
/athlete/stats- Obtén estadísticas del atleta
Desarrollo
Estructura del proyecto
strava_mcp/
├── src/
│ ├── strava_server.py # MCP server implementation
│ ├── strava_http_server.py # HTTP API server
│ ├── map_utils.py # Map visualization utilities
│ └── templates.py # HTML templates
├── config/
│ └── .env # Environment variables (not in git)
├── requirements.txt # Python dependencies
└── run_server.sh # Server startup script
Contribuciones
- Haz un fork del repositorio
- Crea una rama de características
- Haz commit de tus cambios
- Haz push a la rama
- Crea un Pull Request
Seguridad
- Nunca hagas commit de archivos
.envni credenciales de API - El archivo
.gitignoreestá configurado para evitar que se hagan commit de datos sensibles - Usa variables de entorno para toda la configuración sensible
Licencia
Este proyecto está licenciado bajo la Licencia MIT: consulta el archivo LICENSE para obtener más detalles.
Agradecimientos
- Documentación de la API de Strava
- Especificación de Model Context Protocol (MCP)
- Contribuyentes y mantenedores