Kleine, samenstelbare browsertools presteren beter dan MCP op het gebied van token‑efficiëntie en ontwikkelaarscontrole.
Kleine, samenstelbare browsertools presteren beter dan MCP op het gebied van token‑efficiëntie en ontwikkelaarscontrole.
Inleiding
Het debat of ontwikkelaars volledige MCP (Model‑Centric Programming)‑servers nodig hebben voor alledaagse agent‑taken, heeft zich opgejaagd in AI‑, Twitter‑ en ontwikkelaarsgemeenschappen. De kernvraag is simpel: Kunnen lichte, samenstelbare tools die agents al begrijpen zware MCP‑manifests vervangen, terwijl ze tokens besparen en flexibiliteit behouden? Dit artikel onderzoekt een minimalistische toolkit gebaseerd op Bash en kleine Node‑scripts, vergelijkt deze met populaire MCP‑implementaties, en schetst praktische workflows voor solo‑ontwikkelaars en kleine teams.
Token‑efficiëntie: de werkelijke kost van MCP‑manifests
Hoe MCP tokens verbruikt
Populaire MCP‑servers zoals Playwright MCP en Chrome DevTools MCP leveren uitgebreide tool‑catalogi. Bijvoorbeeld:
- Playwright MCP – 21 tools, ~13.700 tokens (≈6,8 % van Claude’s context‑venster)
- Chrome DevTools MCP – 26 tools, ~18.000 tokens (≈9 % van het context‑venster)
Deze token‑aantallen worden gebruikt voordat er daadwerkelijk werk wordt verricht. Wanneer meerdere MCP‑servers worden gecombineerd, vermenigvuldigt de token‑overhead zich, en agents moeten lange tool‑beschrijvingen ontleden, wat leidt tot verwarring en verminderde samenstelbaarheid.
Het voordeel van een minimale toolkit
Een slank alternatief bestaat uit een beknopte README (≈225 tokens) plus een handvol Node‑scripts die Puppeteer Core benutten. Omdat agents al Bash en JavaScript begrijpen, kunnen ze deze scripts direct aanroepen zonder grote vaardigheidscatalogi. Het resultaat is een token‑voetafdruk die twee ordes van grootte kleiner is dan traditionele MCP‑manifests, in lijn met de klassieke Unix‑filosofie van kleine, samenstelbare tools.
Binnen de minimale browser‑toolkit
De toolkit bevat zes scripts, elk met een specifiek, goed gedefinieerd doel.
start.js
- Start Chrome met een nieuw of gekloond profiel.
- Beëindigt eventuele bestaande Chrome‑processen, maakt een tijdelijke user‑data‑map aan en start Chrome met remote debugging op poort 9222.
- Probeert herhaaldelijk verbinding te maken via
puppeteer.connecttot het lukt, en geeft vervolgens een succesbericht weer.
Deze deterministische opstart elimineert de noodzaak voor complexe RPC‑schema’s en biedt een eenvoudige, betrouwbare overeenkomst voor de agent.
nav.js
- Syntax:
nav.js <URL> [new] - Navigeert de actieve tab (of opent een nieuwe tab wanneer
newis opgegeven) en wacht op DOMContentLoaded. - Retourneert een nette statusmelding zoals “opened” of “navigated”.
Het script weerspiegelt de natuurlijke manier waarop agents over paginabewegingen denken: “ga naar deze pagina” zonder een overvloed aan klik‑, hover‑ of scroll‑varianten.
evil.js
- Voert willekeurige JavaScript uit in de paginacontext.
- Gebruik:
evil.js "document.querySelectorAll('a').length" - Bouwt een async‑functie, evalueert de code, en print resultaten als sleutel‑waarde‑paren (voor objecten/arrays) of als een scalare waarde.
Door agents native DOM‑code te laten schrijven, verwijdert evil.js de token‑overhead van het beschrijven van elke mogelijke interactie en maakt het directe data‑extractie mogelijk zonder grote resultaten via de prompt te streamen.
screenshot.js
- Maakt een screenshot van het viewport van de actieve pagina.
- Slaat de afbeelding op in de tijdelijke map van het OS met een tijdstempel‑bestandsnaam en geeft het pad weer.
- De agent kan vervolgens de afbeelding lezen en vision‑modellen toepassen indien nodig.
Afbeeldingen opslaan als bestanden in plaats van ze in de prompt in te sluiten, reduceert het token‑gebruik drastisch.
pick.js
- Biedt een interactieve visuele selector.
- Toont een banner en een highlight‑rechthoek die de cursor volgt; klikken selecteert een element,
Ctrl/Cmd+Clickactiveert multi‑select,Enterbevestigt, enEscannuleert. - Retourneert gestructureerde informatie voor elk geselecteerd element, inclusief tag, ID, class, ingekorte tekst, CSS‑selector‑keten en een fragment van de outer HTML.
Deze tool overbrugt menselijke intentie en code, waardoor agents betrouwbare selectors kunnen genereren voor scrapers of automatiseringsscripts.
Ondersteunende hulpscripts
Aanvullende utilities (bijv. een cookies‑helper) maken de toolkit compleet en behandelen veelvoorkomende browser‑taken zonder het token‑budget uit te breiden.
Een naadloze workflow opzetten
- Maak een dedicated map (bijv.
~/agent-tools). - Clone elke tool‑repository in deze map.
- Voeg de map toe aan je PATH via een shell‑alias of omgevingsvariabele zodat de agent de scripts direct kan aanroepen.
- Verwijs naar de README in de context van de agent alleen wanneer nodig, zodat de prompt slank blijft.
- Stel de tools‑map in als werkdirectory voor Claude of andere LLM‑interfaces, zodat tool‑definities on‑demand kunnen worden opgenomen.
Door deze stappen te volgen, werken agents met een minimale set commando’s, vermijden ze constante map‑wisselingen, en hebben ze geen enorme skill‑manifests meer nodig.
Wanneer MCP nog zinvol is
Enterprise‑omgevingen beperken vaak directe API‑ of bestandsysteem‑toegang. In zulke gevallen kan een MCP‑server fungeren als een guard‑rail‑geforceerde broker, die biedt:
- Rollen‑gebaseerde permissies
- Auditeerbare data‑opvraging
- Beheerde blootstelling van interne services
Echter, zelfs in deze scenario’s moeten ontwikkelaars de token‑voetafdruk van de tool‑beschrijvingen van de MCP‑server in de gaten houden. Een manifest van 13–18 k tokens verbruikt nog steeds een merkbaar deel van het context‑venster, dus het beknopt houden van beschrijvingen en het outsourcen van grote outputs naar bestanden blijft de beste praktijk.
Conclusie
De minimalistische toolkit toont aan dat kleine, samenstelbare scripts dezelfde – of zelfs grotere – functionaliteit kunnen leveren als zware MCP‑servers, terwijl ze het token‑verbruik drastisch verminderen en de ontwikkelaarscontrole vergroten. Voor solo‑ontwikkelaars en kleine teams is de aanbevolen aanpak:
- Gebruik
start.js,nav.js,evil.js,screenshot.js,pick.jsen de ondersteunende helpers. - Houd tool‑definities in een compacte README en roep ze aan via Bash.
- Reserveer MCP‑servers voor omgevingen die strikte governance of beperkte API‑exposure vereisen.
Door de Unix‑stijl filosofie “do one thing well” te omarmen, blijven agents snel, goedkoop en flexibel – precies de eigenschappen die nodig zijn voor moderne AI‑ondersteunde ontwikkeling.