Skip to main content
Glama

garmin_mcp — Conector Garmin con autorización (experiencia tipo Strava)

Agregas el conector en claude.ai → Claude abre una pantalla de autorización → inicias sesión con Garmin una sola vez → autorizas → conectado. Sin contraseñas en variables ni secrets en la URL. Incluye tu plan de TrainingPeaks (leído del calendario Garmin vía la conexión TP → Garmin).

Cómo funciona la autorización

El servidor implementa OAuth 2.1 (registro dinámico + PKCE), que es lo que claude.ai usa con conectores como Strava. Al conectar:

  1. Claude te redirige a la pantalla /login de TU servidor

  2. Pones tu email/contraseña de Garmin (+ código MFA si lo tienes activado)

  3. El servidor inicia sesión con Garmin, guarda solo los tokens de sesión (tu contraseña no se almacena) y te regresa a Claude ya autorizado

  4. Claude recibe un access token propio del conector (válido 30 días, con refresh automático) — nunca ve tus credenciales de Garmin

Related MCP server: garmin-mcp

Despliegue en Railway (~10 min)

  1. Repo en GitHub con: server_oauth.py, requirements.txt, Dockerfile

  2. railway.app → New Project → Deploy from GitHub repo

  3. Settings → Networking → Generate Domain (ej. xxxx.up.railway.app)

  4. Variables → agrega solo una:

    • PUBLIC_URL = https://xxxx.up.railway.app (tu dominio del paso 3)

  5. (Opcional, recomendado) agrega un Volume montado en /data para que la sesión sobreviva reinicios del contenedor

  6. Redeploy

Conectar en claude.ai

  1. Configuración → Conectores → Agregar conector personalizado

  2. URL: https://xxxx.up.railway.app/mcp

  3. Claude detecta el OAuth solo → botón Conectar → pantalla de login → autoriza

  4. Aparece "garmin_mcp" con 11 herramientas de solo lectura

Herramientas

Herramienta

Qué devuelve

garmin_get_scheduled_workouts

Plan de TrainingPeaks + workouts planeados

garmin_get_workout_detail

Estructura del workout (intervalos, targets)

garmin_list_activities / garmin_get_activity

Actividades y splits

garmin_get_sleep / garmin_get_hrv

Sueño, fases, sleep score, HRV

garmin_get_body_battery / garmin_get_training_readiness

Recuperación

garmin_get_training_status

Carga, VO2max

garmin_get_daily_stats / garmin_get_heart_rates-equiv

Estrés, pasos, FC

garmin_get_week_summary

7 días: sueño, estrés, Body Battery

Seguridad

  • Solo lectura; nada se modifica en tu cuenta Garmin.

  • Tu contraseña se usa una vez en TU servidor y no se guarda; solo tokens de sesión.

  • Es un servidor de un solo usuario: no compartas la URL públicamente — quien la conecte y complete el login con SUS credenciales no verá tus datos, pero para desconectar/revocar: elimina el conector en Claude y borra el volumen /data.

  • Garmin no ofrece API oficial para individuos; esto usa la librería comunitaria garminconnect. No es un producto oficial de Garmin.

Probado

Flujo completo verificado: discovery OAuth → registro dinámico de cliente → authorize con PKCE → pantalla de login → emisión de código → intercambio por token → llamada MCP autenticada → rechazo 401 sin token.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides read access to Garmin Connect health and training data (sleep, heart rate, stress, HRV, activities) and supports writes like creating workouts, editing activities, and exporting files.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Exposes Garmin Connect data through MCP, enabling retrieval of activities, health metrics, training status, and workouts, with OAuth authentication and confirmed write operations.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables triathlon coaches and athletes to interact with Garmin Connect, including retrieving health/activity data, building and uploading structured workouts (cycling, running, swimming, brick), and accessing coaching analytics like readiness, load, and performance trends.
    MIT