Kennst du den Moment, in dem du an etwas arbeitest oder auf andere Weise mit einem LLM-Agenten interagierst, und plötzlich erscheint die Meldung „Du hast dein Nutzungslimit erreicht“? Jetzt musst du auf einen Reset warten, oder du kannst vielleicht das Modell wechseln, aber es ist einfach nicht so gut wie das, welches das Limit erreicht hat. Keine Sorge — irgendwo unter dieser Meldung findest du die Option, eine Kreditkarte zu hinterlegen und zu sehen, wie viele Tokens es kostet, weiter zu interagieren.
In einer Welt, in der der Klimawandel weiterhin seine Auswirkungen zeigt — Waldbrände rund um den Globus, niedrige Wasserstände und schmelzende Gletscher —, könnte Tokens sparen bedeuten, ein Stück des Planeten zu retten. Wenn Nutzerinnen und Nutzer ihre Tokens effizient einsetzen, lässt sich der Strom reduzieren, der für den Betrieb von KI-Modellen nötig ist, und mit ihm alle Ressourcen, die darin stecken. Wir können an einen Punkt kommen, an dem dein PC zu Hause ein LLM-Modell ausführen kann und es alles erledigt, was du für die Arbeit brauchst.
Du kannst dir Tokens als die Währung von KI-Modellen vorstellen, aber damit ist es nicht getan. Tokens werden von jedem Modell anders berechnet, und sowohl die Größe der Eingabe als auch die der Ausgabe zählt. Als grobe Faustregel gilt: 1 Token entspricht ungefähr 4 Zeichen. Wenn ich zum Beispiel „My coffee machine does not turn on“ eingebe, hat dieser Satz 34 Zeichen, inklusive 6 Leerzeichen. Die meisten Modelle entfernen Leerzeichen, um Tokens zu sparen; ziehen wir sie also ab, bleiben 28 Zeichen, was 28 / 4 = 7 Tokens ergibt. Nehmen wir an, dein Modell kostet ähnlich viel wie Claude Fable 5 — 10 € pro 1 Mio. Eingabe-Tokens und 50 € pro 1 Mio. Ausgabe-Tokens. Allein für die Eingabe würdest du 0,00007 € zahlen, und je nachdem, wie lang die Ausgabe ist — sagen wir 300 Zeichen —, kämen etwa 0,00375 € für die Ausgabe dazu. Insgesamt zahlst du also fast 0,004 € für diese eine Frage.
Hier die vereinfachte Rechnung:
Satz: „My coffee machine does not turn on“ → 34 Zeichen (inklusive 6 Leerzeichen) → ohne Leerzeichen: 34 − 6 = 28 Zeichen
Eingabe-Tokens: 28 Zeichen ÷ 4 = 7 Tokens
Eingabekosten (10 € / 1 Mio. Tokens): 7 × (10 € ÷ 1.000.000) = 0,00007 €
Ausgabe: 300 Zeichen 300 ÷ 4 = 75 Tokens
Ausgabekosten (50 € / 1 Mio. Tokens): 75 × (50 € ÷ 1.000.000) = 0,00375 €
Gesamt: 0,00007 € + 0,00375 € = 0,00382 €
Eines können wir bei der Nutzung von LLMs wie ChatGPT oder Claude nicht steuern: wie lang die Antwort ausfällt oder wie viel Geld wir vorab für die Interaktion ausgeben wollen. Richtig chaotisch wird es, wenn man anfängt, LLMs zum Programmieren einzusetzen, denn wenn man dem LLM die Erlaubnis gibt, führt es Terminal-Befehle aus, strukturiert Dateien, schreibt Code, zieht Informationen aus MCP-Servern oder Skills und so weiter. Auf diese Weise verliert man sehr leicht die Kontrolle.
Ich habe mich gefragt, wie ich beim Entwickeln — oder generell bei der Arbeit mit KI — Tokens sparen kann. Mein Ziel war eine minimale bis mittlere Eingabe und eine minimale Ausgabe. Um das zu testen, habe ich Claude Code verwendet und versucht, dasselbe Projekt auf drei Arten aufzusetzen: ohne Framework und ohne MCP-Server, mit Framework, aber ohne MCP, und mit Framework und MCP-Server zusammen.
Hier sind die Ergebnisse:
Tabelle 1
| Vanilla Node (T1) | Next.js, ohne MCP (T2) | Next.js + MCP (T3) | |
|---|---|---|---|
| Eingabe-Tokens | 50 | 51 | 14.800 (geschätzt) |
| Ausgabe-Tokens | ~27.000 | 44.065 | 5.700 (geschätzt) |
| Gesamt-Tokens | ~27.050 | 44.116 | ~20.500 (geschätzt) / ~30.200 (gemessen) |
| Kosten | 0,675 $ | 1,102 $ | 0,217 $ |
Das Ergebnis: Der Ansatz mit Framework + MCP-Server verbrauchte deutlich weniger Tokens — genauer gesagt war er fast 3,5-mal günstiger und brauchte halb so viele Tokens.
Der Framework-+-MCP-Ansatz war mit etwas manueller Arbeit verbunden. Ich musste den MCP-Server selbst installieren und die Ersteinrichtung übernehmen. Trotzdem sind die Vorteile auch mit dieser Handarbeit klar: Du verbrauchst weniger Tokens, wahrscheinlich weniger Strom, und du sparst Geld. Vielleicht bedeutet es auch, dass dein Umgang mit LLMs und dein Wissen darüber besser sind als bei Nutzern, die einfach große Mengen an Tokens verbrauchen.
Ich ermutige euch alle, Frameworks und MCP-Server einzusetzen und andere KI-Protokolle wie A2A, ACP, ANP und UCP auszuprobieren, denn sie liefern eurem LLM den relevantesten und schnellsten Kontext. Wahrscheinlich werden auch eure Ergebnisse besser — ich habe das nicht mit harten Belegen getestet, aber soweit ich sehen kann, wirken Struktur und Fundament des Projekts solide.
Achte auf deinen Token-Verbrauch und halte den Planeten sicher.
Unten findest du die restlichen Tabellen und die Prompts, die für dieses kleine Experiment verwendet wurden.
Claude Code v2.1.233, Modell: Opus 5 (Standard)
Prompt: „Erstelle ein Projekt, das einen API-Aufruf an meinen Endpunkt macht und Titel, Inhalt und Autor der Antwort anzeigt. Hier ist die Endpunkt-URL: http://URL:8081/endpoint. Liste außerdem auf, wie viele Tokens du für die Aufgabe verbraucht hast, in jedem Schritt.“
Tabelle 2
| # | Schritt | ~Tokens in diesem Schritt | ~Kumuliert |
|---|---|---|---|
| 1 | curl an den Endpunkt (große JSON-Antwort) | ~9.500 | ~9.500 |
| 2 | node/npm prüfen, Zielverzeichnis | ~1.600 | ~11.100 |
| 3 | package.json schreiben | ~1.000 | ~12.100 |
| 4 | api.js schreiben | ~1.300 | ~13.400 |
| 5 | server.js schreiben | ~1.400 | ~14.800 |
| 6 | public/index.html schreiben | ~2.400 | ~17.200 |
| 7 | cli.js schreiben | ~1.000 | ~18.200 |
| 8 | CLI ausführen (gibt den ganzen Artikel aus) | ~1.900 | ~20.100 |
| 9 | Servertest — EADDRINUSE auf Port 3000 | ~1.900 | ~22.000 |
| 10 | Servertest erneut auf 4300 | ~1.600 | ~23.600 |
| 11 | Standard-Port anpassen | ~800 | ~24.400 |
| 12 | README.md schreiben | ~1.200 | ~25.600 |
| 13 | Zusammenfassung | ~1.300 | ~26.900 |
Prompt: „Erstelle mit Next.js ein Projekt, das einen API-Aufruf an meinen Endpunkt macht und Titel, Inhalt und Autor der Antwort anzeigt. Hier ist die Endpunkt-URL: http://URL:8081/endpoint. Liste außerdem auf, wie viele Tokens du für die Aufgabe verbraucht hast, in jedem Schritt.“
Tabelle 3
| # | Schritt | Tokens |
|---|---|---|
| 1 | Verzeichnis auflisten, node prüfen, Endpunkt testen | 24.411 |
| 2 | create-next-app-Gerüst | 1.951 |
| 3 | Erzeugte Dateien inspizieren | 396 |
| 4 | .env.local + drafts.ts schreiben | 1.251 |
| 5 | page.tsx schreiben | 972 |
| 6 | layout.tsx lesen (brachte AGENTS.md zum Vorschein) | 164 |
| 7 | Mitgelieferte Next-Docs auflisten | 904 |
| 8 | Docs-Index + App-Baum lesen | 163 |
| 9 | Fehlgeschlagenes cd (veralteter Shell-Pfad) | 1.960 |
| 10 | Leitfaden zum Daten-Fetching lesen | 204 |
| 11 | Nach force-dynamic greppen | 2.309 |
| 12 | Caching-Leitfaden lesen | 397 |
| 13 | 3 Änderungen (no-store/force-dynamic entfernen, Metadaten) | 2.156 |
| 14 | Build #1 — deckte den Static-Prerender-Bug auf | 507 |
| 15 | Alten Caching-Leitfaden greppen | 770 |
| 16 | Abschnitt zur Segment-Konfiguration lesen | 302 |
| 17 | 2 Änderungen, die force-dynamic wiederherstellen | 2.386 |
| 18 | Build #2 — bestätigt dynamisch | 337 |
| 19 | Dev-Server starten, HTML abrufen | 846 |
| 20 | Port-Konflikt diagnostizieren | 206 |
| 21 | Gerendertes Ergebnis auf :3001 prüfen | 751 |
| 22 | Author-Markup inspizieren | 451 |
| 23 | PID des Dev-Servers ermitteln | 1.271 |
| Gesamt | ~44.065 |
Tabelle 4
| # | Schritt | Eingabe (geschätzt) | Ausgabe (geschätzt) | Zähler-Differenz (gemessen) |
|---|---|---|---|---|
| 1 | Projektstruktur inspizieren + Docs finden | 400 | 130 | 468 |
| 2 | Docs-Index + 01-app-Baum lesen | 950 | 110 | 924 |
| 3 | Docs-Verzeichnisse auflisten | 450 | 120 | 1.791 |
| 4 | fetching-data.md + route-handlers.md lesen | 7.200 | 90 | 1.190 |
| 5 | App-Dateien, Konfigurationen + caching.md lesen | 3.000 | 120 | 11.043 |
| 6 | fetch.md lesen + nach Deprecations greppen | 2.020 | 110 | 4.770 |
| 7 | lib/drafts.ts + route.ts schreiben | 80 | 600 | 4.197 |
| 8 | app/page.tsx schreiben | 40 | 1.650 | 2.496 |
| 9 | tsc --noEmit | 30 | 70 | 257 |
| 10 | Dev-Server starten | 150 | 110 | 324 |
| 11 | /api/drafts und / testen | 250 | 330 | 765 |
| 12 | Inhalt prüfen + Lint | 200 | 230 | 821 |
| 13 | Vorherige Zusammenfassung | — | 1.150 | ~1.200 |
| 14 | Diese Nachricht | — | 900 | — |
| Gesamt | ~14.800 | ~5.700 | ~30.200 |