Aller au contenu

📡 Configuration Garmin

Cette page détaille l'accès à Garmin Connect utilisé par ai-running-coach.

Architecture

Mode direct (défaut)

flowchart LR
    A["Votre IDE<br/>(agent IA)"] --> B["garmin-mcp<br/>(serveur, liste blanche)"]
    B --> C["Garmin Connect<br/>(API)"]

Mode passerelle (optionnel — power user)

flowchart LR
    A["Votre IDE<br/>(agent IA)"] --> B["leanproxy-mcp<br/>(passerelle)"]
    B --> C["garmin-mcp<br/>(serveur)"]
    C --> D["Garmin Connect<br/>(API)"]
  • garmin-mcp — serveur MCP qui expose les données Garmin Connect (activités, santé, sommeil, calendrier, planification d'entraînements). Mode direct par défaut : il est enregistré directement dans votre IDE avec une liste blanche d'outils (GARMIN_ENABLED_TOOLS) pour réduire la taxe de contexte (~151 outils → ~25).
  • leanproxy-mcp — passerelle MCP optionnelle (mode power user) qui agrège les serveurs, charge les schémas à la demande et économise ~98 % de tokens. Installée avec --use-leanproxy.
  • garmin-mcp-auth — outil d'authentification OAuth (tokens stockés dans ~/.garminconnect/)

Composants installés

Composant Rôle Installation
uv Gestionnaire Python curl -LsSf https://astral.sh/uv/install.sh \| sh
garmin-mcp Serveur MCP Garmin uv tool install --python 3.12 git+https://github.com/Taxuspt/garmin_mcp
garmin-mcp-auth Authentification OAuth via uv run garmin-mcp-auth
leanproxy-mcp Passerelle MCP (optionnel) brew tap mmornati/leanproxy-mcp && brew install leanproxy-mcp

Mode direct (défaut)

Le script d'installation enregistre le serveur MCP garmin dans votre IDE avec la liste blanche d'outils :

{
  "mcpServers": {
    "garmin": {
      "command": "garmin-mcp",
      "args": ["stdio"],
      "env": {
        "GARMIN_ENABLED_TOOLS": "get_activities,get_activities_by_date,get_activity,get_activity_fit_data,get_activity_splits,get_activity_typed_splits,get_activity_split_summaries,get_sleep_data,get_hrv_data,get_training_readiness,get_calendar_events,get_courses,get_workouts,get_workout_by_id,get_scheduled_workouts,schedule_workouts,schedule_week,upload_workout,upload_course,create_strength_workout,delete_workout,unschedule_workout,unschedule_workouts,download_activity_file"
      }
    }
  }
}

Pourquoi une liste blanche ?

garmin-mcp expose ~151 outils. Les agents de ce projet n'en utilisent qu'une vingtaine. La liste blanche (GARMIN_ENABLED_TOOLS) réduit fortement la taxe de contexte de chaque requête. Vous pouvez l'ajuster dans install.sh (variable GARMIN_TOOL_WHITELIST).

Mode passerelle (optionnel — power user)

Installez avec --use-leanproxy :

./install.sh --use-leanproxy

Le script configure deux fichiers dans ~/.config/leanproxy/ :

config.yaml

server:
  host: "127.0.0.1"
  port: 8080
  timeout: 300s
  max_batch_size: 100
optimization:
  lazy_loading:
    enabled: true
    stub_tokens: 54
    cache_ttl: 24h
namespaces:
  sport:
    description: "Sport tools"
    servers:
      - garmin
    allowed_clients:
      - "*"
logging:
  level: "info"
  file: ""

leanproxy_servers.yaml

version: "1.0"
servers:
    - name: garmin
      enabled: true
      transport: stdio
      stdio:
        command: garmin-mcp
        args:
            - stdio
        env:
            - GARMIN_ENABLED_TOOLS: "get_activities,get_activities_by_date,get_activity,get_activity_fit_data,get_activity_splits,get_activity_typed_splits,get_activity_split_summaries,get_sleep_data,get_hrv_data,get_training_readiness,get_calendar_events,get_courses,get_workouts,get_workout_by_id,get_scheduled_workouts,schedule_workouts,schedule_week,upload_workout,upload_course,create_strength_workout,delete_workout,unschedule_workout,unschedule_workouts,download_activity_file"
        cwd: .
      timeout: 300s
      connect_timeout: 10s
      idle_timeout: ""

Config existante

Le script ne remplace pas une configuration existante. Si config.yaml ou leanproxy_servers.yaml existent déjà, ils sont conservés.

Authentification

Les tokens Garmin sont stockés dans ~/.garminconnect/ et sont valides environ 6 mois.

Vérifier les tokens

uv run garmin-mcp-auth --verify

Renouveler l'authentification

uv run garmin-mcp-auth

Données accessibles

Les agents accèdent aux outils Garmin directement (mode direct) ou via leanproxy_invoke_tool(server="garmin", tool="...") (mode passerelle) :

  • Activités : liste, détails, fichiers FIT
  • Santé : HRV, sommeil, stress, fréquence cardiaque au repos
  • Calendrier : séances planifiées, push d'entraînements
  • Planification : création de séances (course, fractionné, renforcement)

Dépannage

Problème Solution
garmin-mcp introuvable uv tool install --python 3.12 git+https://github.com/Taxuspt/garmin_mcp
Tokens expirés uv run garmin-mcp-auth
leanproxy-mcp introuvable (mode passerelle) brew tap mmornati/leanproxy-mcp && brew install leanproxy-mcp
Erreur de connexion Vérifiez que garmin-mcp fonctionne : garmin-mcp stdio

Voir aussi la page Dépannage.