Polar MCP Server
Servidor MCP para la API de Polar AccessLink que exporta datos de los relojes Polar.
Documentación
Polar MCP Server
Un servidor MCP (Model Context Protocol) para la API Polar AccessLink. Conecta tus datos de fitness de Polar a Claude AI: accede a entrenamientos, análisis de sueño, métricas de recuperación, datos de frecuencia cardíaca y más.
Inicio Rápido (Instancia Pública)
¡No requiere configuración! Usa nuestra instancia alojada:
- En Claude: Configuración → Integraciones → Añadir servidor MCP
- Introduce la URL:
https://polar-mcp-server.n-neuhaeusel.workers.dev/mcp - Claude abrirá una ventana de autorización: inicia sesión con tu cuenta de Polar
- ¡Empieza a chatear sobre tus datos de fitness!
Características
25 Herramientas Disponibles
| Categoría | Herramientas | Descripción |
|---|---|---|
| Ejercicios | get_exercises, get_exercise | Datos de entrenamiento con FC, velocidad, zonas |
| Exportación de Ejercicios | get_exercise_fit, get_exercise_tcx, get_exercise_gpx | Exportación en formatos FIT, TCX, GPX |
| Sueño | get_sleep, get_sleep_range | Fases del sueño, puntuación, duración |
| Recuperación | get_nightly_recharge, get_nightly_recharge_range | Carga ANS, VFC, frecuencia respiratoria |
| Actividad | get_daily_activity, get_daily_activity_range, get_activity_samples, get_activity_samples_range | Pasos, calorías, zonas de actividad |
| Frecuencia Cardíaca | get_continuous_heart_rate, get_continuous_heart_rate_range | Monitorización de FC 24/7 |
| Carga de Entrenamiento | get_cardio_load, get_cardio_load_range, get_cardio_load_history | TRIMP, carga aguda/crónica |
| SleepWise | get_sleepwise_alertness, get_sleepwise_circadian_bedtime | Predicciones de alerta, hora óptima de acostarse |
| Biosensores | get_body_temperature, get_skin_temperature, get_spo2 | Datos de temperatura, SpO2 |
| Usuario | get_user_info, get_physical_info | Perfil, VO2max, FC en reposo |
Dispositivos Compatibles
- Polar Pacer / Pacer Pro
- Polar Vantage V2 / V3
- Polar Vantage M / M2
- Polar Grit X / Grit X Pro / Grit X2 Pro
- Polar Ignite / Ignite 2 / Ignite 3
- Polar Unite
- Y más...
Ejemplos de Prompts
Una vez conectado, pregúntale a Claude:
- "Muéstrame mis entrenamientos de la semana pasada"
- "¿Cómo fue mi sueño anoche? Compáralo con mi promedio semanal"
- "Analiza mis tendencias de variabilidad de la frecuencia cardíaca"
- "¿Cuál es mi estado actual de carga de entrenamiento?"
- "¿A qué hora debería acostarme esta noche para una recuperación óptima?"
- "Exporta mi última carrera como archivo GPX"
- "¿Cuántos pasos di este mes?"
Autoalojamiento
¿Quieres ejecutar tu propia instancia? Hay dos opciones de despliegue disponibles:
Opción 1: Cloudflare Workers (Recomendado)
Requisitos previos
- Cuenta de Cloudflare
- Credenciales de la API Polar AccessLink
Configuración
# Clone and install
git clone https://github.com/NelsonNew/polar-mcp-server.git
cd polar-mcp-server
npm install
# Create KV namespace
npx wrangler kv namespace create OAUTH_KV
# Copy the ID to wrangler.toml
# Set secrets
npx wrangler secret put POLAR_CLIENT_ID
npx wrangler secret put POLAR_CLIENT_SECRET
# Deploy
npm run deploy
Después de desplegar, añade la URL de callback a tu aplicación Polar:
https://YOUR-WORKER.workers.dev/callback
Opción 2: Local (Claude Desktop)
# Clone and build
git clone https://github.com/NelsonNew/polar-mcp-server.git
cd polar-mcp-server
npm install && npm run build
# Get access token
export POLAR_CLIENT_ID="your_client_id"
export POLAR_CLIENT_SECRET="your_client_secret"
npm run auth
Añade a la configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"polar": {
"command": "node",
"args": ["/path/to/polar-mcp-server/dist/index.js"],
"env": {
"POLAR_ACCESS_TOKEN": "your_access_token"
}
}
}
}
Referencia de la API
Todas las herramientas usan la API Polar AccessLink v3.
| Herramienta | Endpoint | Descripción |
|---|---|---|
get_user_info | /users/{id} | Perfil de usuario |
get_physical_info | /users/physical-information | VO2max, FC máxima, FC en reposo |
get_exercises | /exercises | Últimos 30 días de entrenamientos |
get_exercise | /exercises/{id} | Detalles de un entrenamiento individual |
get_exercise_fit/tcx/gpx | /exercises/{id}/fit|tcx|gpx | Formatos de exportación |
get_sleep | /users/sleep | Datos de sueño |
get_nightly_recharge | /users/nightly-recharge | Métricas de recuperación |
get_daily_activity | /users/activities | Actividad diaria |
get_continuous_heart_rate | /users/continuous-heart-rate | FC 24/7 |
get_cardio_load | /users/cardio-load | Carga de entrenamiento |
get_sleepwise_alertness | /users/sleepwise/alertness | Predicciones de alerta |
get_body_temperature | /users/biosensing/bodytemperature | Temperatura corporal |
get_spo2 | /users/biosensing/spo2 | Oxígeno en sangre |
Solución de Problemas
| Error | Solución |
|---|---|
| "Error de la API de Polar (403)" | Reautoriza o comprueba si la sincronización de datos está completa |
| "Error de la API de Polar (404)" | Endpoint no disponible para tu dispositivo/suscripción |
| Sin datos de ejercicio | Sincroniza primero tu dispositivo Polar con la aplicación Polar Flow |
Privacidad
- Tus credenciales de Polar nunca se almacenan
- Los tokens OAuth se gestionan de forma segura mediante el proveedor OAuth de Cloudflare Workers
- Cada usuario tiene su propia sesión MCP aislada
- Ningún dato de fitness se registra ni se almacena en nuestros servidores
Contribuciones
¡Las contribuciones son bienvenidas! Abre un issue o un PR.
Licencia
MIT