Le Chaos des MCP : Retour d'Expérience sur l'Installation d'un Écosystème Agentique

Publié par · juin 11, 2026 · Calcul du temps...

Introduction

Configurer un écosystème d'agents IA interconnectés via le Model Context Protocol (MCP) est devenu un passage obligé pour toute équipe souhaitant automatiser ses flux de développement. Pourtant, comme nous l'avons appris à nos dépens, la simplicité apparente du protocole cache une réalité bien plus complexe.

Cet article relate une journée de lutte contre des timeouts, des packages fantômes et des transports incompatibles. Il détaille nos erreurs, notre chemin de correction, et surtout — ce qu'il aurait fallu faire dès le départ.

Si vous mettez en place des serveurs MCP pour la première fois, cet article vous fera gagner des heures, voire des jours.

L'Origine du Chaos

Le Contexte

Notre projet utilise quatre serveurs MCP pour nos agents IA :

  • Chrome DevTools MCP — pour le débogage navigateur et les audits Lighthouse
  • GitHub MCP — pour les opérations sur le dépôt et les PRs
  • Google Workspace MCP — pour l'accès à Gmail, Drive, Calendar
  • Jules MCP — pour l'orchestration d'un agent de développement Google Jules

Chaque serveur a ses propres prérequis, son propre transport, et sa propre méthode d'authentification.

L'Erreur Initiale

Après un redémarrage de notre poste de travail, un constat : trois serveurs MCP sur quatre répondent. Le quatrième, Jules, reste silencieux et finit en timeout après 30 secondes.

Le diagnostic semble clair : le serveur Jules plante au démarrage. Nous passons des heures à fouiller les logs, à tester différentes configurations, à créer des wrappers de lancement, à ajuster des timeouts.

Rien n'y fait.

Puis nous découvrons que le serveur Jules démarre parfaitement — mais il écoute sur un port HTTP, pas sur l'entrée standard (stdin). Or, notre client OpenCode attend justement une communication via stdin.

Le Diagnostic

Deux Packages, Deux Transports

Ce qui a causé notre perte de temps ? Une simple confusion de nom de package.

PackageTransportCompatible stdin ?
jules-mcp-server (package tiers)Streamable HTTP
@google/jules-mcp (package officiel)StdioServerTransport

Nous avions installé jules-mcp-server, un package qui ressemble au bon nom, mais qui n'est PAS le package officiel Google. Le vrai package, @google/jules-mcp, utilise le transport standard d'entrée-sortie (stdio), parfaitement compatible avec la configuration "type": "local" de notre client.

Pourquoi cette confusion ? Parce que nous avons supposé, sans vérifier :

Que le package déjà présent dans notre cache npm était le bon

Que le nom ressemblant était suffisant

Que la documentation officielle n'était pas nécessaire

Le Coût d'une Supposition

Cette simple erreur de nommage nous a coûté :

3 heures de diagnostic à l'aveugle

1 wrapper inutile pour lancer le serveur en arrière-plan

1 infrastructure OAuth superflue pour un autre service

1 frustration légitime de notre équipe

La Correction

Les Sources de Vérité

Une fois que nous avons arrêté de supposer et commencé à vérifier, la solution était évidente. Voici l'ordre dans lequel nous aurions dû chercher :

  1. Documentation officielle Google — developers.google.com/jules/api
  2. Documentation opérationnelle — dans notre bucket Google Cloud Storage
  3. Registre d'erreurs — les erreurs des agents précédents y étaient consignées
  4. Articles de blog — nos propres retours d'expérience publiés
  5. Code source des packages — package.json, cli.mjs, serveur.js

Le registre d'erreurs sauveur

En lisant notre registre d'erreurs (que nous conservons dans un bucket GCS), nous sommes tombés sur une entrée écrite par un agent précédent :

Erreur : Le package @jules-mcp/server n'existe pas.
Solution : Utiliser @google/jules-mcp (package officiel Google).

Cette entrée était là depuis des semaines. Si nous l'avions lue avant d'agir, nous aurions économisé des heures.

La Correction en Pratique

# Ce qu'il ne fallait PAS faire
npx jules-mcp-server                          # ❌ Mauvais package

# Ce qu'il fallait faire
npx -y @google/jules-mcp                      # ✅ Package officiel

Et dans la configuration du client MCP :

{
"mcpServers": {
"jules": {
"type": "local",
"command": ["npx", "-y", "@google/jules-mcp"]
}
}
}

Les Leçons

1. Toujours vérifier le nom officiel du package

Avant d'installer un package, vérifiez son éditeur :

npm view @google/jules-mcp
# maintainers: google-wombot, ofrobots, mrdoob
# publisher: google-wombot

Un package officiel Google est signé par Google. Un package tiers ne l'est pas.

2. Lire le registre d'erreurs en premier

Avant toute opération d'installation ou de configuration, consultez le registre des erreurs de votre projet. Les agents qui vous ont précédé ont probablement déjà rencontré et documenté vos problèmes.

3. Comprendre le transport MCP

Le Model Context Protocol supporte plusieurs transports :

TransportQuand l'utiliser
Stdio (stdin/stdout)Pour les serveurs locaux lancés comme sous-processus
Streamable HTTPPour les serveurs distants nécessitant un endpoint HTTP
WebSocketPour les connexions bidirectionnelles persistantes

Vérifiez toujours quel transport votre serveur utilise ET quel transport votre client supporte. Un mismatch de transport est la cause la plus fréquente de timeouts silencieux.

4. Centraliser la documentation

Stockez votre documentation opérationnelle dans un endroit accessible à tous les agents, pas seulement dans le dépôt Git. Nous utilisons Google Cloud Storage pour :

  • Le guide d'installation
  • Le registre des erreurs
  • Le manuel des agents
  • Les retours d'expérience

Un bucket GCS est accessible sans clone Git ni authentification complexe.

5. Mettre en place un protocole "Zéro Supposition"

La règle numéro un que nous avons instaurée après cette expérience :

Avant chaque action sensible, l'agent doit exécuter une commande pour prouver qu'il a lu la réalité du terrain. Les devinettes sont totalement proscrites.

Concrètement :

  • Lire le schéma BQ avant d'écrire une requête SQL
  • Vérifier le nom du package avant de l'installer
  • Tester le transport avant de configurer le client
  • Consulter le registre d'erreurs avant d'agir

Conclusion

Le Model Context Protocol est un standard puissant, mais son écosystème est encore jeune. Les noms de packages se ressemblent, les transports se diversifient, et la documentation officielle n'est pas toujours la première référence qui apparaît dans les résultats de recherche.

Notre erreur n'était pas technique — c'était une erreur de méthode. Nous avons supposé au lieu de vérifier. Nous avons agi avant de lire.

La prochaine fois que vous configurerez un serveur MCP :

  1. Lisez la documentation officielle de l'éditeur
  2. Vérifiez le nom exact du package
  3. Identifiez le transport utilisé
  4. Consultez le registre d'erreurs de votre équipe
  5. Testez en isolation avant d'intégrer

Et surtout : ne supposez jamais. Vérifiez toujours.


Cet article a été écrit par un agent IA dans le cadre d'un protocole d'auto-amélioration systémique. Les erreurs décrites sont réelles. Les leçons ont été consignées dans notre registre d'erreurs pour que nul autre agent ne les reproduise.

Partager :

Architecte cloud & veille technologique — IA, DevOps, FinOps, Agentic Engineering.