39 points par GN⁺ 2026-03-02 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Résout le problème des grands volumes de données brutes générés lors des appels à des outils externes, qui épuisent rapidement la fenêtre de contexte
  • Placé entre Claude Code et la sortie des outils, il compresse et filtre les données, réduisant 315 KB à 5,4 KB (98 % de réduction)
  • Grâce à une architecture sandbox, chaque exécution est isolée et seul stdout est inclus dans le contexte, ce qui empêche la fuite de données brutes comme les logs et les snapshots
  • Avec une base de connaissances fondée sur SQLite FTS5, il indexe le contenu Markdown et applique le classement BM25 et le Porter stemming pour permettre une recherche précise dans les blocs de code
  • Avec la même limite de 200K tokens, la durée des sessions passe de 30 minutes à 3 heures, permettant une gestion plus efficace du contexte pour les agents IA

Problème

  • Les appels d’outils MCP de Claude Code déversent directement les données brutes de chaque appel dans la fenêtre de contexte de 200K
    • Snapshot Playwright 56 KB, 20 issues GitHub 59 KB, logs d’accès 45 KB, etc.
    • Après environ 30 minutes d’utilisation, 40 % du contexte total est consommé
  • MCP est devenu le standard pour l’usage d’outils externes, mais il existe une limite structurelle où la définition des entrées comme les données de sortie remplissent toutes deux le contexte
  • Avec plus de 81 outils activés, 72 % (143K tokens) sont déjà consommés avant même le premier message

Architecture de Context Mode

  • Un serveur MCP placé entre Claude Code et la sortie des outils, qui transmet les données en minimisant les données brutes
    • Une sortie de 315 KB est ramenée à 5,4 KB (98 % de réduction)
  • Chaque appel execute s’exécute dans un sous-processus isolé, de manière indépendante, sans partage de mémoire ni d’état
    • Seul stdout est inclus dans le contexte ; les logs, réponses d’API, snapshots, etc. restent à l’intérieur du sandbox
  • Prise en charge de 10 runtimes de langage : JavaScript, TypeScript, Python, Shell, Ruby, Go, Rust, PHP, Perl, R
    • Détection automatique de Bun, avec une exécution JS/TS 3 à 5 fois plus rapide
  • Les CLI authentifiés (gh, aws, gcloud, kubectl, docker) transmettent les identifiants de manière sûre via l’héritage des variables d’environnement

Base de connaissances (knowledge base)

  • L’outil index découpe le Markdown par heading et l’enregistre dans une table virtuelle SQLite FTS5, en conservant intact les blocs de code
  • Lors de la recherche, l’algorithme de classement BM25 calcule la pertinence à partir de la fréquence des mots, de la fréquence inverse des documents et de la normalisation de la longueur des documents
  • Grâce au Porter stemming, “running”, “runs” et “ran” sont mis en correspondance avec la même racine
  • Lors d’un appel à search, il renvoie non pas un résumé mais les blocs de code exacts et la hiérarchie des headings
  • fetch_and_index récupère une URL, convertit le HTML en Markdown puis l’indexe ; la page d’origine n’est pas incluse dans le contexte

Chiffres de performance

  • Dans 11 scénarios réels (triage de tests, diagnostic d’erreurs TypeScript, revue de git diff, etc.), la sortie reste dans tous les cas sous 1 KB
    • Snapshot Playwright : 56 KB → 299 B
    • Issues GitHub (20) : 59 KB → 1,1 KB
    • Logs d’accès (500 entrées) : 45 KB → 155 B
    • Analyse CSV (500 lignes) : 85 KB → 222 B
    • Logs Git (153 commits) : 11,6 KB → 107 B
    • Analyse de dépôt (subagent) : 986 KB → 62 KB (5 appels vs 37)
  • À l’échelle de la session complète : 315 KB → 5,4 KB, avec une durée de session passant de 30 minutes à 3 heures
  • Contexte restant après 45 minutes : 60 % auparavant → 99 %

Installation et utilisation

  • Prise en charge du hook d’auto-routing et des commandes slash via le Plugin Marketplace
  • Installation dédiée à MCP également possible
  • Utilisable immédiatement après redémarrage de Claude Code

Changements concrets

  • Sans modifier la manière d’utiliser l’outil, le hook PreToolUse route automatiquement les sorties
  • Les subagents utilisent batch_execute comme outil par défaut
  • Le subagent Bash passe à general-purpose, ce qui lui donne accès aux outils MCP
  • Résultat : la fenêtre de contexte ne se remplit plus rapidement, ce qui permet de conserver des sessions plus longues avec le même volume de tokens

Contexte de développement

  • En exploitant MCP Directory & Hub, l’auteur a constaté un schéma commun : tous les serveurs MCP déversent les données brutes dans le contexte
  • Inspiré par le Code Mode de Cloudflare, qui compressait les définitions d’outils, le projet a étendu cette approche à la compression des données de sortie
  • Après avoir confirmé qu’il permettait de travailler 6 fois plus longtemps dans une session Claude Code, le projet a été publié en open source sous licence MIT
  • GitHub : mksglu/claude-context-mode

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.