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 Server

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.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/adagh2000-ctrl/garmin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server