Aller au contenu principal

La taxe sur les tokens du MCP

Avancé

Une bagarre agite Hacker News et X ce mois-ci : pourquoi brûler des dizaines de milliers de tokens pour une seule opération MCP quand la même chose via une CLI coûte deux cents tokens ? Cela ressemble à du MCP-bashing. Ce n’en est pas. Ceux qui crient le plus fort sont ceux qui adorent les agents — ils viennent simplement de recevoir la facture. Cette page est le guide pratique de cette facture : où partent réellement les tokens, les deux coûts que presque personne ne distingue, et les trois remèdes qui transforment un workflow de 150 000 tokens en un workflow de 2 000 tokens.

What you'll learn
  • Distinguer les DEUX coûts en tokens du MCP : le chargement des définitions d’outils et les résultats intermédiaires
  • Comprendre pourquoi le coût des schémas est payé à chaque conversation, et non une seule fois
  • Utiliser defer_loading et le Tool Search Tool pour charger les schémas d’outils à la demande
  • Utiliser l’exécution de code / Programmatic Tool Calling pour garder les gros résultats hors du contexte
  • Décider, tâche par tâche, quand un outil MCP en vaut la peine et quand un simple appel CLI l’emporte

Deux coûts, pas un seul

Quand vous connectez un serveur MCP, le client lui demande tools/list et reçoit en retour chaque outil avec son schéma JSON complet. Tout ce bloc est injecté dans le contexte du modèle. La plupart des gens s’arrêtent là dans leur comptabilité mentale. Mais il y a deux taxes distinctes, et la seconde est généralement la plus lourde.

Coût 1 — Les définitions d’outils. Le nom, la description et le schéma de paramètres de chaque outil connecté occupent le contexte. La formulation d’Anthropic elle-même : « Quand des agents sont connectés à des milliers d’outils, ils doivent traiter des centaines de milliers de tokens avant même de lire une requête. » Un seul serveur d’entreprise peut publier des dizaines voire des centaines d’outils ; des analyses tierces estiment qu’un serveur de 400 outils représente environ 400 000 tokens de schémas à lui seul — plus que ce que la fenêtre de contexte de 200k de Claude peut contenir.

Coût 2 — Les résultats intermédiaires. Quand le modèle appelle un outil directement, chaque résultat repasse par le contexte du modèle, y compris les parties que vous ne vouliez jamais lui faire lire. L’exemple d’Anthropic : récupérer la transcription d’une réunion de deux heures depuis un outil et la passer à un autre, et la transcription complète traverse le modèle deux fois — potentiellement ~50 000 tokens — juste pour produire un résumé d’une ligne.

Watch out
  • Le coût 1 est payé à CHAQUE tour tant que le cache de prompt n’intervient pas — les schémas sont renvoyés à chaque requête de la conversation, ils ne sont pas chargés une fois pour toutes. Un gros catalogue d’outils est une taxe sur toute la session, pas un frais unique.
  • Le coût 2 croît avec vos DONNÉES, pas avec votre nombre d’outils. Dix petits outils peuvent coûter moins cher qu’un seul outil qui renvoie un énorme bloc.

Les chiffres, d’après les sources primaires

RemèdeTâcheAvantAprèsRéduction
Exécution de code avec MCPWorkflow Google Drive → Salesforce150 0002 00098,7 %
Tool Search ToolCharger les définitions avant de commencer~77 000~8 70085 %
Programmatic Tool CallingTâche de recherche complexe43 58827 29737 %

Les trois lignes reprennent les chiffres publiés par Anthropic. Le plus surprenant n’est pas le coût — c’est la précision : avec le Tool Search Tool, la précision de sélection des outils a augmenté (Opus 4.5 est passé de 79,5 % à 88,1 % ; Opus 4 de 49 % à 74 %). Moins d’outils qui encombrent le contexte, et le modèle choisit le bon plus souvent. Ici, coût et qualité vont dans le même sens, ce qui est rare.

Remède 1 — Charger les schémas d’outils à la demande

Au lieu d’injecter tous les schémas d’emblée, marquez-les defer_loading: true. Claude ne voit alors qu’un index léger ; quand il a besoin de GitHub, il appelle le Tool Search Tool, qui renvoie uniquement les schémas GitHub correspondants — et non les 50+ outils de tous les autres serveurs. Anthropic indique que cela préserve ~191 300 tokens de contexte contre ~122 800 avec tout préchargé.

Vous observez ce schéma en direct si vous utilisez Claude Code avec de nombreux serveurs MCP : les outils arrivent différés, et l’agent va chercher chaque schéma via une étape de recherche seulement quand une tâche en a besoin. Des retours de la communauté indiquent que Claude Code active automatiquement MCP Tool Search dès que les descriptions de vos outils connectés dépasseraient ~10 % de la fenêtre de contexte — vérifiez le déclencheur exact dans votre version.

