Midplane
OfficialMidplane
AIエージェント向けの、デフォルトで安全なSQLガードレール。 Midplaneは、AIエージェント(Claude、Cursor、任意のMCPクライアント)とPostgresデータベースの間のクエリ経路に位置します。すべてのステートメントを、正規表現のブロックリストではなく、実際のSQL ASTで解析し、宣言的なテーブル単位のアクセスポリシーを適用し、破壊的なDML/DDLをブロックし、クエリ実行前に、どのエージェントが何を実行したかのイベントソーシング監査ログを書き込みます。
📖 完全なドキュメントは midplane.ai/docs にあります — エージェントのセットアップ、ポリシーリファレンス、セルフホスティング、デプロイ、脅威モデル。このREADMEは概要にすぎません。
なぜこれが必要か
AIコーディングエージェントが、監査証跡や安全レイヤーなしで本番Postgresに接続されています。非推奨となったAnthropicのリファレンスPostgres MCPには、スタックステートメントインジェクションの経路が含まれていました(Datadog Security Labs、2025年)。一般的なサービスロール設定では、エージェントにすべてのテーブルを読み書きできる接続が渡されます。MidplaneはすべてのクエリをASTとして解析し、危険な形状を拒否し、クエリがデータベースに到達する前に永続的な監査行を書き込みます。
Related MCP server: Terminus
ブロックするもの
デフォルトで破壊的な書き込みを拒否 —
DELETE FROM usersは、WHERE句があっても、テーブルをread_writeにオプトインするまで拒否されます。テーブル全体の消去とスキーマ破壊 —
WHEREなしのDELETE/UPDATE、およびすべてのDROP/TRUNCATE/ALTERを、テーブルポリシーに関係なく拒否。スタックステートメントインジェクション —
SELECT 1; DROP TABLE usersは解析時に拒否。読み取りの中に隠された書き込み —
WITH x AS (DELETE FROM users RETURNING *) SELECT * FROM xは、外側のSELECTではなく内側のDELETEで拒否されます。同じ再帰的走査がサブクエリ、UNIONの各分岐、JOINもカバーします。
完全なポリシーモデル、解析 → ポリシー → 監査のパイプライン、そしてそれを固定する敵対的コーパスは、midplane.ai/docs に文書化されています。
実際のチャットでの動作
Midplaneを前面に置いたDBに対して、Claude Codeに delete all users とプロンプトした場合:
⏺ ちょっと待ってください — それは破壊的で元に戻せません。
DELETE FROM public.usersを実行する前に、確認をお願いします。user: 全ユーザー削除を確認
⏺ Midplaneがブロックしました:「テーブル
usersへの書き込みは、テーブルアクセスポリシーで許可されていません。」 DELETEは監査されましたが、実行されませんでした。
クイックスタート
3つの導入方法 — すべて同じオープンコアのコードベースです。ステップバイステップのガイドは midplane.ai/docs にあります。
マネージドクラウド
Midplaneを試す最速の方法:app.midplane.ai でサインアップ して、数分でゼロから最初のガード付きクエリまで到達できます。ダッシュボード、ポリシーエディタ、ホスト型監査ログ、エージェントトークン発行。インストール不要、マルチリージョン、完全サポート。
自分で1つのデータベースをガードする
MITエンジンをPostgresデータベースの前に置き、エージェントをそこに向けます。インストール不要 — npx はNodeに同梱されており、初回実行時に midplane パッケージを取得します(Node 22.16+ が必要です。それより古い場合はその旨を表示して終了します)。これをMCPクライアントの設定に追加します(Claude Code、Claude Desktop、Cursor — すべて同じ形式です):
{
"mcpServers": {
"midplane": {
"command": "npx",
"args": ["-y", "midplane", "server", "--stdio"],
"env": { "DATABASE_URL": "postgres://user:pass@host:5432/db" }
}
}
}接続文字列はコマンドラインではなく、その env ブロックに置いてください。コマンドラインだと ps aux やシェル履歴に漏れる可能性があります。このブロックは依然としてプレーンテキストの設定ファイルに置かれるため、Midplaneに専用の最小権限Postgresロールを付与してください。MidplaneはどのSQLが実行されるかを制御するものであり、その下にあるロールが到達できる範囲を制御するものではありません。
この設定はすでに安全なデフォルトです:読み取りは許可、書き込みとDDLは拒否、すべてのクエリは ~/.midplane/audit.db に監査されます。ログは npx midplane audit denies で読み戻せます。特定のテーブルを開放するには、npx midplane init でポリシーを生成します — 読み取り専用接続でスキーマを検査し、テナント列を提案し、検証済みの midplane.policy.yaml を書き込みます。
CIパイプラインや長期稼働するサイドカーの場合、同じエンジンはNodeを含まない自己完結型イメージとして提供されます —
midplane/midplane:0.19.0で、stdioの代わりにStreamable HTTPを提供します。セットアップ ·engine/README.md。
アプリ全体をセルフホストする
完全なシングルテナント製品 — ダッシュボード、ポリシーエディタ、監査ログ、エージェントトークン発行 — を、キー不要・上限なしで、自前のPostgres上で。前提条件はDockerのみ:
git clone https://github.com/midplaneai/midplane && cd midplane
./bin/self-host up # → http://localhost:3000これにより .env.self-host にシークレットが生成され、Postgres + Webアプリが起動し、起動時にマイグレーションが適用され、ダッシュボードのURLが表示されます — 最初のメール+パスワードでのサインアップがオーナーになります。
ソースからの実行、単一イメージでのデプロイ、エンジンスポーントポロジー、完全なウォークスルー:midplane.ai/docs(リポジトリ内:SELF_HOST.md)。
オープンコア
Midplaneは オープンコア、MIT、セルフホスト可能 です。apps/web/src/ee/ 以外はすべてコミュニティエディションです — シングルテナント製品全体で、セルフホスト時は上限なし。apps/web/src/ee/ は商用エンタープライズエディションです(現在はSSO/SAML、今後はガバナンス機能)。これを削除しても動作するMITビルドが残ります。マネージドクラウドは同じコードベースであり、サポート対象の有料パスです。MITの条件については LICENSE を、ee/ の除外については NOTICE を参照してください。
アーキテクチャ
1つのコードベース、2つのデプロイ可能な成果物:
コントロールプレーン(リポジトリルート)— ダッシュボード、ポリシー管理、監査ビュー、エージェントトークン発行、ホスト型MCPプロキシ。
apps/web/src/ee/を除きMIT。エンジン(
engine/)— MITのクエリパスエンジンで、自己完結型バイナリにコンパイルされます。コントロールプレーンはプロジェクトごとにこれを起動し、再実装することはありません。したがって、ホスト型とセルフホスト型はまったく同じエンジンを実行します — パッケージングだけが異なります。
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マネージドのマルチリージョンクラウド(Fly + Neon + KMS)の運用は docs/deploy.md にあります。
コントリビューション
IssueとPRを歓迎します — CONTRIBUTING.md から始めてください。最も効果の高いコントリビューションは、敵対的SQLコーパスへの新しいエントリです:バイパス試行と、それを無効化するポリシー修正。コミットはDCO署名されています(git commit -s)。セキュリティ問題については、SECURITY.md に従ってください — 公開Issueを開かないでください。
ライセンス
MIT — LICENSE を参照してください。コピーレフトなし、BSLなし、ソースアベイラブルへの変更による騙し討ちもありません。唯一の例外は apps/web/src/ee/ です(商用エンタープライズエディションで、apps/web/src/ee/LICENSE に基づき、NOTICE に記録されています)。これを削除しても完全に動作するMITビルドが残ります。
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