Von 18.000 Tokens auf 300: Wie wir einen leichtgewichtigen Browser-Skill entwickelt haben, der MCP übertrifft
Claude & Jozo · 8 min read · 2026/01/22
Agent SkillsBrowser-AutomatisierungMCPClaude CodeEntwicklerwerkzeuge

Von 18.000 Tokens auf 300: Wie wir einen leichtgewichtigen Browser-Skill entwickelt haben

Dezember 2025. Die Agent-Laufzeitumgebung von TeamDay benötigte Browser-Automatisierung.

Die naheliegende Wahl: MCP-Server. Playwright MCP (~13.700 Tokens), Chrome DevTools MCP (~18.000 Tokens). Beide kampferprobt, gut dokumentiert, weit verbreitet.

Dann lasen wir Mario Zechners Artikel. Und wir bauten etwas anderes.


Die Token-Steuer, über die niemand spricht

Wenn Sie einen MCP-Server mit Claude verbinden, wird jede Tool-Beschreibung sofort in den Kontext geladen. Chrome DevTools MCP verbraucht allein für seine 26 Tool-Definitionen 18.000 Tokens — das sind 9 % von Claudes Kontextfenster, bevor Sie auch nur irgendetwas getan haben.

Playwright MCP ist mit 13.700 Tokens (21 Tools) etwas besser, belegt aber immer noch 6,8 % Ihres Budgets.

Das Problem potenziert sich:

  • Jeder weitere MCP-Server fügt Tausende Token hinzu
  • Tool-Beschreibungen bleiben geladen, egal ob Sie sie verwenden oder nicht
  • Komplexe Tools brauchen ausführliche Dokumentation und sind daher teuer
  • Der Agent verwirrt sich, wenn er aus zu vielen Tools wählen muss

Die Mathematik ist brutal. Verbinden Sie 3–4 MCP-Server, verbrennen Sie 30–40.000 Tokens für Tool-Definitionen. Das ist Kontext, den Sie nicht für die eigentliche Arbeit nutzen können.

Was, wenn Sie MCP gar nicht brauchen?

Mario Zechner stellte diese Frage und lieferte eine Antwort: einfache Bash-Skripte mit Puppeteer Core, in ~225 Tokens dokumentiert.

Seine Erkenntnis: Moderne LLMs können bereits programmieren. Anstatt 26 spezialisierter Tools geben Sie ihnen ein paar Primitive und lassen sie Lösungen zusammensetzen.

Die wesentlichen Vorteile:

  • Token-Effizienz: ~300 Tokens vs. ~18.000 Tokens
  • Echte Kompositionsfähigkeit: Ausgabe in Dateien, Weiterleitung an andere Tools
  • Leicht erweiterbar: Neue Fähigkeiten in Minuten hinzufügen
  • Profil-Unterstützung: Verbindung zum laufenden Browser mit Ihren Anmeldedaten
  • Progressive Disclosure: Skills werden nur bei Bedarf geladen

Wir haben diesen Ansatz übernommen und /browser entwickelt — einen leichtgewichtigen Skill für Claude Code.

Was wir gebaut haben: 7 Skripte, unbegrenzte Möglichkeiten

Die Kern-Primitive

# Browser einmalig starten (mit Ihrem Chrome-Profil für authentifizierte Sessions)
bun browser-start.ts --profile

# Zu beliebiger Adresse navigieren
bun browser-navigate.ts https://example.com

# JavaScript im Seitenkontext ausführen
bun browser-eval.ts 'document.title'

# Schnelle Screenshots in Datei
bun browser-screenshot.ts page.webp

# Interaktive Element-Auswahl (Nutzer klickt, Agent erhält Selektoren)
bun browser-pick.ts --multi

# HTTP-only Cookies extrahieren
bun browser-cookies.ts --domain=example.com

# Sauberes Herunterfahren
bun browser-stop.ts

Das war’s. Sieben einfache Skripte. Jedes tut genau eine Sache gut. Der Agent setzt sie für komplexe Workflows zusammen.

Warum das funktioniert

Verbindung zu laufendem Browser statt neue Instanzen zu starten:

  • Sofortiger Start (kein Browser-Launch-Overhead)
  • Authentifizierung erhalten (Google, GitHub, LinkedIn usw.)
  • Nutzer kann interagieren (Elemente anklicken, manuell einloggen)
  • Schnelle Iteration (kein Cleanup zwischen Befehlen)

Progressive Disclosure:

  • Skill-Metadaten: ~50 Tokens (“Sie haben einen Browser-Skill”)
  • Skill-Dokumentation: ~300 Tokens (bei Bedarf geladen)
  • Gesamter Overhead: 60× weniger als Chrome DevTools MCP

Echte Kompositionsfähigkeit:

# Daten in Datei extrahieren
bun browser-eval.ts 'data' > output.json

# Screenshot erstellen und verarbeiten
bun browser-screenshot.ts page.webp && magick page.webp page.jpg

