Midplane
OfficialMidplane
Standardmäßig sichere SQL-Schutzmechanismen für KI-Agenten. Midplane sitzt im Abfragepfad zwischen einem KI-Agenten (Claude, Cursor, einem beliebigen MCP-Client) und Ihrer Postgres-Datenbank. Es parst jede Anweisung mit einem echten SQL-AST – nicht mit einer Regex-Blocklist –, erzwingt eine deklarative Zugriffsrichtlinie pro Tabelle, blockiert destruktives DML/DDL und schreibt ein ereignisbasiertes Audit-Log darüber, welcher Agent was ausgeführt hat, bevor die Abfrage ausgeführt wird.
📖 Die vollständige Dokumentation befindet sich unter midplane.ai/docs – Agenteneinrichtung, die Richtlinienreferenz, Self-Hosting, Bereitstellung und das Bedrohungsmodell. Dieses README ist nur die Orientierung.
Warum es das gibt
KI-Codierungsagenten werden ohne Audit-Trail oder Sicherheitsebene an Produktions-Postgres-Datenbanken angeschlossen. Die veraltete Anthropic-Referenz-Postgres-MCP enthielt einen Stacked-Statement-Injection-Vektor (Datadog Security Labs, 2025); die übliche Service-Rolle-Konfiguration gibt einem Agenten eine Verbindung, die jede Tabelle lesen und schreiben kann. Midplane parst jede Abfrage als AST, verweigert die gefährlichen Formen und schreibt eine dauerhafte Audit-Zeile, bevor die Abfrage Ihre Datenbank erreicht.
Related MCP server: Terminus
Was es blockiert
Destruktive Schreibvorgänge standardmäßig blockiert –
DELETE FROM userswird selbst mit einemWHEREverweigert, bis Sie die Tabelle fürread_writefreigeben.Komplette Tabellenlöschungen und Schema-Zerstörung –
DELETE/UPDATEohneWHEREsowie alleDROP/TRUNCATE/ALTER, unabhängig von der Tabellenrichtlinie.Stacked-Statement-Injection –
SELECT 1; DROP TABLE userswird bereits beim Parsen verweigert.In einer Leseabfrage versteckte Schreibvorgänge –
WITH x AS (DELETE FROM users RETURNING *) SELECT * FROM xwird beim innerenDELETEverweigert, nicht beim äußerenSELECT. Derselbe rekursive Durchlauf deckt Unterabfragen, UNION-Zweige und JOINs ab.
Das vollständige Richtlinienmodell, die Parse-→-Policy-→-Audit-Pipeline und das adversariale Korpus, das sie festlegt, sind unter midplane.ai/docs dokumentiert.
In einem echten Chat
Eine delete all users-Eingabeaufforderung an Claude Code, gegenüber einer Midplane-geschützten DB:
⏺ Moment – das ist destruktiv und irreversibel. Bevor ich
DELETE FROM public.usersausführe, bitte bestätigen.user: Bestätige das Löschen aller Benutzer
⏺ Midplane hat es blockiert: „Schreibvorgänge auf Tabelle
userssind durch die Tabellenzugriffsrichtlinie nicht erlaubt." Das DELETE wurde protokolliert, aber nicht ausgeführt.
Schnellstart
Drei Wege hinein – hinter allen steckt dieselbe Open-Core-Codebasis. Schritt-für-Schritt-Anleitungen finden Sie unter midplane.ai/docs.
Managed Cloud
Der schnellste Weg, Midplane auszuprobieren: Registrieren Sie sich unter app.midplane.ai und gelangen Sie in ein paar Minuten von null zu Ihrer ersten abgesicherten Abfrage. Dashboard, Richtlinien-Editor, gehostetes Audit-Log, Agent-Token-Ausstellung. Nichts zu installieren, Multi-Region, voll unterstützt.
Eine Datenbank selbst absichern
Stellen Sie die MIT-Engine vor eine Postgres-Datenbank und richten Sie einen Agenten darauf aus.
Nichts zu installieren – npx wird mit Node ausgeliefert und lädt das
midplane-Paket beim ersten Start
(benötigt Node 22.16+; bei älteren Versionen meldet es dies und beendet sich). Fügen Sie dies zur
Konfiguration Ihres MCP-Clients hinzu (Claude Code, Claude Desktop, Cursor – sie akzeptieren alle diese
Form):
{
"mcpServers": {
"midplane": {
"command": "npx",
"args": ["-y", "midplane", "server", "--stdio"],
"env": { "DATABASE_URL": "postgres://user:pass@host:5432/db" }
}
}
}Bewahren Sie die Verbindungszeichenfolge in diesem env-Block auf und nicht in einer Befehlszeile,
wo sie an ps aux und Ihren Shell-Verlauf gelangen würde. Der Block landet weiterhin in
einer Klartext-Konfigurationsdatei. Geben Sie Midplane daher eine eigene Postgres-Rolle mit minimalen Rechten:
Sie bestimmt, welches SQL ausgeführt wird, nicht, was die darunterliegende Rolle erreichen kann.
Diese Konfiguration ist bereits die sichere Standardeinstellung: Lesezugriffe erlaubt, Schreibvorgänge und DDL verweigert,
jede Abfrage wird in ~/.midplane/audit.db protokolliert. Lesen Sie das Log mit
npx midplane audit denies zurück. Um bestimmte Tabellen zu öffnen, erzeugen Sie eine Richtlinie mit
npx midplane init – es untersucht Ihr Schema über eine schreibgeschützte Verbindung,
schlägt eine Tenant-Spalte vor und schreibt eine validierte midplane.policy.yaml.
Für eine CI-Pipeline oder einen langlebigen Sidecar wird dieselbe Engine als eigenständiges Image ohne Node ausgeliefert –
midplane/midplane:0.19.0, das Streamable HTTP statt stdio bedient. Einrichtung ·engine/README.md.
Die gesamte App selbst hosten
Das vollständige Single-Tenant-Produkt – Dashboard, Richtlinien-Editor, Audit-Log, Agent-Token-Ausstellung – schlüssellos und ohne Obergrenze, auf Ihrer eigenen Postgres-Datenbank. Docker ist die einzige Voraussetzung:
git clone https://github.com/midplaneai/midplane && cd midplane
./bin/self-host up # → http://localhost:3000Das erzeugt Geheimnisse in .env.self-host, startet Postgres + die Web-App,
wendet Migrationen beim Booten an und gibt die Dashboard-URL aus – die erste
Anmeldung mit E-Mail+Passwort wird zum Eigentümer.
Ausführen aus dem Quellcode, das Single-Image-Deployment, die Engine-Spawn-Topologie und die
vollständige Schritt-für-Schritt-Anleitung: midplane.ai/docs (im Repo:
SELF_HOST.md).
Open Core
Midplane ist Open Core, MIT und selbst hostbar. Alles außerhalb
von apps/web/src/ee/ ist die Community Edition – das gesamte Single-Tenant-Produkt,
beim Selbsthosten ohne Obergrenze. apps/web/src/ee/ ist die kommerzielle Enterprise Edition
(heute SSO/SAML; im Laufe der Zeit die Governance-Funktionen); wenn Sie sie löschen, bleibt ein funktionierender MIT-Build
übrig. Die verwaltete Cloud ist dieselbe Codebasis und der unterstützte, kostenpflichtige Weg. Siehe
LICENSE für die MIT-Bedingungen und NOTICE für die ee/-Ausnahme.
Architektur
Eine Codebasis, zwei Deployables:
Control Plane (Repo-Stammverzeichnis) – Dashboard, Richtlinienverwaltung, Audit-Ansichten, Agent-Token-Ausstellung, gehosteter MCP-Proxy. MIT außer
apps/web/src/ee/.Engine (
engine/) – die MIT-Query-Path-Engine, kompiliert zu einer eigenständigen Binärdatei. Die Control Plane startet sie pro Projekt und implementiert sie nie neu, sodass gehostet und selbst gehostet exakt dieselbe Engine ausführen – nur die Verpackung unterscheidet sich.
apps/web Next.js dashboard + Better Auth + projects API
packages/db Drizzle schema (customers, projects, audit index)
packages/kms encryptDsn / decryptDsn (env-mode dev, AWS KMS prod)
packages/router Hosted MCP request handler — token → project → engine
engine/ The MIT query-path engine
infra/telemetry-proxy Cloudflare Worker for anonymized OSS install telemetryDer Betrieb der verwalteten Multi-Region-Cloud (Fly + Neon + KMS) ist in
docs/deploy.md beschrieben.
Mitwirken
Issues und PRs sind willkommen – beginnen Sie mit CONTRIBUTING.md. Der
einzelne Beitrag mit der größten Hebelwirkung ist ein neuer Eintrag im adversarialen SQL-Korpus:
ein Umgehungsversuch und der Richtlinien-Fix, der ihn abwehrt. Commits sind DCO-signiert
(git commit -s). Für Sicherheitsprobleme folgen Sie SECURITY.md –
eröffnen Sie kein öffentliches Issue.
Lizenz
MIT – siehe LICENSE. Kein Copyleft, kein BSL, kein Source-Available-Rückzieher.
Die eine Ausnahme ist apps/web/src/ee/ (die kommerzielle Enterprise Edition, geregelt
durch apps/web/src/ee/LICENSE und festgehalten in
NOTICE); wenn Sie sie löschen, bleibt ein voll funktionsfähiger MIT-Build übrig.
Mehr: Dokumentation · Preise · Support · Designsystem · Verhaltenskodex
This server cannot be deployed
Maintenance
Related MCP Connectors
Deterministic safety, correctness & cost gate that vets Postgres SQL before your AI agent runs it.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Security gateway for AI agents: policy, approval, and audited execution, no secrets shared.
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceConnects AI assistants to PostgreSQL databases with production-grade safety features including query validation, guarded writes, rate limiting, and audit logging.3MIT
- AlicenseNot gradedqualityDmaintenanceA default-deny SQL firewall sidecar for AI agents that enforces per-agent policies on database queries, provides safe rewrites, and maintains a tamper-evident audit chain.AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceA governed SQL gateway for untrusted AI agents, providing controlled access to PostgreSQL, MySQL, and OceanBase with RBAC, field ACLs, row policies, and cost controls.MIT
- AlicenseNot gradedqualityCmaintenanceEnforces safety and governance for SQL queries executed by AI agents, providing read-only enforcement, cost estimation, and audit trails.Apache 2.0