Et si casser le code de vos utilisateurs aujourd’hui vous évitait une émeute demain ?
C’est le pari que vient de lancer le créateur de Charlotte. Avec 111 étoiles — pas encore la cohue, mais assez d’utilisateurs réels en piste —, il a renommé les 43 outils de son serveur MCP. Exit les deux-points : charlotte:navigate. Vive les underscores : charlotte_navigate. Un commit. Boum.
Rappel : MCP — le Model Context Protocol, ce pont fluide entre les agents IA et les outils externes — impose des noms stricts : lettres, chiffres, underscores, points, tirets. Pas de deux-points. Jamais. Mais les premiers SDK fermaient les yeux. Jusqu’à la v1.26.0 qui balance des warnings à chaque enregistrement. Corriger maintenant, avec une poignée d’utilisateurs ? Ou plus tard, au milieu des docs, de la mémoire musculaire et des fourches ?
Il a choisi maintenant. Malin.
Pourquoi balancer ce breaking change à 111 étoiles ?
Les gens touchés sont ceux qui ont des prompts ou configs custom avec les noms d’outils en dur. Un petit groupe pour l’instant. Dans six mois, ce sera bien plus large.
Le génie de MCP brille là. Les clients — genre Claude Desktop ou Cursor — découvrent les outils dynamiquement à la connexion. L’agent demande : « T’as quoi ? » Charlotte répond avec la liste fraîche. Les anciens noms ? Pouf. Évaporés. La mise à jour passe crème pour la plupart.
Seuls les strings hardcodés piquent. Rares aujourd’hui. Épidémie demain.
Ma lecture, que l’original zappe : ça rappelle le grand virage du modèle de périphériques dans le noyau Linux 2.6. Les early adopters ont râlé — puis remercié Torvalds quand l’écosystème s’est blindé. Charlotte mise sur le même coup. Les breaks fragiles, on les envoie jeune ; l’acier, on le forge après. Prono audacieux : les serveurs MCP qui ignorent ça vont se fissurer sous les hordes d’agents d’ici 2025.
Et le storytelling PR ? Zéro ici. Logique dev brute, sans chichi. Revigorant.
Mais attendez — la v0.6.0 ne s’est pas contentée d’un renommage. Remplissage batch de formulaires. Finis les gaspilleurs de jetons.
Pourquoi le remplissage batch de formulaires explose les coûts en jetons des agents IA ?
Visualisez : formulaire contact à 10 champs. Avant 0.6.0 ? Dix appels d’outils. charlotte_type ici, charlotte_select là. Chacun trimballe ~4 000 jetons de schema en overhead. Multiplié par dix ? 40k jetons perdus, avant même de taper « Jane Smith ».
Maintenant ? charlotte_fill_form avale un tableau :
{ “fields”: [ { “element_id”: “inp-a3f1”, “value”: “Jane Smith” }, { “element_id”: “inp-b7c2”, “value”: “[email protected]” }, // etc. ] }
Un appel. Gère inputs, selects, checkboxes, dates, couleurs. Détecte les types auto. Pour un testeur qui mitraille 50 pages ? 500 appels tombent à 50. Les jetons s’accumulent — les économies explosent à l’échelle.
C’est structurel : les allers-retours MCP tuent les fenêtres de contexte. Batché, les agents respirent. Pourquoi si tard ? Cécité aux jetons, sans doute. Les agents étaient des jouets ; maintenant, ce sont des bêtes de somme.
Chromium paresseux. Solution brutale.
Les serveurs lançaient les navigateurs au démarrage. Sympa pour les prototypes. Mais Cursor ? Claude Desktop ? Ils allument tout ce qui est dans la config. Un navigateur idle ? Buée RAM — pour des sessions code où vous ne naviguez jamais.
Maintenant ? Lancement au premier appel d’outil. Idle ? Muet. Pas de navigateur, pas de conso.
Frappe lente ensuite. charlotte_type ajoute character_delay. Pourquoi ? Les sites avec recherche live, autocomplétion, validation — ils snobent les pastes. Faut des frappes clavier. trivial ? Dites ça à vos tests d’agents qui plantent.
Support Node 20. Fini le req 22 — superflu. Les masses LTS exultent.
Comment un bug JS sournois a hanté trois fichiers
Puis les fantômes : new Function(‘return ’ + expr). ASI — Automatic Semicolon Insertion — transformait les multi-statements en null. Touché evaluate.ts en v0.4.1. Corrigé.
wait-for.ts ? Même ve