# Navigation und Extraktion verketten
bun browser-navigate.ts https://site.com && bun browser-eval.ts 'scrape()'

Der Praxistest: 548 slowakische Fachleute

Die NGO Leaf benötigte slowakische Senior-Fachleute aus dem Ausland für eine Mentoring-Initiative. Die Daten befanden sich in Clay.com, hinter einer Authentifizierungsschranke und API-Limits.

Die Herausforderung:

  • Muss bei Clay.com authentifiziert sein
  • API undokumentiert (Reverse Engineering aus dem Netzwerkverkehr)
  • Vorschau auf 100 Ergebnisse pro Anfrage beschränkt
  • Segmentierung nach Land nötig, um Limits zu umgehen
  • Extraktion von 500+ Profilen mit LinkedIn-URLs, Titeln, Unternehmen, Standorten

Traditioneller Ansatz: Vollständigen Scraper bauen, Sessions verwalten, Paginierung handhaben, Daten exportieren. Stunden Arbeit.

Mit dem /browser-Skill: 45 Minuten vom Start bis zu 548 exportierten Fachleuten.

So funktionierte es

1. Browser mit Profil starten (behält Clay-Login):

bun browser-start.ts --profile
bun browser-navigate.ts https://app.clay.com

2. API durch Inspektion des Netzwerkverkehrs entdecken:

bun browser-eval.ts 'performance.getEntriesByType("resource").map(r => r.name)'

Gefunden: https://api.clay.com/v3/actions/run-enrichment

3. Authentifizierungs-Cookies extrahieren:

bun browser-cookies.ts --domain=clay.com

4. Ländersegmentiertes Extraktionsskript erstellen:

Der Agent schrieb ein spezialisiertes Skript (clay-slovak-experts.ts), das:

  • Die authentifizierte Session des Browsers nutzt
  • Slowakischsprechende außerhalb der Slowakei sucht
  • Nach Senioritätsstufen filtert (Senior, Director, VP, C-Level)
  • Nach Ländern segmentiert, um das 100-Ergebnisse-Limit zu umgehen
  • Aus 11 Ländern extrahiert: USA, UK, Deutschland, Österreich, Tschechien, Niederlande, Schweiz, Irland, Kanada, Australien, Frankreich
  • Paginierung und Rate-Limiting behandelt
  • Nach LinkedIn-URL dedupliziert

5. Extraktion ausführen:

bun clay-slovak-experts.ts --count=500 --seniority=senior,director,vp

Ausgabe:

🇸🇰 Slovak Experts Extractor for Leaf NGO
=========================================
Target: 500 senior Slovak professionals working abroad
Seniority levels: senior, director, vp

🔐 Getting authentication cookies...
📊 Checking total available records...
   Found 1,247 Slovak experts abroad with selected seniority

📥 Extracting 500 records in 5 batches...
   Batch 1/5 (offset 0)... ✅ Got 100 records
   ⏳ Waiting 3s before next batch...
   Batch 2/5 (offset 100)... ✅ Got 100 records
   ...
   Batch 5/5 (offset 400)... ✅ Got 100 records

✅ Extracted 500 Slovak experts
   After deduplication: 548 unique profiles
💾 Saved to: slovak-experts.json
📄 CSV saved to: slovak-experts.csv

📈 Summary:
   Top locations:
   - United States: 198
   - United Kingdom: 142
   - Germany: 87
   - Netherlands: 34
   - Switzerland: 28
   - Austria: 21
   - Czech Republic: 18
   - Canada: 11
   - Ireland: 5
   - Australia: 3
   - France: 1

Gesamtzeit: 45 Minuten (einschließlich API-Erkundung, Skript-Erstellung, Extraktion).

Die Stärke: Der Agent nutzte Browser-Automatisierung als kombinierbares Primitiv. Navigation, Inspektion, Authentifizierung, Extraktion — jeder Schritt sauber und einfach.

Warum das wichtig ist

Token-Effizienz, die sich aufaddiert

AnsatzToken-Overhead% des Kontexts
Chrome DevTools MCP~18.000 Tokens9,0 %
Playwright MCP~13.700 Tokens6,8 %
Browser Skill~300 Tokens0,15 %

Einsparung: 60× weniger Kontextverbrauch.

Das sind 17.700 Tokens, die Sie für tatsächliche Arbeit nutzen können — Dokumente, Code, Reasoning.

Schnelligkeit durch Einfachheit

MCP-Ansatz:

  • Neuen Browser für jede Session starten
  • Auf Initialisierung warten
  • Tool über MCP-Protokoll ausführen
  • Strukturierte Antworten parsen

Skill-Ansatz:

  • Verbindung zu laufendem Browser (sofort)
  • Skript direkt ausführen (kein Protokoll-Overhead)
  • Ausgabe in Dateien (kombinierbar mit Standardwerkzeugen)
  • Browser zwischen Befehlen aktiv halten

