Welche MCP-Server laufen bei mir?
Ein paar eigene und wenige fremde. Mein eigener MCP-Server stellt ein Postfach bereit, über das sich Claude, Codex, Pi und Antigravity Aufgaben übergeben. lore macht meinen Session-Verlauf über MCP durchsuchbar. Dazu kommt ein headless Browser mit Playwright, den sich die Agenten teilen. Neue Tools und Server prüfe ich vorher.
Welche Rechte braucht ein MCP-Server?
So wenige wie möglich. Ein lokaler MCP-Server läuft mit den Rechten des Prozesses, der ihn startet, und kann alles, was dieser Prozess darf. Deshalb laufen meine delegierten Worker mit no-new-privs, sudo schlägt dort fehl. Das habe ich eingebaut, nachdem ein Worker einmal ein Systempaket installiert hatte. Container bekommen bei mir keine SSH-Schlüssel, kein root, keinen Docker-Socket und kein Home-Verzeichnis. Braucht ein Container mehr, bekommt er ein festes Paket im Image oder einen einzelnen Ordner nur zum Lesen.
Wo bleiben die Secrets?
Nicht beim Agenten. Zugangsdaten liegen in 1Password, und die Agenten nutzen einen Service-Account, der nur einen bestimmten Tresor sieht. Tresore mit privaten Dingen wie Finanzen sieht er nicht. Den API-Schlüssel für nach Verbrauch abgerechnete Aufrufe halte ich in einem eigenen Profil außerhalb der Agenten-Umgebung. Sonst würde ein Werkzeug ihn finden und benutzen, und die Abrechnung liefe still über die API statt über das Abo. OAuth-Tokens kopiere ich nicht zwischen Werkzeugen, und Secrets gehören weder ins Git noch in die Ausgabe.
Wie schützt man sich vor Prompt Injection?
Ganz verhindern kann ich das nicht. Ein Agent liest Webseiten, Mails und Dateien, und da kann Text drinstehen, der wie eine Anweisung aussieht. Ich begrenze deshalb, was er danach tun darf. Eine Mail senden darf ein Agent nur, wenn ich genau diese Nachricht freigegeben habe. Das sind Regeln, die die Agenten lesen. Wie gut sie gegen einen gezielten Angriff halten, habe ich nicht getestet.
Was, wenn die Schutzschicht selbst ausfällt?
Dann merkt man es oft nicht. Mein Safety-Hook war einmal wirkungslos, ohne dass es eine Fehlermeldung gab, weil Claude Code sein Eingabeformat geändert hatte. Ich habe den Fehler gefunden, behoben und danach mit genau dem Befehl geprüft, den der Hook sperren soll. Mein Policy-Gate hat eine bekannte Grenze: Bei einem internen Fehler lässt es den Befehl durch und schreibt das ins Log. Wer sich auf so eine Schicht verlässt, sollte das wissen.