AI-Coding-Kosten senken: jcodemunch-mcp Server reduziert Token-Aufwand beim Code-Audit um über 95 Prozent
von Denis Shokhirev, Enterprise AI Architect aus Freiburg im Breisgau. Ich betreibe DennisCraft AI Studio und liefere produktive KI-Systeme für B2B-Kunden im DACH-Raum – mit Stack aus Claude, Supabase, n8n, Doppler und selbstgehostetem Postgres. Ein wiederkehrendes Problem: Ein Kunde fordert einen KI-Codeaudit für ein 60.000-Zeilen-Python-Repository, erwartet aber volle DSGVO-Konformität und berechenbare Kosten. Ohne gezielte Vorverarbeitung explodieren die Token-Kosten bei LLM-gestützter Analys
von Denis Shokhirev, Enterprise AI Architect aus Freiburg im Breisgau. Ich betreibe DennisCraft AI Studio und liefere produktive KI-Systeme für B2B-Kunden im DACH-Raum – mit Stack aus Claude, Supabase, n8n, Doppler und selbstgehostetem Postgres. Ein wiederkehrendes Problem: Ein Kunde fordert einen KI-Codeaudit für ein 60.000-Zeilen-Python-Repository, erwartet aber volle DSGVO-Konformität und berechenbare Kosten. Ohne gezielte Vorverarbeitung explodieren die Token-Kosten bei LLM-gestützter Analyse.
Warum steigen die Kosten beim LLM-Codeaudit?
In produktiven Pipelines werden LLMs wie Claude Code oder GPT-4 bereits für statische Codeanalyse und Schwachstellensuche (z. B. SQL-Injection, fehlerhafte Authentifizierung) eingesetzt. Die Kosten sind erheblich: Laut Anthropic API (Juni 2024) kostet 1 Mio. Tokens $20–$40. Ein einziger Audit größerer Codebasen überschreitet rasch das geplante Budget.
Quellen des Token-Verbrauchs
Viele Teams schicken das komplette Repository direkt an das LLM. 80 % der Tokens werden so für Boilerplate, generierten und veralteten Code vergeudet. Entscheidend ist, vorab zu filtern, damit nur sicherheitsrelevanter Code analysiert wird – und keine DSGVO-relevanten Daten unnötig verarbeitet werden.
Funktionsweise von jcodemunch-mcp: Gezieltes Chunking und Filterung
jcodemunch-mcp ist ein schlanker Server, den ich zur Vorverarbeitung großer Repos einsetze. Das Ziel: Nur relevante Codeblöcke extrahieren, Duplikate entfernen, eine kompakte Abhängigkeitsstruktur erzeugen und den Code in überschaubare, kontextstarke Chunks aufteilen – optimal für das nächste LLM-Prompt.
Architektur und Stack
- Kern: Python 3.11, FastAPI
- Code-Parsing: tree-sitter, ast
- Semantische Filterung: semgrep, bandit, gitleaks
- Integration: n8n für Orchestrierung, Supabase für Storage, Claude Code via Anthropic SDK
Statt „Magie“ handelt es sich hier um bewährtes Preprocessing: Der Code wird auf relevante Bestandteile reduziert, bevor er ins LLM gelangt.
Zahlen aus dem Produktivbetrieb: Token-Einsparung im Vergleich
| Methode | Durchschnittlicher Input (Tokens) | Kosten bei 60k Zeilen | Preprocessing-Zeit | Audit-Qualität |
|---|---|---|---|---|
| Komplettes Repo ans LLM | 2.400.000 | 48–96 $ | 5 Min | Viele False Positives |
| Manuelles Chunking/Filterung | 400.000 | 8–16 $ | 2 Std | Besser, aber fehleranfällig |
| jcodemunch-mcp Preprocessing | 90.000 | 1,80–3,60 $ | 12 Min | Zielgenau, hohe Präzision |
Die Token-Ersparnis liegt stabil bei über 95 %. Gleichzeitig verbessert sich die Audit-Qualität, da nur wirklich sicherheitsrelevante Codebereiche ins LLM gelangen.
So läuft der Pipeline-Step im Alltag ab
Preprocessing starten
from fastapi import FastAPI, UploadFile
import subprocess
app = FastAPI()
@app.post("/analyze/")
async def analyze_repo(file: UploadFile):
repo_path = "/tmp/repo"
with open(repo_path + ".zip", "wb") as f:
f.write(await file.read())
subprocess.run(["unzip", repo_path + ".zip", "-d", repo_path])
# jcodemunch-mcp Preprocessing
subprocess.run(["python3", "jcodemunch_mcp.py", repo_path])
# ...Integration mit n8n und Claude folgt
return {"status": "ok"}
Filterung und Chunking
import semgrep
def filter_code(repo_path):
findings = semgrep.run("--config", "p/ci", repo_path)
relevant_files = [f for f in findings if "security" in f["check_id"]]
return relevant_files
Das Ergebnis: Ein JSON mit minimalen, hochrelevanten Chunks, bereit für die Analyse im LLM – konform zu DSGVO und BSI-Empfehlungen.
Typische Fehlerquellen und Lösungen
Filterregeln zu eng – kritischer Code fehlt
Wer Bandit oder semgrep mit Standardeinstellungen nutzt, riskiert, sicherheitsrelevante Abschnitte zu übersehen. Ich empfehle projektindividuelle Regelsets, abgestimmt auf die tatsächliche Codebasis.
Chunk-Grenzen beachten
Claude und GPT-4 liefern bessere Ergebnisse, wenn Chunks an Funktions- oder Klassengrenzen liegen. tree-sitter hilft, verlangt aber oft eine Nachbearbeitung der Chunks.
Integration in CI/CD-Workflows
Am stabilsten läuft die Einbindung über n8n als dedizierten Preprocessing-Step vor dem LLM-Aufruf. So bleiben Token-Verbrauch und Audit-Tiefe jederzeit transparent – wichtig für ISO 27001 und EU AI Act Reporting.
FAQ
Können nur Open-Source-Tools genutzt werden?
Ja. tree-sitter, semgrep, bandit und FastAPI sind quelloffen. Für die Anbindung an Claude oder GPT-4 ist lediglich ein API-Key nötig.
Unterstützt das System Multi-Language-Repos?
Ja – sofern die passenden Parser für die jeweiligen Sprachen im jcodemunch-mcp Server konfiguriert sind.
Wie groß sollte ein Chunk maximal sein?
Optimal sind 400–1200 Zeilen pro Chunk. So passen sie in aktuelle Kontextfenster und erhalten den semantischen Zusammenhang.
Kann das Preprocessing lokal laufen?
Ja. Der Server läuft in einem Docker-Container und ist lokal oder in der Private Cloud einsetzbar – ein Plus für DSGVO und BSI Grundschutz.
Genügt ein LLM-Audit allein?
Nein. Ich kombiniere LLM-Auswertungen immer mit statischer Analyse (semgrep, bandit) und manueller Prüfung. Siehe auch die Empfehlungen des BSI (2024) und der OWASP Top 10 für LLM-Anwendungen.
An welcher Stelle in Ihrer LLM-Pipeline entstehen die höchsten Kosten – Preprocessing, Chunking oder eigentlicher LLM-Call? Ich freue mich über Erfahrungsberichte aus der DACH-Praxis. Ich biete einen kostenfreien 30-minütigen Stack-Check für Teams, die KI in regulierten Märkten implementieren. Kontaktieren Sie mich auf LinkedIn oder via @ger_dennis_ai.
Turn your process into an AI system
Fixed price. Production quality. DACH B2B focus.