Skip to main content
Glama

garmin-mcp

Un servidor MCP local que expone tus datos de actividad, salud y entrenamiento de Garmin Connect (actividades, HRV, sueño, frecuencia cardíaca, estrés, body battery, training readiness, zonas de FC/potencia, umbral de lactato, FTP, VO2max, récords personales, entrenamientos, entrenamientos programados y planes de entrenamiento) como herramientas dentro de Claude Desktop.

Habla directamente con la API en vivo de Garmin Connect mediante la biblioteca garminconnect. Los datos son de solo lectura — nunca se escribe nada de vuelta a Garmin.

Cómo funciona la autenticación

El inicio de sesión de Garmin ocurre en dos lugares separados a propósito:

  • scripts/setup_auth.py — un script interactivo que ejecutas tú mismo en una terminal. Inicia sesión con tu correo electrónico/contraseña, te pide un código MFA si Garmin lo solicita, y guarda el token de sesión resultante en ~/.garmin_mcp/tokens.

  • El servidor MCP (src/garmin_mcp/server.py), lanzado sin interfaz gráfica por Claude Desktop, solo carga y refresca silenciosamente ese token en caché. Nunca solicita MFA — Claude Desktop no le proporciona una terminal para pedirlo, y bloquearse en stdin colgaría las llamadas a las herramientas. Si la sesión en caché falta o ha caducado, las llamadas a las herramientas fallan con un error que te indica que vuelvas a ejecutar setup_auth.py.

Tu contraseña de Garmin se almacena en el llavero de macOS (elemento/servicio garmin-mcp, visible en Keychain Access), nunca se escribe en un archivo. Solo se guarda tu correo electrónico de inicio de sesión de Garmin (no es secreto), en ~/.garmin_mcp/config.json.

Configuración

  1. Instala las dependencias:

    cd garmin_mcp
    uv sync
  2. Ejecuta el inicio de sesión interactivo único:

    uv run python scripts/setup_auth.py

    Introduce tu correo electrónico y contraseña de Garmin Connect (la contraseña se guarda en el llavero para la próxima vez). Introduce el código MFA cuando se te pida. Si se completa correctamente, verás una confirmación y la ruta de la caché del token.

  3. Registra el servidor en Claude Desktop editando ~/Library/Application Support/Claude/claude_desktop_config.json y añadiendo (junto a cualquier otra entrada de mcpServers):

    {
      "mcpServers": {
        "garmin": {
          "command": "uv",
          "args": ["run", "--project", "/Users/felix.guiony/Code/Perso/garmin_mcp", "garmin-mcp"]
        }
      }
    }
  4. Sal por completo de Claude Desktop (Cmd+Q, no solo cierres la ventana) y vuelve a abrirlo. El icono de herramientas/martillo debería mostrar las herramientas garmin.

Herramientas

Herramienta

Descripción

list_activities

Actividades recientes, las más recientes primero (paginado, filtro opcional por tipo)

get_activity

Detalle completo de una actividad: resumen + series temporales por métrica

get_activity_splits

Datos de vueltas/parciales de una actividad

get_heart_rate

FC en reposo diaria + línea temporal de FC intraday

get_daily_stats

Pasos, calorías, FC en reposo, distancia, pisos, minutos de intensidad

get_sleep

Etapas del sueño, duración, puntuación del sueño

get_hrv

Variabilidad de la frecuencia cardíaca

get_body_battery

Reserva de energía de Body Battery durante un rango de fechas

get_stress

Nivel de estrés de todo el día

get_training_readiness

Puntuación de Training Readiness y factores contribuyentes

get_profile

Identidad, preferencias de unidades, ajustes personales (FC máxima, FC en reposo, peso, altura, VO2max), zonas de FC y zonas de potencia por deporte

get_lactate_threshold

Umbral de lactato corriendo: frecuencia cardíaca, potencia y velocidad

get_cycling_ftp

Último Functional Threshold Power de ciclismo

get_ftp_history

FTP histórico para un deporte durante un rango de fechas

get_max_metrics

Datos de métricas máximas (p. ej., VO2max) durante un rango de fechas

get_resting_heart_rate

Tendencia de la frecuencia cardíaca en reposo diaria durante un rango de fechas

get_fitness_age

Garmin Fitness Age para una fecha determinada

get_personal_records

Récords personales

list_workouts

Plantillas de entrenamiento guardadas, las más recientes primero (paginado)

get_workout

Estructura completa de un entrenamiento: segmentos, objetivos, intervalos

get_scheduled_workouts

Calendario de entrenamientos programados para un mes determinado

get_scheduled_workout

Detalle de una instancia de entrenamiento programado

list_training_plans

Planes de entrenamiento

get_training_plan

Detalles de un plan de entrenamiento específico

get_adaptive_training_plan

Detalles de un plan de entrenamiento adaptativo específico

Todos los parámetros de fecha aceptan YYYY-MM-DD y su valor por defecto es hoy.

Solución de problemas

Una llamada de herramienta devuelve un mensaje "Garmin session error" / "run setup_auth.py". Tu token de refresco en caché ha caducado o ha sido revocado (esto ocurre de vez en cuando, p. ej., tras un cambio de contraseña o un largo periodo de inactividad). Vuelve a ejecutar:

uv run python scripts/setup_auth.py

Límite de peticiones. Garmin Connect ocasionalmente limitará la velocidad de las peticiones rápidas; la biblioteca subyacente reintenta automáticamente los fallos transitorios, pero si ves un error de límite de peticiones, espera un poco y vuelve a intentarlo.

Verificación del servidor directamente, fuera de Claude Desktop:

uv run mcp dev src/garmin_mcp/server.py

abre el MCP Inspector para que puedas llamar a cada herramienta manualmente y comprobar su salida/esquema.

Estructura del proyecto

garmin_mcp/
  pyproject.toml
  src/garmin_mcp/
    auth.py      # keychain + token-cache helpers
    server.py    # FastMCP server and tool definitions
  scripts/
    setup_auth.py  # interactive one-time/occasional login
-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.

  • Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.

  • MCP server for Withings health data — sleep, activity, heart, and body metrics.

View all MCP Connectors

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

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