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: sql-steward
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceSecure SQL proxy for AI agents. Translates natural language to safe SQL via Claude, validates at the AST level (SELECT-only, no DDL/DML), enforces per-agent row-level security, and audit-logs every query.1MIT
- AlicenseAqualityFmaintenanceA governed SQL gateway that exposes typed tools to AI agents, compiling safe read-only queries from a semantic layer while blocking PII before execution, supporting SQL Server, Postgres, and SQLite.9MIT
- AlicenseNot gradedqualityBmaintenanceConnects AI assistants to PostgreSQL databases with production-grade safety features including query validation, guarded writes, rate limiting, and audit logging.2MIT
- AlicenseNot gradedqualityCmaintenanceA 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
Related MCP Connectors
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
The WAF for agents. Pattern-based + heuristic firewall scans prompts, RAG documents, tool argume...
See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/midplaneai/midplane'
If you have feedback or need assistance with the MCP directory API, please join our Discord server