Skip to main content
Glama
saryva
by saryva
README.md
# 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

A3.7/5.0

Scored across 7 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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.

Maintenance

ActivitySlowing
ResponsivenessNo issues