>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Python

Hoe Voorkom Je Dat Je Duizenden Dollars Verbrandt aan Tokens bij het Werken met AI-Agents op Code

Herkenbaar? Je vraagt Claude Code of Cursor om een enkele twintig regels tellende functie in een legacy-module te repareren. De agent opent een bestand van duizend regels, leest een hoop imports, kijkt naar naburige bestanden, en verbrandt meteen de helft van het contextvenster. We betalen neural network providers niet voor het genereren van slimme oplossingen, maar voor eindeloos door source code scrollen.

Een ontwikkelaar onder de nickname jgravelle stelde een pragmatische aanpak voor: verplaats de code structuuranalyse naar een lichtgewicht lokale parser, en voer het neural network alleen het relevante fragment. Zo ontstond het open-source project jCodeMunch MCP.

Wat is de kerngedachte van het project

jCodeMunch MCP is een MCP (Model Context Protocol) server die je codebase indexeert met behulp van de tree-sitter library. In plaats van AI-agents hele bestanden te voeren, parseert de tool de AST-boom en extraheert specifieke symbolen: functies, klassen, methoden, constanten en interfaces.

Wanneer een agent de implementatie van een methode moet opzoeken, retourneert jCodeMunch slechts 30 regels van die specifieke functie met byte offsets, in plaats van het hele 800 regels tellende bronbestand. Volgens de benchmarks van de auteur op populaire repositories zoals FastAPI, Express en Gin vermindert deze aanpak het tokenverbruik voor het lezen van code met 95–99%.

De tool werkt met Claude Code, Cursor, Windsurf, VS Code, Codex CLI, Continue en elke andere client die MCP ondersteunt.

Belangrijkste functies van jCodeMunch

Gerichte AST-zoekopdracht in plaats van brute kracht

Een typische AI-assistent zoekt naar code via grep of vraagt bestanden één voor één op. jCodeMunch indexeert het project één keer en bouwt een symboolkaart. De agent kan zoeken op exacte naamovereenkomst, fuzzy search of een hybride algoritme (BM25 gecombineerd met PageRank).

Context verzamelen in één enkele aanroep

In plaats van een lange keten van queries zoals "zoek bestand -> lees -> controleer imports -> lees imports," heeft jCodeMunch een assemble_task_context tool. Je geeft een natuurlijke-taaltaak door en de server bepaalt automatisch de intentie (debugging, refactoring, audit), extraheert belangrijke symbolen en vormt een gecomprimeerde contextbundel strikt binnen de opgegeven tokenlimiet.

Vragen waar grep geen antwoord op kan geven

Statisch zoeken begrijpt geen relaties tussen componenten. jCodeMunch kan call graphs bouwen en gespecialiseerde technische vragen beantwoorden:

  • find_importers: toont welke bestanden afhankelijk zijn van de geselecteerde module.
  • get_blast_radius: beoordeelt de blast radius en risico's bij het wijzigen van een specifieke functie.
  • find_dead_code: vindt ongebruikte symbolen en weesbestanden die niet verbonden zijn met entry points.
  • get_symbol_importance: rankt projectcomponenten op architectonische significantie met behulp van het PageRank-algoritme.
  • get_untested_symbols: zoekt naar functies die niet gedekt worden door bestaande tests.

Compact MUNCH-formaat voor overdracht

Regulier JSON is overbodig uitgebreid en vreet zelf context. Naast code-extractie kan jCodeMunch zijn eigen MUNCH-compressie toepassen. Herhaalde paden worden geïnterneerd en lijsten worden verpakt in compacte CSV-strings met behoud van types. Dit levert nog eens 40–50% besparing op in datavolume dat wordt overgedragen.

Onder de motorkap

Het project is geschreven in Python en draait volledig lokaal. Standaard worden alle indices opgeslagen in de ~/.code-index/ directory. Het gebruikt tree-sitter bindings om meer dan 70 programmeertalen te parsen.

Context-assemblage is gebaseerd op BM25 full-text search en import graph-analyse met PageRank-berekening. Als je echte semantische zoekopdrachten op betekenis nodig hebt, kun je de optionele [local-embed] package installeren. Het downloadt één keer een lokaal ONNX-model all-MiniLM-L6-v2 van ongeveer 23 MB. Daarna werkt vectorisatie zonder externe API's aan te roepen en zonder dat code naar het netwerk lekt.

Hoe het uit te proberen

De snelste manier om de server te deployen is door pip of uvx te gebruiken:

pip install jcodemunch-mcp
jcodemunch-mcp init

De init utility zal automatisch MCP-clients op je machine vinden (Claude Code, Cursor, Windsurf, VS Code), de configuratie schrijven en voorstellen om een instructie toe te voegen aan CLAUDE.md of de systeemprompts van de agent, zodat het model symbol-zoekopdrachten gaat gebruiken in plaats van het gebruikelijke bestanden scrollen.

Voorbeeld van handmatige verbinding met Claude Code via CLI:

claude mcp add -s user jcodemunch uvx jcodemunch-mcp

Als je kosten wilt bijhouden, toont de ingebouwde get_session_stats tool statistieken over tool-aanroepen, werkelijke tokenbesparingen per sessie en query-accuratesse.

Wie heeft dit echt nodig

De tool zal je leven waarschijnlijk niet veranderen als je kleine scripts of hobbyprojecten met een paar bestanden schrijft. Maar bij het werken met grote monorepos in TypeScript, Python, Go of Java levert jCodeMunch een merkbare impact op.

De agent blijft niet meer vastzitten in het doorscrollen van duizenden regels boilerplate, modelreacties komen sneller terug en de facturen voor neural network API-gebruik dalen merkbaar. De persoonlijke licentie is volledig gratis, dus je kunt de aanpak op je eigen codebase testen zonder extra kosten.

Gerelateerde projecten