Octobre 2025. Je décide d'en finir avec le "clic export" ou le copier-coller manuel de mes séances de sport. Soyons honnêtes : demander un plan d’entraînement à une IA, c’est le niveau zéro. Le vrai défi, c’est de lui confier les commandes de A à Z. Mon pari ? Voir jusqu’où je pouvais pousser l'automatisation... sans taper la moindre ligne de code.
⚡ TL;DR : L'article en 3 points
- L'automation réelle : Fini les PDF, j'ai utilisé le protocole MCP pour que Claude Desktop "pilote" mon compte Garmin Connect.
- Zéro Code (ou presque) : L'installation s'est démocratisée. Si j'ai utilisé
uv, des solutions comme les extensions MCPB permettent aujourd'hui de packager et d'installer ces serveurs en un clic, rendant l'outil accessible à tous. - Le gain : Un coach qui s'adapte à mon calendrier (ski, congés, fêtes) et synchronise les séances sur ma montre en un clic depuis le chat.
« Si vous voulez construire un bateau, ne rassemblez pas des gens pour chercher du bois, mais faites-leur désirer la mer. » Antoine de Saint-Exupéry
Je suis un geek d'informatique et un mordu de running. Quoi de plus naturel que de tester les limites de l'IA en me créant un coach sur-mesure ?
En ce moment, beaucoup d'influenceurs publient des vidéos rassurantes intitulées « Can ChatGPT replace your running coach? ». Ils se disent qu'ils ont le temps de voir venir. Le problème ? La personne derrière la caméra n'est souvent ni informaticienne, ni spécialiste en IA.
Moi non plus, me direz-vous ! Mais j'ai suffisamment de culture technique (LangChain, MCP, Context Window) pour savoir qu'un simple prompt dans ChatGPT n'est que la partie émergée de l'iceberg. Si un amateur peut obtenir ces résultats sur son temps libre, imaginez ce qui existera dans deux ans.
Le défi du jour : montrer ce qu'on peut faire aujourd'hui, sans coder, juste avec Claude Desktop et un protocole révolutionnaire.
Ce que propose la vidéo
J'ai regardé cette vidéo de Rafa : Can ChatGPT replace your running coach?. Elle résume bien ce que font la plupart des gens aujourd'hui : collecter des données, laisser l'IA générer un plan, puis l'exporter en CSV ou PDF.
C'est malin, mais incomplet. Le plan « vit » dans un tableur. Il faut ensuite créer manuellement chaque séance sur sa montre. Une corvée. Mon objectif était de connecter directement Claude à mon compte Garmin. Planifier, modifier, intégrer mes feedbacks... le tout depuis une seule interface de chat. Plus rapide. Plus précis.
L'arme secrète : le protocole MCP
Le MCP (Model Context Protocol) est un standard ouvert créé par Anthropic fin 2024. Pensez-y comme une prise USB-C pour l'IA.
Avant, chaque connexion nécessitait un développement spécifique. Avec MCP, un serveur expose des tools (des fonctions) que Claude peut appeler directement. Le serveur Garmin que j'utilise expose par exemple :
upload_workout: créer la séanceschedule_workout: la mettre au calendrierlist_activities: analyser mes sorties passées
La communauté a créé des centaines de serveurs MCP : Google Drive, Slack, GitHub, Notion. Et également celui dont j'avais besoin : Garmin.
Note : en octobre 2025, quand j'ai réalisé ce mini-projet, il n'existait pas de serveur MCP pour toutes les montres. Notamment rien pour Coros.
Installation : 5 minutes chrono
Pré-requis : un compte Claude (Pro ou gratuit avec limites), l'application Claude Desktop, un compte Garmin Connect, et uv (un gestionnaire qui lance des outils sans polluer votre PC).
Vous allez me dire : « tu triches, tu installes plein de choses techniques ». Oui, mais mon expertise n'a finalement servi à rien. J'ai procédé comme un novice. J'ai demandé à Claude de me guider pas à pas, et ça s'est très bien passé.
La méthode "Néophyte":
Aujourd'hui, vous n'avez plus besoin de manipuler des fichiers JSON complexes. Il existe des extensions MCPB qui packagent les serveurs MCP. Cela facilite grandement l'installation : vous téléchargez le pack, vous entrez vos identifiants Garmin, et l'extension s'occupe de configurer Claude Desktop pour vous. C'est l'option idéale pour ceux qui veulent les bénéfices de l'IA sans la tuyauterie technique.
La méthode "Geek" (Celle que j'ai utilisée):
- Installer Claude Desktop et avoir un compte Garmin.
- Installer
uv. - Ajouter le serveur dans le fichier
claude_desktop_config.json:
- Linux :
~/.config/Claude/claude_desktop_config.json - macOS :
~/Library/Application Support/Claude/claude_desktop_config.json - Windows :
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"garmin-workouts": {
"command": "uvx",
"args": ["garmin-workouts-mcp"],
"env": {
"GARMIN_EMAIL": "votre@email.com",
"GARMIN_PASSWORD": "votre_password"
}
}
}
}
mcp garmin
Redémarrer Claude Desktop. Lors de la première utilisation, une fenêtre de navigateur s'ouvre pour l'authentification Garmin. C'est tout.
Du chaos à la précision : l'invention d'un DSL
Ma première demande était naïve : « Crée-moi un entraînement de fractionné 10×1 minute à 3:50/km avec 1 minute de récupération entre chaque. »
Claude a compris. Il a créé un workout. Sauf que...
Le problème des blocs. Au lieu de créer un bloc de répétition (1 bloc, 10 itérations), Claude a créé 10 intervalles individuels. Sur la montre, impossible de savoir où j'en suis dans ma série. Pas de compteur « 3/10 ». Juste une succession d'étapes.
Le problème des dates. Claude se trompait d'année. Ou de jour. Parfois les deux. Il ne connaît pas « aujourd'hui » de manière fiable.
Le problème de l'échauffement. Par défaut, Claude créait des échauffements de 15 minutes fixes. Moi, je veux un échauffement libre, qui s'arrête quand j'appuie sur le bouton lap.
Les hallucinations. Parfois, il ajoutait des blocs en trop ou inventait des paramètres. L'intention était bonne. Le résultat, inutilisable.
La solution : le Constraint Engineering
Pour réduire l'ambiguïté, Claude m'a proposé tout seul de créer un format compact : un DSL (Domain Specific Language).
| Type d'instruction | Résultat Claude | Fiabilité |
|---|---|---|
| Langage naturel libre | Étapes désordonnées, dates erronées | 🔴 20% |
| Format DSL | Blocs de répétition propres, allures exactes | 🟢 95% |
Le format, inspiré des notations d'entraîneurs :
WORKOUT: [nom]
WARMUP: lap
REPEAT: [n]x → INTERVAL: [durée/distance] @ [allure_cible] | RECOVERY: [durée]
COOLDOWN: lap
Exemple concret :
WORKOUT: Mardi 10×1min
WARMUP: lap
REPEAT: 10x → INTERVAL: 60sec @ 3:50/km | RECOVERY: 60sec
COOLDOWN: lap
Avec ce format, Claude applique automatiquement mes conventions :
- Allure basse = cible − 5 secondes
- Allure haute = cible + 10 secondes
- Warmup/Cooldown = « lap button » (terminé quand j'appuie)
- Recovery = sans objectif d'allure
Résultat : des entraînements propres, prévisibles, qui fonctionnent.
Recopier les meilleurs : analyser les apps existantes
Une technique qui m'a beaucoup aidé : exporter des séances depuis d'autres applications et demander à Claude d'en analyser la structure.
J'ai créé des comptes d'essai sur plusieurs apps, exporté des séances types, puis comparé les structures JSON. Certaines apps créent des intervalles à la suite lors de répétitions, d'autres utilisent des blocs. Les types diffèrent aussi : interval vs other, rest vs recovery.
Cette analyse m'a permis de comprendre les conventions Garmin et de guider Claude vers les bonnes structures.
Industrialiser avec un skill
Pour ne pas répéter les mêmes instructions à chaque conversation et limiter les hallucinations, j'ai créé un skill dans mon projet Claude : un fichier Markdown qui documente :
- Le format de notation compact
- Les conventions de conversion (allures, durées)
- Le template JSON minimal
- Les erreurs à éviter
Claude lit ce fichier au début de chaque conversation. Il sait exactement comment je veux mes workouts. Plus besoin de ré-expliquer.
Le skill inclut même un tableau de conversion d'allures :
| Allure | Décimal |
|---|---|
| 3:30 /km | 3.5 |
| 3:45 /km | 3.75 |
| 4:00 /km | 4.0 |
| 5:00 /km | 5.0 |
Une limite de Claude Desktop
Il faut distinguer deux types de serveurs MCP : les serveurs locaux, qui tournent sur votre machine et ont accès libre au réseau, et les serveurs distants, qui transitent par l'infrastructure d'Anthropic. Dans ce second cas, les URLs accessibles sont soumises à des règles strictes.
J'en ai fait l'expérience concrètement : j'avais imaginé un second skill pour parcourir les transcripts de YouTubers spécialisés en running, compiler une base de connaissances, puis demander à Claude : « Crée-moi un entraînement pour tel objectif en utilisant la philosophie de cet entraîneur. »
En passant par un serveur MCP distant, je me suis heurté à une erreur de whitelist : le site que je tentais d'atteindre n'était pas autorisé par le proxy d'Anthropic. Faisable facilement en local avec les bonnes librairies et un serveur MCP local. Beaucoup plus contraignant dès qu'on sort de ce périmètre. Ce n'est peut-être plus le cas aujourd'hui, mais je n'ai vu personne en parler.
Les limites honnêtes
Ce système fonctionne. Mais il a ses limites.
La suppression. Claude a du mal à supprimer ou modifier des workouts existants, probablement une contrainte de l'API Garmin plutôt que du MCP. Il a commencé par supprimer les workouts un par un, en synchrone, ce qui prenait un temps fou. À ma grande surprise, il a proposé de lui-même de passer en asynchrone par batch de 5 entraînements : exactement ce qu'un ingénieur aurait tenté d'emblée. La vitesse de suppression s'est nettement améliorée.
La complexité croissante. Plus le projet s'enrichit (instructions, exemples, cas particuliers), plus le système devient lourd. Modifier une convention peut impacter plusieurs fichiers, et le contexte coûte de plus en plus cher en tokens. Comme dans Claude Code, il vaut mieux adopter une approche modulaire : un fichier CLAUDE.md léger (moins de 120 lignes) qui pose les principes fondamentaux et pointe vers des skills détaillés, chacun décrivant un comportement précis avec des exemples. On ne charge que ce dont on a besoin. Les tokens suivent.
Le contrôle. À mesure que le projet grandit, j'ai parfois eu l'impression de perdre le fil. Il faut refactoriser et réorganiser régulièrement. C'est le compromis inévitable : automatisation vs maîtrise.
Les serveurs MCP distants. Si vous voulez aller plus loin (accéder à des sources web, scraper des données, interroger des APIs tierces), attention à bien distinguer serveur local et serveur distant. Un serveur local a accès libre au réseau. Un serveur distant passe par le proxy d'Anthropic, avec ses propres restrictions. Une contrainte à anticiper avant de concevoir votre architecture.
Le coût. Avec un abonnement Claude à 20 $/mois, je me faisais rapidement bloquer. Le MCP consomme énormément de tokens, surtout au début, quand les fichiers de configuration ne sont pas encore bien structurés. Chaque échange inclut le contexte complet : instructions, conventions, historique. Ça s'accumule vite. Paradoxalement, c'est une bonne incitation à bien cadrer son projet dès le départ : des skills bien écrits et modulaires réduisent la consommation. Mais le chemin pour y arriver a un prix.
Mon setup actuel
Préparer un 10 km avec un calendrier aussi chaotique que le mien (fêtes, ski, reprise progressive) m'a forcé à trouver un système flexible plutôt qu'un plan rigide.
Le principe que j'ai adopté : donner le contexte à Claude, pas les décisions.
Au lieu de lui demander "fais-moi un plan 8 semaines", je lui décrivais ma réalité du moment :
"Semaine de Noël en famille, pas d'intensité. Reprise tranquille la semaine suivante. Ski du 9 au 14 janvier : pas de course mais je peux faire du renforcement. Bloc sérieux à partir du 5 janvier pour le 10K du 21 février."
Claude adaptait. Si je décalais une séance, je le disais. Il réajustait sans tout reconstruire.
Ce que j'ai appris : un bon coach IA ne planifie pas à votre place, il s'adapte à votre vie. C'est précisément là où il surpasse un tableur figé.
La boucle de rétroaction : Le coach qui écoute
Le vrai "game changer", ce n'est pas seulement que Claude envoie la séance, c'est qu'il peut la modifier après coup. Si une séance de fractionnés a été trop dure ou si une douleur au genou apparaît, je lui en parle simplement :
"Claude, la séance de 10×400m d'hier était épuisante, j'ai fini trop fort et j'ai une légère raideur au tendon d'Achille ce matin. Ajuste la fin de semaine."
Ce qui se passe techniquement : Grâce au MCP, Claude ne se contente pas de me répondre "Repose-toi". Il va :
- Analyser la séance et mes activités passées via
list_activities. - Identifier les séances futures déjà planifiées dans mon calendrier Garmin.
- Supprimer la séance difficile prévue le lendemain.
- Programmer à la place une séance de récupération active (footing lent, vélo ou natation) directement sur ma montre.
L'IA devient alors un partenaire de régulation de charge. Elle ne se base plus uniquement sur un algorithme théorique, mais sur mon ressenti subjectif couplé à mes données réelles.
Le verdict du bitume
42'46. L'objectif n'est pas atteint.
Pas à cause de la technique. Claude a tout géré : l'adaptation après une semaine de ski, les fêtes, les imprévus de calendrier. Le plan était là. Les séances aussi.
Mais j'ai négocié des intensités à la baisse. J'ai sauté des séances. Et aucune IA ne peut compenser ça.
Si c'était à refaire ? Je garderais le même système. Mais j'ajouterais une règle simple : ne pas modifier une séance sans écrire pourquoi. Pas pour Claude. Pour moi. Garder une trace des compromis, c'est la seule façon de progresser vraiment, avec ou sans IA.
L'IA peut planifier, ajuster, relancer. Elle ne peut pas lacer vos chaussures à votre place. La discipline reste le dernier kilomètre qu'elle ne courra jamais pour vous.
Ce que j'aurais aimé savoir
Commencer simple. Ma première erreur a été de vouloir tout automatiser d'un coup. Mieux vaut créer un workout manuellement, vérifier qu'il fonctionne sur la montre, puis itérer. C'est d'ailleurs exactement la logique de Claude Code : on commence par un plan, on valide, on avance.
Vérifier sur Garmin Connect. Toujours contrôler le résultat dans l'interface web avant d'envoyer sur la montre. Les mauvaises surprises arrivent vite.
Documenter les conventions. Chaque fois que Claude fait une erreur, noter la correction dans le skill. Le système s'améliore avec le temps.
Accepter l'imperfection. Ce n'est pas un produit fini. C'est un outil de bricoleur. Certains jours, ça marche du premier coup. Parfois, il faut ajuster.
Conclusion : la mer, pas le bateau
Ce projet m'a rappelé pourquoi j'aime bidouiller. Pas pour le résultat parfait, mais pour le processus. Comprendre comment fonctionne MCP. Découvrir les structures de données Garmin. Trouver le bon niveau d'abstraction.
Le coaching sportif était un prétexte. L'apprentissage, le vrai gain.
Si vous êtes data engineer, développeur, ou simplement curieux, essayez. Pas forcément avec Garmin : avec n'importe quel serveur MCP qui vous parle. Google Drive pour organiser vos fichiers. Notion pour structurer vos notes. Slack pour automatiser des messages.
Le protocole MCP démocratise l'automatisation. Plus besoin de coder des intégrations. On décrit ce qu'on veut, Claude fait le reste. Avec ses bugs, ses limites, ses surprises. Mais aussi avec cette magie de voir une idée prendre forme en quelques minutes.
Prochain objectif : trouver d'autres terrains de jeu pour s'amuser avec l'IA. Les idées ne manquent pas.
Bons projets !

