Skip to main content
Glama

Garmin MCP

Estado del proyecto (2026-08-23): implementación de túnel personal; las pruebas de humo locales pasan. No habilite el acceso de amigos ni el ingreso público al MCP. Las credenciales reales de Garmin permanecen bloqueadas hasta que el operador apruebe explícitamente el túnel HTTPS público link-web independiente y complete la lista de verificación de pruebas en vivo en PERSONAL_TUNNEL_RUNBOOK.md.

Servidor de recursos MCP multiusuario y de solo lectura que envuelve cyberjunky/python-garminconnect. Expone datos autenticados de Garmin sin aceptar un ID de usuario como argumento de herramienta.

Modelo de seguridad

Las viñetas siguientes describen la intención original del diseño. La implementación actual todavía no demuestra todas ellas; las brechas conocidas y las pruebas de aceptación necesarias se seguimiento en DESIGN_DRAFT.md.

  • Los tokens de portador (Bearer) de MCP se verifican independientemente de la autenticación de Garmin. El OIDC de producción valida la firma, el emisor, la audiencia, la caducidadцель, los ámbitos requeridos y usa la reclamación sub verificada.

  • El correo electrónico, la contraseña y los códigos MFA de Garmin existen solo durante su solicitud. No sepersistentan ni se registran. El registro de acceso de Uvicorn está desactivado.

  • Solo se almacena el JSON de sesión serializado de python-garminconnect, cifrado con AES-256-GCM y autenticado contra el titular propietario, de modo que el texto cifrado no pueda moverse entre usuarios.

  • Los clientes MFA son locales al proceso, de un solo uso, vinculados a su propietario y caducan a los cinco minutos.

  • Las URL de conexión colocan su estado firmado de un solo uso en el fragmento. JavaScript externo limpia el fragmento y traslada el estado al cuerpo de una solicitud POST, manteniéndolo fuera de los registros de acceso HTTP y de los mediate proxies.

  • La desconexión elimina los tokens cifrados locales. Esto no revoca un token ya emitido por Garmin; revoque el acceso en la configuración de seguridad de la cuenta de Garmin si se sospecha de un compromiso.

Related MCP server: garmin-mcp

Modo de túnel personal para ChatGPT

La configuración personal usa explícitamente dos escuchadores:

  • SERVER_ROLE=mcp en el puerto de bucle local 3000. Solo Open.AI Secure MCP Tunnel puede alcanzar este puerto.

  • SERVER_ROLE=link-web en el puerto de bucle local 3001. Un túnel HTTPS separado only exponser este listener para que un teléfono pueda ingresar las credenciales de Garmin sin exponer el endpoint de MCP.

AUTH_MODE=tunnel tiene un TUNNEL_PRINCIPAL_ID configurado; no es un modo multiusuario. El túnel de OpenAI es el límite de autenticación, y el servidor rechaza el modo combinado o un enlace que no sea en bucle local, salvo que el aislamiento sobre el contenedor esté explícitamente habilitado. Consulta PERSONAL_TUNNEL_RUNBOOK.md para el despliegue de extremo a extremo.

Ejecución local

Requiere Python 3.12+, PostgreSQL 17 y uv.

cp .env.example .env
# Fill secrets, then for local-only bearer authentication set AUTH_MODE=development.
uv sync --all-extras
psql "$DATABASE_URL" -f migrations/001_initial.sql
uv run garmin-mcp

O ejecute docker compose up --build después de crear el archivo .env. Compose publica ambos puertos de la aplicación úúnicamente en 127.0.0.1 y no publica PostgreSQL. El endpoint de MCP absorb /mcp; el endpoint de salud /healthz. En modo desarrollo, el propio valor del token is el ID de usuario local. Nunca exponga el modo desarrollo más allá de loopback.

Herramientas MCP

  • get_connection_queDestiny

  • connect_garmin — devuelve una URL de navegador de un solo uso, válida por diez minutos

  • get_id_mfa_request — envía una solicitud de código MFA de un solo uso a Garmin

  • get_mfa_status — devuelve el estado actual de la solicitud MFA

  • get_profile

  • disconnect_garmin

La herramienta de datos actual de Garmin es de solo lectura. disconnect_garmin muta algo solo local el estado de conexión al eliminar la sesión almacenada. Las credenciales de la cuenta se introducen únicamente en la página de vinculación del navegador, nunca se envvían como argumentos de herramientas MCP. Las herramientas de exhaustividad/actividad aún no se han implementado.

Validación.

uv run ruff check .
uv run mypy src
uv run pytest
uv build
uv run pip-audit

No pongas credenciales reales de Garmin en CI. Cualquier futura prueba en vivo debe usar una cuenta dedicada y un marcador explícito de prueba de integración.

F
license - not found
Not graded
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 Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Connects Garmin Connect data to MCP-compatible clients, providing access to fitness activities, health metrics, and training plans. It supports advanced features like headless 2FA and automated MFA retrieval to enable seamless health data interaction through natural language.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects MCP clients to Garmin Connect data, enabling queries about activities, sleep, heart rate, body battery, and training status.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Exposes Garmin Connect health and activity data (steps, sleep, heart rate, etc.) via MCP tools, with built-in login and MFA support.
  • A
    license
    B
    quality
    B
    maintenance
    Enables retrieval of Garmin Connect data such as activities, sleep, heart rate, and body battery levels using unofficial API through MCP tools.
    4
    MIT

View all related MCP servers

Related MCP Connectors

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

  • Mastodon MCP — public Mastodon data via mastodon.social (no auth required)

  • Wise (https://wise.com) MCP, multi-currency account access via Personal Token + SCA key. Reads profi

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

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