Garmin Coach MCP
Provides tools for accessing Garmin Connect data, including recent activities, activity downloads, performance metrics, and per-account settings through a multi-tenant server that authenticates with Garmin credentials.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Garmin Coach MCPshow me my latest running stats"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🏃 Garmin Coach MCP
Lo que tu reloj sabe hoy, trabaja para ti esta noche.
Un puente autohospedado entre Garmin Connect y tu asistente de IA (Claude, Cursor, VS Code, móvil…). Conectas tu cuenta Garmin una vez y conversas con tus propios números: VFC, carga de entrenamiento, sueño, ritmos y planes. Incluye un panel web multi-usuario para gestionar un club entero de corredores.
✨ Qué hace
Habla con tus números — pregunta en lenguaje normal: «¿estoy sobreentrenando?», «¿qué ritmo en Z3?», «saca una ruta de 12 km desde casa».
120+ herramientas MCP —
get_daily_summary,get_hrv_data,detect_fatigue_risk,plan_this_week,parse_training_pdf,calculate_pace_zones,route_from_home,get_race_predictionsy muchas más.Fatiga real, no clichés — cruza VFC nocturna, predisposición y sueño para devolverte un veredicto accionable con su porqué.
PDF del entrenador → tu reloj — sube el plan de maratón en PDF y lo convierte en etapas (calentamiento, series, enfriamiento) listas para el dispositivo.
Multi-usuario aislado — cada corredor tiene su API key y sus credenciales Garmin guardadas por separado. Nadie ve la sesión del otro.
Web app incluida — panel de administración (
/admin), alta de corredores paso a paso (/admin/users), login y conexión Garmin guiada (/connect), landing pública (/).Autohospedado — desplegado en tu Dokploy, tu nube o tu casa. Tú decides dónde viven los datos.
Rutas sobre OpenStreetMap — generación de rutas circulares desde casa con
osmnx.
Related MCP server: garmin-mcp
🚀 Cómo funciona
Garmin Connect → Garmin Coach MCP (tu servidor) → Claude / Cursor / VS Code / móvil
(API) (Docker / Dokploy) (MCP protocol)Hay 3 pasos, una sola vez:
Recibe tu clave — el administrador te crea una API key personal (
gcmcp_…) desde/admin/users.Conecta tu Garmin — metes tu correo y contraseña en el asistente seguro. Quedan guardados y aislados en tu carpeta de usuario.
Entrena y pregunta — abres Claude, Cursor o VS Code, lo conectas con tu clave y listo.
🖥️ Despliegue
Opción A — Dokploy (recomendada)
Despliega el repositorio como un aplicación Docker Compose en Dokploy (dominio público, HTTPS con el proxy inverso incorporado).
# docker-compose.yml (ya incluido en el repo)
services:
garmin-mcp:
build: .
image: garmincoachmcp-garminmcp
restart: unless-stopped
ports:
- "8000:8000"
environment:
- PORT=8000
- DATA_DIR=/data
- USERS_DB_DIR=/data/users
- PUBLIC_URL=${PUBLIC_URL:-} # ej: https://garmin.tudominio.com
- GARMIN_LANGUAGE=es
- GARMIN_TIMEZONE=Europe/Madrid
volumes:
- garmincoach_data:/data
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
interval: 30s
timeout: 5s
retries: 3
start_period: 20s
volumes:
garmincoach_data: # persiste tokens Garmin y usuarios entre desplieguesOpción B — Docker CLI
docker build -t garmin-coach-mcp .
docker run -d --name garmin-mcp \
-p 8000:8000 \
-e PUBLIC_URL=https://garmin.tudominio.com \
-v garmincoach_data:/data \
garmin-coach-mcpOpción C — Local (Python)
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
DATA_DIR=./data PUBLIC_URL=http://localhost:8000 python server.py⚙️ Variables de entorno
Variable | Default | Descripción |
|
| Puerto del servidor. |
|
| Raíz del volumen persistente (tokens, usuarios, config). |
|
| Carpeta con la BBDD de usuarios y sus tokens. |
| (vacío) | URL pública del servicio (para enlaces de conexión). Ideal en Dokploy. |
| (vacío) | Si se define, bloquea |
| (vacío) | Token para el panel de administración |
| (vacío) | Tokens Garmin en JSON (legacy single-user, base64). |
| (vacío) | Email asociado a los tokens legacy. |
|
| Idioma de las respuestas Garmin. |
|
| Zona horaria de las métricas. |
|
| Minutos de caché de datos Garmin. |
|
| Máx. actividades por consulta (1–20). |
|
| Pon a |
🔑 Rutas web
Ruta | Descripción |
| Landing pública. |
| Panel de administración. |
| Alta de corredores paso a paso (wizard). |
| Panel del corredor (por API key). |
| Asistente para conectar Claude / Cursor / móvil. |
| Conexión de la cuenta Garmin del corredor. |
| Healthcheck (200 = vivo). |
🤖 Conectar un asistente
Desde /connect?api_key=… (o el panel del corredor u/login) obtienes la config exacta.
Claude Desktop / Cursor (HTTP):
{
"mcpServers": {
"garmin-coach": {
"url": "https://tu-dominio/mcp",
"headers": { "X-User-API-Key": "TU_API_KEY" }
}
}
}Claude Code (CLI):
claude mcp add --transport http garmin-coach https://tu-dominio/mcp \
--header "X-User-API-Key: TU_API_KEY"Móvil / Claude.ai: usa un Custom Connector apuntando a https://tu-dominio/mcp con la cabecera X-User-API-Key.
El correo y la contraseña de Garmin viven en tu servidor, nunca en el chat. Tu app solo guarda la API key personal.
🧩 Herramientas MCP destacadas
get_daily_summary · get_hrv_data · detect_fatigue_risk · plan_this_week · parse_training_pdf · calculate_pace_zones · summarize_period · route_from_home · get_race_predictions · list_tools_spanish … y más de 110 hasta completar el cuaderno.
Pídele al asistente list_tools_spanish para ver el catálogo completo en directo.
🔒 Privacidad
Cada quien lo suyo — tu sesión Garmin vive en tu carpeta de usuario; ni el vecino ni el admin la ven.
Solo la API key — en tu app guardas solo tu clave personal; el correo de Garmin va al asistente, nunca al chat.
Autohospedado — es tu servidor. Tú decides dónde viven los datos.
📁 Estructura
server.py # Servidor FastMCP + panel web (single-file)
index.html # Landing pública
Dockerfile # Imagen (instala GDAL/geos/proj para rutas)
docker-compose.yml # Despliegue en Dokploy con volumen /data
requirements.txt # Dependencias🛠️ Desarrollo
git clone https://github.com/javipaur/garmin-coach-mcp.git
cd garmin-coach-mcp
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
DATA_DIR=./data python server.py
# → http://localhost:8000Hecho con 🏃 para entrenar de forma más inteligente.
This server cannot be deployed
Maintenance
Related MCP Connectors
Garmin data in Claude: 135 tools — activities, sleep, HRV, training, workouts. Free, open source.
Garmin data in Claude & ChatGPT via the Garmin Health API. OAuth sign-in, no password sharing.
Connect your health, fitness, nutrition, sleep, and wearable data to your AI assistant.
- Coach MCPOAuthai.iamcoach
Your endurance training data in your AI assistant: activities, recovery, plan, workout edits.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to access and query Garmin Connect health and fitness data, including sleep, HRV, training load, and activities, with an optional coaching plugin for personalized training plans.1 npm4-
- FlicenseNot gradedqualityCmaintenanceExposes Garmin Connect data and workout management to AI agents, supporting tools, resources, and prompts for health data, workout creation, and coaching workflows.1-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to access Garmin Connect activities, workouts, and workout templates for querying and creating workout plans.5MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query live Garmin Connect health and fitness data, including daily metrics, activities, sleep analysis, and trends via natural language.MIT