Tes données Garmin,
dans Claude.
Une commande installe un petit connecteur sur ta propre machine. Ton e-mail et ton mot de passe Garmin vont de ton navigateur à cette machine puis à Garmin — et nulle part ailleurs. Aucun hébergeur, ni ce projet, ne peut jamais les voir.
curl -fsSL https://raw.githubusercontent.com/devfrp/mcp-garmin-for-ia/main/get.sh | sh
Rien au milieu
La plupart des connecteurs te demandent de confier tes identifiants Garmin au
serveur de quelqu'un d'autre. Celui-ci tourne sur une machine que tu contrôles — un portable,
un serveur maison, un conteneur Proxmox, un VPS. L'installeur met tout en place sous ton propre
utilisateur, enregistre le connecteur comme service qui démarre avec la machine (systemd ou
launchd) et affiche les liens de connexion. Les jetons OAuth vivent dans
~/.config/garmin-mcp/ ; le mot de passe n'est jamais stocké.
Compatible Claude Code, Claude Desktop, claude.ai dans le navigateur, et
tout autre client MCP.
Ce que Claude peut lire
Neuf outils, directement depuis l'API Garmin Connect — en lecture seule.
Activités
La liste des activités, et le détail complet de n'importe laquelle — splits, tours, tout l'enregistrement.
Résumé quotidien
Pas, calories, minutes d'intensité, étages — la journée d'un coup d'œil.
Sommeil
Phases, durée et score de sommeil, nuit après nuit.
Fréquence cardiaque
FC de repos et série intra-journalière.
Body Battery
La courbe de charge et de décharge sur la journée.
Stress & VFC
Niveaux de stress et variabilité cardiaque — les deux qui disent s'il faut pousser ou se reposer.
Profil utilisateur
Le profil derrière les chiffres, pour que les valeurs soient lues en contexte.
MCP standard
Aucune astuce propre à Claude : n'importe quel client MCP peut viser le même endpoint.
Installer
Linux et macOS. Le script installe Tailscale quand c'est nécessaire (--tailscale / --funnel) et --no-sudo interdit toute élévation de privilèges — implicite en root.
Machine personnelle
curl -fsSL https://raw.githubusercontent.com/devfrp/mcp-garmin-for-ia/main/get.sh | sh
Serveur maison / LXC / VPS
# LAN + Tailscale (serveur maison) … | sh -s -- --server # écoute uniquement sur l'IP Tailscale (VPS à IP publique) … | sh -s -- --server --tailscale # + une URL HTTPS publique permanente pour claude.ai … | sh -s -- --funnel
Se connecter à Garmin
# ouvrir la page affichée par l'installeur http://127.0.0.1:8765/setup # en local http://<ip-serveur>:8765/setup # LAN / tailnet
L'authentification à deux facteurs est gérée. Les endpoints de connexion ne répondent que sur des adresses privées — jamais sur les points d'entrée HTTPS publics.
CLI
garmin-mcp # démarrer le connecteur garmin-mcp login # se connecter depuis le terminal garmin-mcp url # afficher ton URL MCP garmin-mcp tunnel # tunnel Cloudflare rapide garmin-mcp logout # déconnecter Garmin garmin-mcp rotate-token # nouveau jeton, anciennes URL mortes
Connecter un client
Les clients locaux utilisent l'URL à jeton. claude.ai exige HTTPS et OAuth — le connecteur implémente les deux.
| Client | Ce qu'il faut utiliser | Transport |
|---|---|---|
| Claude Code | claude mcp add -s user --transport http garmin "<URL MCP>" | JETON |
| Claude Desktop et autres clients MCP locaux | http://…:8765/garmin/?token=… | JETON |
| claude.ai (navigateur) Réglages → Connecteurs → Ajouter un connecteur | https://<machine>.<tailnet>.ts.net/garmin/ | OAUTH |
- 1 · HTTPSObtenir une adresse publique ·
--funnelà l'installation donne une adresse permanentehttps://<machine>.<tailnet>.ts.netqui survit aux redémarrages — ou utilise le bouton Create HTTPS link de la page de configuration pour un tunnel Cloudflare rapide, dont l'URL change à chaque redémarrage. - 2 · COLLERAjouter le connecteur · colle l'URL HTTPS de base suivie de
/garmin/, sans jeton. - 3 · AUTORISERValider · claude.ai ouvre la page d'autorisation du connecteur : colle le jeton d'accès donné par
garmin-mcp urlou par la page de configuration, puis approuve. L'autorisation persiste. - SI ÇA ÉCHOUEDNS en cours de propagation · si claude.ai n'atteint pas le serveur juste après l'activation de Funnel, attends quelques minutes. Si ça persiste, renomme la machine dans la console Tailscale — un nom DNS neuf résout immédiatement — et relance l'installeur.
Comment ça marche
Un seul processus sur ta machine, deux entrées — et une seule est joignable depuis Internet.
~/.config/garmin-mcp/ · dialogue avec Garmin SSO et l'API Connect?token=, en préfixe de chemin /t/<token>/garmin/, ou en en-tête Bearer ← Claude Code / DesktopLes scanners qui sondent une adresse publique, c'est normal — tout ce qu'ils touchent renvoie 404.
| Proxmox LXC | Ce qu'il faut faire |
|---|---|
| Tourne en root sans jamais appeler sudo | Installe une unité systemd système qui démarre avec le CT. |
Tailscale a besoin de /dev/net/tun | Si le conteneur ne l'a pas, le script s'arrête et affiche les deux lignes exactes à ajouter à /etc/pve/lxc/<CTID>.conf sur l'hôte Proxmox. |
| Conteneurs Debian | Nécessitent apt install python3-venv au préalable. |