// erkundung · mcp-approval · läuft

Kann ein Mensch im Loop bleiben, ohne den Agenten auszubremsen?

Der Build, den ich am weitesten gebracht habe: ein MCP-Server auf Cloudflare Workers, der Schreib- und Löschaktionen eines Agenten hinter eine menschliche Freigabe stellt — signiert mit einem Passkey auf einem zweiten Gerät. Er läuft; diese Seite hält fest, was ich auf dem Weg dahin gelernt habe.

Das Problem

KI-Agenten handeln zunehmend auf echten Systemen — sie versenden Mails, löschen Records, ändern Zustand. Eine Policy-Regel kann „erlaubt" oder „blockiert" sagen, aber nicht „genau diese Aktion, jetzt, ist in Ordnung". Für irreversible Aktionen reicht das nicht.

Die naheliegende Antwort — und warum sie zu kurz greift

Auto-Policy-Gateways geben nach Kategorie frei. Sie holen nie einen Menschen für die konkrete Payload in den Loop. Man gewinnt Geschwindigkeit, verliert aber genau das, worauf es bei riskanten Aktionen ankommt: eine bewusste menschliche Entscheidung über den echten Inhalt.

Der Ansatz — WYSIWYS

What You See Is What You Sign. Der Agent fordert eine Aktion an; die genaue Anfrage erscheint auf deinem Handy oder Laptop; du gibst sie mit einem WebAuthn-Passkey frei. Was der Bildschirm zeigt, ist das, was ausgeführt wird — nichts anderes. Keine Freigabe, keine Aktion (fail-closed).

send_email → signed · passkey ✓

Entscheidungen & Abwägungen

  • Single-User by Design. Bewusst nicht multi-tenant — kleinere Angriffsfläche und ein klarer Umbaupunkt, falls es je skalieren muss.
  • Zwei Authenticators, kein Recovery-Code. Ein Passkey wird auf zwei Geräten registriert; es gibt kein Fallback-Secret, das man phishen könnte. Sicherheit bewusst vor Bequemlichkeit.
  • Service-Binding statt öffentlicher Fläche. Der Knowledge Core wird worker-zu-worker erreicht, nie dem öffentlichen Internet ausgesetzt. Defense in Depth.

Gebaut mit

Cloudflare Workers · D1 · R2 · MCP (Model Context Protocol) · WebAuthn / passkeys · OAuth 2.1 + PKCE · Terraform (IaC) · TypeScript

Interne Audit-Details und Secrets werden hier bewusst nicht veröffentlicht.

So wird es genutzt

Freigaben erscheinen in einer kleinen Web-UI auf deinem zweiten Gerät: der genaue Tool-Call, in Klartext, mit Freigeben/Ablehnen und einer Passkey-Abfrage. Was der Bildschirm zeigt, ist das, was ausgeführt wird — die Human-in-the-Loop-Fläche für jedes Tool im Hub.

Status & Fahrplan

Wo es steht: läuft. Live auf Cloudflare Workers — MCP-Server, per Passkey signierte Freigaben, fail-closed und Infrastruktur als Code.

Als Nächstes: eine live, nur lesende Sandbox-Demo direkt auf dieser Seite — same-origin, rate-limited, ohne Login — damit du den Signier-Flow selbst auslösen kannst.