Récemment, je suis tombé sur l’article d’un certain Eric Holmes : “MCP is dead. Long live the CLI”. Un article qui, a sa sortie, a lancé une grande vague de débat autour de la supposée mort du MCP. Après avoir un peu étudié la question, je me suis construit un avis sur le sujet, comme tout le monde.

Alors, MCP, CLI ? Il y a clairement de quoi débattre, mais il y a aussi un sujet derrière le sujet derrière, dont on devrait parler. C’est ce que je vais essayer de faire dans cet article.

Au commencement fût le MCP

À la fin de l’année 2024, Anthropic, acteur émergent sur la scène des LLM et challenger faisant face au mastodonte qu’est OpenAI, dévoile une toute nouvelle idée : le Model Context Protocol (MCP). L’accueil est dithyrambique, et beaucoup de développeurs pensent déjà que l’on a atteint le next step de l’autonomie de la machine.

Très rapidement, beaucoup de services commencent à proposer un MCP : Context7, Notion, Stripe, Google Workspaces, etc… Bref, tout le monde y passe. Cependant, s’il est très pratique de passer par un MCP pour permettre à son LLM d’agir avec plus d’autonomie, à l’époque et encore aujourd’hui, le MCP souffre d’un problème structurel : son coût en token.

À l’heure où j’écris ces lignes, l’arrivée de modèles plus performants et pouvant gérer plus de contexte palie ce problème. Cependant, dans ses premières heures, le prix à payer était le sacrifice permanent d’une partie de sa fenêtre de contexte. Cela devenait d’autant plus handicapant quand le LLM n’arrivait pas à s’en servir correctement du premier coup, et devait retenter l’appel au MCP, ce qui représentait un coût supplémentaire en token.

Face à ce coût en contexte, et à des appels parfois ratés, une solution plus ancienne revient dans le débat : le terminal, et les CLI.

Ce bon vieux CLI

Du point de vue d’un développeur, passer par un Command Line Interface (CLI) est assez courant. Et en réalité, les LLM ont beaucoup été entraînés sur du code, mais aussi de la documentation et des commandes en terminal. Dès lors, l’usage du terminal et des CLI devient quelque chose de relativement simple pour un LLM, surtout si la commande a une documentation exhaustive.

Un CLI a donc un avantage certain : celui de ne pas occuper le contexte du LLM, en plus d’être facilement manipulable par du code. S’il fallait en douter, il suffit de constater le concept du “Code Mode” de Cloudflare, qui permet à un agent d’accéder à des milliers d’endpoints via deux outils seulement, en écrivant du code plutôt qu’en manipulant une longue liste de définitions d’outils.

La “Hype”, comme d’habitude

On peut se poser une question : “S’il était déjà possible de faire beaucoup avec les CLI, pourquoi les MCP ont-ils eu autant d’attention ?”.

En cherchant un peu, on trouve pas mal d’avis allant dans le sens de la “mort” du MCP. Des avis qui soulignent ce que j’ai dit précédemment sur les CLI. Cependant, ce qui explique l’essor du MCP et sa nécessité est relativement flagrant en vérité : le grand public.

Le grand public a davantage à gagner des MCP, car ceux-ci permettent d’exposer des services sans demander à l’utilisateur d’installer un CLI, de gérer des dépendances ou d’écrire des appels d’API. Évident quand on y pense, non ?

Quant aux développeurs qui prônent la “mort” du MCP, ils ne sont victimes que de leur propre engouement pour toutes les nouveautés ayant attrait à l’univers de l’IA. Abusé par cette “hype” constante véhiculée par des réseaux comme X (Twitter pour les anciens), coincé dans des niches entre afinicionados, et autres “devfluenceurs”, il est rapide d’oublier que l’on évolue dans un cercle restreint, et que les incitations à “prendre le train en marche” profitent toujours plus à ceux qui ont quelque chose à vendre qu’aux utilisateurs.

Conclusion

Est-ce qu’il faut “choisir” entre MCP ou CLI ?

Je pense que quand on est développeur, il y a peu de raison de ne pas privilégier le CLI au MCP. Les CLI coûtent peu en token, les LLM sont déjà familiers avec ces derniers, et un environnment de dev assez rarement dénué de CLI de toute manière.

Néanmoins, le MCP a son importance quand on n’a pas la possibilité d’avoir un environnement de dev ou quand il n’existe pas de CLI ou d’API ouverte. Parler de la “mort” du MCP est donc provocateur mais surtout inutile, quand on sait que ceux qui le disent, les développeurs surtout, ne sont pas la principale cible de cet outil. Pour cette catégorie d’utilisateur, le CLI était, est et restera le meilleur choix possible quand il s’agit d’interagir avec des outils externes sans passer par une interface, que ce soit pour les humains ou les LLM.