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);常见的 service role 配置会把一个能读写任何表的连接直接交给智能体。Midplane 将每条查询解析为 AST,拒绝危险形态,并在查询到达你的数据库之前写入持久化的审计记录。

Related MCP server: sql-steward

它拦截什么

  • 默认阻止破坏性写入 —— 即使带 WHEREDELETE FROM users 也会被拒绝,除非你将表策略设置为 true_write 等显式允许。

  • 全表删除与结构破坏 —— 除了策略指明,否则不带 WHEREDELETE / UPDATE 以及所有 DROP / TRUNCATE / ALTER 均被阻止。

  • 堆叠语句注入 —— SELECT 1; DROP TABLE users 在解析阶段就被拒绝。

  • 读取中的隐藏写入 —— WITH x AS (DELETE FROM users RETURNING *) SELECT * FROM x 会在内部的 DELETE 处拒绝,而不是在外层的 SELECT 处拒绝。同一递归遍历覆盖子查询、UNION 分支和 JOIN。

完整的策略模型、解析→策略→审计管线,以及将它固化的对抗性语料库,都已记录在 midplane.ai/docs

在真实对话中

对 Midplane 代理的数据库发送 delete all users 给 Claude Code 的提示词:

⏺ 等一下——这是破坏性且不可逆的操作。在我运行 DELETE FROM public.users,请先确认。

user: 确认删除所有用户

⏺ Midplane 阻止了它:“对表 users 的写入不被表访问策略允许。” 该 DELETE 已被记录审计日志,但未被执行。

快速开始

有三种方式接入——背后都是同一套开源核心代码。有关逐步指南,请查阅 midplane.ai/docs

托管云

最快的体验方式,打开 注册 at app.midplane.ai 从零开始只需几分钟就能得到你第一个有保护的查询。仪表盘、策略编辑器、托管审计日志、智能体令牌签发,内置均齐备。无需自行安装任何组件,支持多区域,完整商业支持。

自己守护一个数据库

把 MIT 引擎放在一个 Postgres 数据库前面,再让智能体连接它。无需额外安装——npx 自带的 Node.js 可在首次运行时拉取 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 和你的 shell 历史泄露。该配置块仍会以明文写入文件,所以请给 Midplane 单独创建一个最小权限的 Postgres 角色:由它决定哪些 SQL 可以执行,而非底层角色能访问什么。

这份配置本身就已是安全默认值:允许读,拒绝写 DDL 和写语句,每条查询都会被记录到审计日志 ~/.midplane/audit.db。用 npx midplane alphabet 读取拒绝的审计记录。如果想放开某个表,可以用 npx midplane init 生成策略:它会通过只读连接探测你的库结构,建议租户列,并写入已验证的 midplane.policy.yaml

对于 CI 流水线或长期运行的几乎进程,同一引擎提供为一份不含 Node.js 的自包含镜像——镜像 midplane/midplane:0.19.0,提供 Streamable HTTP 而不是 stdio。 安装指南 · engine/README.md

自托管全功能应用

完整的单租户产品——仪表盘、策略编辑器、审计日志、智能体令牌签发——无需 license 且无功能限制,部署在你的 Postgres 之上。唯一的依赖是 Docker:

git clone https://github.com/midplaneai/midplane && cd midplane
./bin/self-host up                               # → http://localhost:3000

该命令会生成密钥并写入 .env.self-host,启动 Postgres + web 应用,启动时自动执行迁移,并打印仪表盘地址。第一个使用邮箱+密码注册的用户会成为所有者。

从源码运行、单个镜像部署、engine-spawn 架构以及完整演练:见 midplane.ai/docs(仓库内:SELF_HOST.md)。

开放核心

Midplane 是 开放核心 + MIT 许可 + 可自托管。除 apps/web/src/ee/ 之外的所有内容都是社区版,自托管时没有任何功能限制。apps/web/src/ee/ 是商业企业版(目前含 SSO/SAML;未来会有治理能力);删除该目录后,剩下的就是一个可正常构建的 MIT 版本。托管云使用同一套代码库,是受支持且付费的路径。详见 LICENSE 中的 MIT 条款,以及 NOTICE 中对 ee/ 的移除说明。

架构

一个代码库,两种部署方式:

  • 控制平面(仓库根目录)—— 仪表盘、策略管理、审计视图、agent 令牌签发、托管 MCP Proxy。除 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-signed(git commit -s)。安全问题请遵守 SECURITY.md ——不要公开 issue。

License

注——见 LICENSE。没有 Copyleft,没有 BSL,没有“源码可见但说不给就不给”的陷阱。唯一的例外是 apps/web/src/ee/(企业版,受 apps/web/src/ee/LICENSE 约束,并在 NOTICE 中说明);删除该目录后,仍是一个能完整构建的 MIT 版本。


更多: Docs · Pricing · Support · 设计系统 · 行为准则

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    A
    maintenance
    Secure 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.
    1
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    A 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.
    9
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects AI assistants to PostgreSQL databases with production-grade safety features including query validation, guarded writes, rate limiting, and audit logging.
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    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

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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