Realer Unterschied: 548 Fachleute in 45 Minuten extrahieren vs. stundenlange eigene Integration.

Erweiterbarkeit als Designprinzip

Brauchen Sie eine neue Fähigkeit? Schreiben Sie ein 50-Zeilen-Skript.

Beispiel: Interaktive Element-Auswahl (in 15 Minuten gebaut):

// browser-pick.ts
// Nutzer klickt auf Elemente im Browser, Agent erhält Selektoren

import puppeteer from 'puppeteer-core';

async function pick() {
    const browser = await puppeteer.connect({...});
    const page = await browser.pages()[0];

    // Click-Listener einfügen
    await page.evaluate(() => {
        document.addEventListener('click', (e) => {
            const el = e.target;
            // Selektor, Text, Attribute usw. zurückgeben
            console.log({
                tag: el.tagName,
                selector: getSelector(el),
                text: el.textContent,
                ...
            });
        });
    });
}

Versuchen Sie das als MCP-Tool zu bauen. Dann versuchen Sie, es für Ihren spezifischen Anwendungsfall anzupassen.

Profil-Unterstützung verändert alles

Mit Ihrem Chrome-Profil:

  • Bereits bei Google, GitHub, LinkedIn, Clay usw. eingeloggt
  • Keine Verwaltung von Anmeldedaten
  • Keine OAuth-Flows
  • Keine Session-Verwaltung
  • Einfach navigieren und arbeiten

Für die Clay-Extraktion: Wir haben keinen Authentifizierungscode geschrieben. Der Browser hatte bereits die Session. Der Agent hat sie einfach genutzt.

Die Architektur: Skills > Tools

Anthropic hat das in seinem Agent-Skills-Vortrag erklärt:

„Code ist nicht nur ein Anwendungsfall, sondern die universelle Schnittstelle zur digitalen Welt.”

Skills sind organisierte Verzeichnisse mit prozeduralem Wissen. Progressive Disclosure ermöglicht es, einem Agenten Hunderte von Skills zu geben, ohne den Kontext zu überlasten.

MCP bietet Konnektivität. Skills bieten Expertise.

Der Browser-Skill demonstriert das:

  • Metadaten: „Sie haben Browser-Automatisierungs-Fähigkeit”
  • Dokumentation: 6.131 Zeichen (~300 Tokens bei Laden)
  • Skripte: Werden nur bei Bedarf ausgeführt, nicht in Kontext geladen
  • Kombinierbar: Gibt Dateien aus, funktioniert mit anderen Skills

Wann MCP vs. Skills einsetzen

MCP-Server verwenden, wenn:

  • Sie Echtzeit-Daten-Streaming benötigen (Datenbanken, APIs)
  • Ein externer Dienst eine offizielle MCP-Integration bietet
  • Tool-Zustand zwischen Anfragen erhalten bleiben muss
  • Mehrere Agenten gemeinsamen Zugriff benötigen

Skills verwenden, wenn:

  • Sie minimalen Token-Overhead wollen
  • Kombinierbarkeit mit Bash/Dateien wichtig ist
  • Sie das Verhalten häufig anpassen müssen
  • Iterationsgeschwindigkeit > standardisiertes Protokoll

Beides verwenden: MCP für Konnektivität (Datenbanken, Slack, Notion). Skills für Expertise (Browser-Automatisierung, Datenverarbeitung, Workflows).

Selbst ausprobieren

Der Browser-Skill ist in TeamDay verfügbar. Bitten Sie einen Agenten:

"Navigiere zu example.com und extrahiere alle Artikel-Überschriften"
"Screenshot unserer Homepage in hellem und dunklem Modus erstellen"
"Finde den Selektor für die Suchtaste auf dieser Seite"
"Extrahiere die 50 besten Beiträge von Hacker News mit Score > 100"

Der Agent nutzt automatisch den Browser-Skill — verbinden, navigieren, extrahieren, Ergebnisse ausgeben.

Token-Overhead: ~300 Tokens bei Laden. 60× weniger als Chrome DevTools MCP.


Die zentrale Erkenntnis

Moderne LLMs sind gut genug im Programmieren, dass einfache Skripte + Dokumentation komplexes Tooling übertrifft.

Sie brauchen keine 26 spezialisierten Browser-Tools. Sie brauchen 7 Primitive und einen Agenten, der weiß, wie er sie kombiniert.

Das Ergebnis: Weniger Kontext-Overhead. Schnellere Ausführung. Einfachere Anpassung. Echte Arbeit in Minuten statt Stunden.

548 slowakische Fachleute für Leaf NGO. Extrahiert in 45 Minuten mit 300 Tokens Overhead.

Das ist die Stärke leichtgewichtiger Skills.


Basierend auf Mario Zechners Erkenntnis. Entwickelt für TeamDay-Agenten. Im Produktiveinsatz für echte NGO-Arbeit genutzt.