garmin-coach-mcp
Local Garmin Coach MCP
Private, single-user Garmin coaching tools for Codex/ChatGPT desktop and Claude. The server is local stdio only: no Cloudflare, Render, public URL, account service, or hosting cost.
The runtime is based on etweisberg/garmin-connect-mcp at commit 87d0ea059fb67f1ce65ac05100df74c3c3777c84. It keeps the upstream AGPL-3.0 license and Taxuspt attribution in NOTICE.
Requisitos previos
Node.js 20 o superior
pnpm 10.14.0
Una cuenta de Garmin Connect y un reloj sincronizado
Related MCP server: io.github.matisdsp/fartlek
Instalación
cd /home/talvak/Desktop/repos/garmin-coach-mcp
pnpm install --frozen-lockfile
pnpm exec playwright install chromium
pnpm build
pnpm authpnpm auth abre un perfil de Chrome visible y dedicado. Inicia sesión manualmente, completa la MFA y luego pulsa Enter en la terminal. La sesión del navegador se guarda en ~/.local/share/garmin-coach/browser-profile. Los valores de CSRF en tiempo de ejecución se leen de la página autenticada actual y nunca se persisten ni se imprimen. Los directorios son 0700, los archivos son 0600, el guardado de contraseñas está desactivado y no se crea ningún archivo de usuario/contraseña.
Capturar el contrato de escritura de perfil de Garmin
Garmin no publica una API estable de escritura de perfil de frecuencia cardíaca. El servidor se niega a adivinarla.
pnpm capture:profile-contractEl comando carga el modelo de aplicación actual de Garmin, le pide que guarde las zonas predeterminadas actuales sin cambios y bloquea el PUT resultante antes de su entrega. Valida la ruta y el cuerpo exacto sin cambios, y luego almacena solo una forma redactada de método/ruta/campos y los ámbitos admitidos en ~/.local/state/garmin-coach/profile-write-contract.json con modo 0600.
Si la forma de Garmin no puede demostrarse, no se guarda ningún contrato y las escrituras de perfil permanecen deshabilitadas.
Conectar Codex y ChatGPT desktop
Compila primero y luego copia config/codex.toml.example en ~/.codex/config.toml, o añade el servidor equivalente a través de Configuración > Servidores MCP de ChatGPT desktop. Codex CLI, la extensión del IDE y ChatGPT desktop comparten la configuración local de MCP en el mismo host.
El ejemplo utiliza:
default_tools_approval_mode = "writes"Ambas herramientas de aplicación también tienen un approval_mode = "prompt" explícito. Reinicia el cliente después de la configuración y usa /mcp para verificar la conexión.
ChatGPT web no puede iniciar este proceso stdio local. Usa ChatGPT desktop/Codex para las escrituras de Garmin.
Conectar Claude
Combina config/claude.json.example en la configuración MCP de Claude, o ejecuta:
claude mcp add garmin-coach -- /home/talvak/snap/code/current/.local/share/pnpm/node /home/talvak/Desktop/repos/garmin-coach-mcp/dist/index.jsEl bloqueo del sistema de archivos permite que solo un cliente local posea el perfil de Chromium de Garmin a la vez. Detén el servidor en un cliente antes de usar el otro.
Herramientas
Tool | Garmin write |
| No |
| No |
| No |
| Yes, approval required |
| No |
| No |
| Yes, separate approval required |
Flujo de trabajo seguro
Llama a
get_coaching_snapshoty compáralo con Garmin Connect.Llama a
preview_hr_profile_update.Revisa cada campo y aprueba la propuesta/hash canónica exacta.
Llama a
apply_hr_profile_update; luego sincroniza Garmin y verifica visualmente las zonas del reloj.Llama a
preview_training_weekpara una semana que comienza en domingo.Revisa su evidencia de recuperación, la carga útil completa, las advertencias y el hash.
Llama a
apply_training_weekcon la propuesta/hash canónica sin cambios.Llama a
verify_training_weeky confirma que lunes/viernes son135-149 bpm; el viernes debe mostrar instrucciones fijas de12%.Reintenta ambas llamadas de aplicación para demostrar la idempotencia.
El dolor/lesión o la enfermedad bloquean las escrituras de entrenamiento. La recuperación puede mantener, reducir u omitir; nunca aumenta la carga. Los entrenamientos nunca se eliminan automáticamente.
Garmin expone Treadmill como una actividad de reloj dentro de Running, no como un deporte de entrenamiento estructurado. Por lo tanto, el viernes es un entrenamiento compatible con running llamado Incline Walk 12%; inícialo desde la actividad Treadmill del reloj. Su indicación de inclinación 12% y su objetivo de 135-149 bpm siguen siendo explícitos.
Perfil de FC aprobado
Field | Value |
Maximum HR | 189 bpm |
Resting HR | 55 bpm |
Lactate threshold HR | 181 bpm |
Basis | Heart-rate reserve/custom BPM |
Zone 1 | 122-134 bpm |
Zone 2 | 135-149 bpm |
Zone 3 | 150-162 bpm |
Zone 4 | 163-176 bpm |
Zone 5 | 177-189 bpm |
Estos valores son provisionales: edad 27, FC en reposo 55, FC máxima estimada 189 y LTHR manual 181. Los indicadores de detección automática se conservan. Los cambios futuros requieren otra vista previa y aprobación.
Verificación
Las pruebas ordinarias son sin conexión y nunca llaman a Garmin:
pnpm test
pnpm lint
pnpm format:check
pnpm typecheck
pnpm build
git diff --checkConsulta spec.md para el comportamiento y docs/architecture.md para los límites de confianza.
Licencia
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
- AlicenseAqualityBmaintenanceLocal MCP server that connects Claude Desktop with Garmin and Apple Health data to read training and recovery, estimate heart rate and pace zones, analyze performance, and create structured workouts.22MIT
- AlicenseAqualityBmaintenanceAn MCP server that transforms Garmin data into compact, verdict-first coaching reports for LLMs, computing metrics like CTL/ATL/TSB and ACWR to answer training readiness questions.14MIT
- AlicenseBqualityCmaintenanceA private, read-only MCP server that gives local Codex and Claude Desktop sessions access to athletics and wellness data from a Garmin Forerunner 55. It runs locally over stdio, exposes read-only tools for daily health, recovery, performance, and workouts, and caches data in SQLite.8MIT
- Alicense-qualityBmaintenanceA local, single-user, read-only MCP server that gives Claude Code access to your Garmin health and training data, exposing tools for health snapshots, training status, run details, body metrics, and training analysis.1MIT
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.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
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/talvaknin744/garmin-coach-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server