Guided walkthrough1 of 3
  1. Listez les serveurs actifs et, grosso modo, combien d’outils chacun publie. Un serveur connecté la semaine dernière pour une seule tâche taxe encore chaque tour aujourd’hui.

Remède 2 — Garder les résultats hors du contexte avec l’exécution de code

Le remède plus profond vise le coût 2. Au lieu que le modèle appelle les outils un par un avec chaque résultat qui le traverse, le modèle écrit du code qui appelle les outils, et les données intermédiaires restent dans l’environnement d’exécution. Anthropic expose les serveurs MCP comme une arborescence de fichiers d’outils que l’agent explore comme un système de fichiers, en ne chargeant que les définitions dont il a besoin — et « les résultats intermédiaires restent par défaut dans l’environnement d’exécution… l’agent ne voit que ce que vous loguez ou renvoyez explicitement. »

C’est ce seul changement de conception qui fait passer le workflow Drive→Salesforce de 150 000 à 2 000 tokens : les enregistrements transitent par le code, et seul le décompte final revient au modèle. Sur la Developer Platform, la même idée est livrée sous le nom de Programmatic Tool Calling — Claude écrit du Python qui orchestre plusieurs outils et filtre les sorties avant même qu’elles n’atteignent son contexte.

Pro tip
  • Règle empirique : si un outil RENVOIE quelque chose de volumineux (une transcription, un dump de requête, un fichier), vous voulez l’exécution de code pour que le bloc soit traité hors contexte. Si un outil se contente de FAIRE quelque chose de petit (créer un ticket, envoyer une ligne), un appel direct suffit.

Remède 3 — Savoir quand un appel CLI l’emporte tout simplement

Parfois, la bonne réponse n’est pas une meilleure configuration MCP — c’est pas de MCP du tout. L’argument HN/X touche juste : une commande shell comme gh pr list ou psql -c '…' coûte quelques centaines de tokens aller-retour, tandis que le chemin MCP équivalent paie les schémas plus un résultat structuré. Si l’agent dispose déjà d’un terminal et que la CLI existe, c’est souvent le chemin le plus léger.

Préférez la CLI quand l’outil est déjà une CLI

# Instead of connecting a GitHub MCP server for read-only work,
# let the agent use the gh CLI it already has:
gh pr list --state open --json number,title,author

# ~200 tokens of command + compact output, no schema tax,
# no server to keep connected across the session.

MCP justifie son surcoût quand vous avez besoin d’une capacité typée, avec permissions, transverse — une base de données avec un rôle en lecture seule, un navigateur qu’il peut piloter, une API SaaS avec OAuth — ou quand les mêmes outils sont réutilisés sur de nombreux tours, si bien que le cache amortit le coût des schémas. Optez pour une CLI quand la capacité est ponctuelle, déjà scriptable, et renvoie quelque chose de petit. Aucune n’est « meilleure » ; ce sont deux points différents sur une courbe de coût.

Key takeaways
  • MCP a deux coûts en tokens : les schémas de définitions d’outils (payés ~à chaque tour) et les résultats intermédiaires (qui croissent avec vos données).
  • Tool Search + defer_loading réduisent le coût des schémas d’environ 85 % ET augmentent la précision de sélection des outils — chargez les schémas seulement quand ils sont recherchés.
  • L’exécution de code / Programmatic Tool Calling gardent les gros résultats dans l’environnement d’exécution ; seul ce que vous loguez ou renvoyez atteint le modèle (150k → 2k dans l’exemple d’Anthropic).
  • L’optimisation la moins chère consiste à connecter moins de serveurs par tâche.
  • Quand la capacité est ponctuelle, renvoie quelque chose de petit et dispose déjà d’une CLI, un appel shell (~200 tokens) bat un aller-retour MCP.
Termes de l’économie du MCP
Appuyez sur Entrée ou Espace pour retourner la carte. Utilisez les flèches gauche et droite pour naviguer entre les cartes.Terme affiché.
1 / 5

Testez-vous

0/4
  1. Pourquoi le coût des définitions d’outils est-il pire qu’un frais unique ?
  2. Un outil récupère une transcription de 2 heures et la passe à un outil de résumé via des appels directs. Quel est le coût caché ?
  3. Vous avez besoin d’un unique « lister les PR ouvertes » en lecture seule pendant une session de code, et l’agent a un terminal. L’option la plus légère ?
  4. Que se passe-t-il de surprenant pour la précision de sélection des outils quand vous utilisez le Tool Search Tool ?

À lire aussi sur AILmanac

Sources et lectures complémentaires