Skip to main content
Glama
midplaneai

Midplane

Official
by midplaneai

Midplane

License: MIT CI Docs MCP

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ビルドが残ります。


詳細: ドキュメント · 料金 · サポート · デザインシステム · 行動規範

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