Skip to main content
Glama
midplaneai

Midplane

Official
by midplaneai

Midplane

License: MIT CI Docs MCP

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 users wird selbst mit einem WHERE verweigert, bis Sie die Tabelle für read_write freigeben.

  • Komplette Tabellenlöschungen und Schema-Zerstörung – DELETE / UPDATE ohne WHERE sowie alle DROP / TRUNCATE / ALTER, unabhängig von der Tabellenrichtlinie.

  • Stacked-Statement-Injection – SELECT 1; DROP TABLE users wird bereits beim Parsen verweigert.

  • In einer Leseabfrage versteckte Schreibvorgänge – WITH x AS (DELETE FROM users RETURNING *) SELECT * FROM x wird beim inneren DELETE verweigert, nicht beim äußeren SELECT. 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.users ausführe, bitte bestätigen.

user: Bestätige das Löschen aller Benutzer

⏺ Midplane hat es blockiert: „Schreibvorgänge auf Tabelle users sind 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:3000

Das 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 telemetry

Der 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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Connects AI assistants to PostgreSQL databases with production-grade safety features including query validation, guarded writes, rate limiting, and audit logging.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A 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
  • A
    license
    Not graded
    quality
    C
    maintenance
    A 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
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enforces safety and governance for SQL queries executed by AI agents, providing read-only enforcement, cost estimation, and audit trails.
    Apache 2.0