garmin-mcp
# MCP Garmin
Servidor MCP que expone tus datos de Garmin Connect (actividades, sueño,
recuperación, estado de forma) a Claude, en modo solo lectura.
## Instalación rápida (Claude Desktop, sin terminal)
1. Descarga `mcp-garmin.mcpb` de la última release.
2. En Claude Desktop: Configuración → Extensiones → "Install Extension…" →
selecciona el fichero.
3. Rellena tu email y contraseña de Garmin Connect en el formulario. Se
guardan solo en tu máquina.
## Instalación para desarrollo
```bash
git clone <url-del-repo>
cd mcp-garmin
cp .env.example .env # rellena tus credenciales
uv sync
uv run pytest # verifica que todo pasa
```
Añade el servidor a tu `claude_desktop_config.json` o `.mcp.json` apuntando
a `uv run --directory <ruta-del-repo> src/server.py`.
## Tools disponibles
- `garmin_login(email, password, mfa_code)` — inicia sesión (con soporte MFA).
- `get_activities(start, limit, activity_type)` — actividades recientes.
- `get_activity_detail(activity_id)` — detalle y splits de una actividad.
- `get_daily_summary(start_date, end_date)` — pasos, calorías, minutos activos.
- `get_recovery_metrics(day)` — sueño, Body Battery, HRV, FC en reposo.
- `get_training_zones()` — zonas de FC y potencia configuradas.
- `get_training_status(day)` — Training Load/Status, VO2 max, récords, predicciones.
## Alcance
Solo lectura. La escritura de entrenamientos hacia el dispositivo queda
fuera de esta versión (ver `docs/superpowers/specs/2026-07-27-garmin-mcp-connector-design.md`).
## Notas sobre credenciales y requisitos
- **Instalación vía `.mcpb`**: Claude Desktop guarda tu email y contraseña de
Garmin usando el keychain del sistema operativo (cifrado). **Instalación
manual** (editando `claude_desktop_config.json` / `.mcp.json` o el `.env`):
`GARMIN_PASSWORD` se guarda tal cual, **en texto plano**, en ese fichero.
Es un compromiso asumido para simplificar el flujo de desarrollo/manual;
ten cuidado con los permisos de esos ficheros y no los subas a un repo.
- **Requisito de `uv` en la máquina destino**: el `.mcpb` usa
`"type": "uv"` como runtime, lo que evita tener que preinstalar Python o
Node en la máquina, pero **no** evita necesitar `uv`: `uv` debe estar
instalado en la máquina donde se instale la extensión para que `mcpb`
pueda ejecutar el servidor.
TDQS
Scored across 7 tools
Each tool targets a distinct aspect of Garmin Connect: login, activities, daily summary, recovery, training zones, training status, and activity detail. There is no overlap in purpose.
All tools use snake_case with a clear 'get_' prefix for queries and a single 'garmin_login' for authentication. The naming pattern is consistent and predictable.
Seven tools is well-scoped for a fitness data server, covering login, activity listing, daily summary, recovery metrics, training zones, training status, and activity detail. No tool feels superfluous.
The tools cover common read operations for Garmin Connect, but lack filtering by date range for activities and batch retrieval for metrics. Minor gaps that do not severely hinder typical use.