Garmin Read-Only MCP
Garmin Read-Only MCP
Una integración deliberadamente limitada de Garmin Connect para uso local con Hermes Agent. Sincroniza resúmenes seleccionados de Garmin en una caché SQLite de solo propietario, luego sirve solo esa caché normalizada a través de tres herramientas MCP de solo lectura.
Este proyecto utiliza el cliente
python-garminconnectmantenido por la comunidad y los endpoints no documentados de Garmin Connect. No está afiliado ni respaldado por Garmin. Los endpoints pueden cambiar, y el acceso automatizado puede conllevar riesgos para la cuenta o los términos de uso. El programa oficial Garmin Connect Developer Program sigue siendo la ruta preferida para integraciones comerciales aprobadas.
Modelo de seguridad
El diseño separa el acceso a la red del proceso MCP:
garmin-readonly-authrealiza un inicio de sesión interactivo único en una terminal local. La entrada de contraseña y MFA está oculta y nunca se acepta como argumentos de comando.garmin-readonly-synccarga el material de sesión local reutilizable, obtiene una ventana de fechas acotada, elimina los campos de origen y escribe resúmenes normalizados en SQLite.garmin-readonly-mcpno importa ni el cliente de Garmin ni el material de sesión. Solo lee la caché SQLite normalizada y rechaza las cachés que sean enlaces simbólicos, no regulares, no propiedad del usuario actual, o accesibles por el grupo/otros usuarios.
El directorio de estado predeterminado es:
~/.local/share/garmin-readonly-mcp/
├── tokens/ # Garmin session material, mode 0700/0600
└── cache.sqlite3 # normalized cache, mode 0600Establezca la variable de entorno no secreta GARMIN_READONLY_HOME para usar otra raíz.
Nunca coloque el directorio de estado dentro del repositorio.
Related MCP server: garmin-mcp-local
Alcance de los datos
La caché y MCP exponen solo:
Calorías totales diarias, activas y BMR/en reposo
Pasos y frecuencia cardíaca en reposo cuando estén disponibles
Tipo de actividad, hora de inicio, duración, distancia y calorías
Duración/puntuación del sueño, Body Battery, HRV/estado nocturno y preparación para el entrenamiento cuando estén disponibles
Excluyen deliberadamente:
Perfil de Garmin y datos sociales
Identificadores de cuenta e IDs de actividad
Detalles del dispositivo
Coordenadas GPS, rutas y archivos FIT/GPX/TCX
Peso y composición corporal
Respuestas sin procesar de Garmin
Operaciones de carga, actualización, programación o eliminación
Acceso genérico o arbitrario a la API de Garmin
Los valores de calorías de Garmin son contexto de actividad, no una orden para aumentar la ingesta de alimentos.
Requisitos
Linux u otro entorno similar a Unix con permisos de archivos privados
Python 3.12+
Una cuenta de Garmin Connect
Instalar
git clone https://github.com/alexpomsft/garmin-readonly-mcp.git
cd garmin-readonly-mcp
uv sync --frozenAutenticar localmente
Ejecute esto en una terminal local privada—no en Telegram, chat, historial de shell o una pantalla compartida:
uv run garmin-readonly-authEl comando pregunta localmente por el correo electrónico, la contraseña oculta y el MFA oculto si Garmin lo requiere. Almacena material de sesión reutilizable pero no la contraseña.
Sincronizar
El valor predeterminado sincroniza hoy y ayer:
uv run garmin-readonly-syncSe puede solicitar una ventana histórica limitada:
uv run garmin-readonly-sync --end-date 2026-08-18 --days 14--days debe estar entre 1 y 31. Los errores del proveedor se reemplazan con un mensaje público fijo para que las respuestas sin procesar de Garmin y los detalles de autenticación no se repitan.
Ejecutar el servidor MCP
Después de al menos una sincronización exitosa:
uv run garmin-readonly-mcpEl servidor stdio expone exactamente:
get_daily_activity(date: YYYY-MM-DD)get_recent_activities(days: 1..31 = 7)get_recovery_summary(date: YYYY-MM-DD)
Los esquemas de las herramientas rechazan argumentos no declarados.
Conectar a Hermes Agent
Use el comando MCP de Hermes en lugar de editar config.yaml manualmente:
hermes mcp add garmin-readonly \
--command /absolute/path/to/garmin-readonly-mcp/.venv/bin/garmin-readonly-mcp
hermes mcp test garmin-readonlyReinicie Hermes después de agregar el servidor para que sus herramientas sean descubiertas. No se pasan credenciales ni rutas de tokens de sesión a la configuración MCP; utiliza la raíz de estado predeterminada privada. Si GARMIN_READONLY_HOME está personalizado, pase solo esa configuración no secreta con hermes mcp add ... --env GARMIN_READONLY_HOME=/private/path.
Desarrollo y verificación
uv sync --frozen
uv run pytest --cov=garmin_readonly_mcp --cov-report=term-missing
uv run ruff check .
uv run mypy src tests
uv run pip-auditLa implementación se desarrolló primero con pruebas fallidas. CI ejecuta las mismas compuertas de prueba, lint, verificación de tipos y auditoría de dependencias.
Limitaciones
Los endpoints de Garmin Connect están diseñados mediante ingeniería inversa y pueden romperse sin previo aviso.
Garmin puede limitar la tasa, desafiar o bloquear clientes automatizados.
Algunos campos de recuperación no están disponibles en algunos dispositivos o fechas y devuelven
null.La caché local es una instantánea; programe
garmin-readonly-syncpor separado si se necesitan datos más recientes.Este proyecto no modifica automáticamente los objetivos de calorías ni proporciona asesoramiento médico.
Consulte SECURITY.md para conocer el manejo de credenciales y la notificación de vulnerabilidades.
This server cannot be installed
Maintenance
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
- AlicenseAqualityCmaintenanceMCP server for Garmin Connect that provides read-only access to daily health metrics, activities, workouts, and body composition data.32MIT
- AlicenseAqualityBmaintenanceA local MCP server that caches Garmin Connect data in SQLite for fast, read-only queries, with tools for bulk import, rate-limited sync, and failure alerts.9MIT
- AlicenseAqualityBmaintenanceMCP server for reading and querying Garmin Connect data, including activities, strength history, recovery, trends, and optionally creating workouts.12MIT
- Alicense-qualityCmaintenanceRead-only MCP server that exposes Garmin Connect health data from a local SQLite database to AI assistants, enabling queries for recent days, sleep, weekly trends, and a guarded SQL query surface.MIT
Related MCP Connectors
MCP server for Withings health data — sleep, activity, heart, and body metrics.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/alexpomsft/garmin-readonly-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server