Midplane
OfficialMidplane
Безопасные по умолчанию SQL-ограничители для ИИ-агентов. Midplane находится на пути выполнения запросов между ИИ-агентом (Claude, Cursor, любой MCP-клиент) и вашей базой данных Postgres. Он разбирает каждое выражение с помощью настоящего SQL AST, а не регулярного блок-списка, применяет декларативную политику доступа к таблицам, блокирует разрушительные DML/DDL и записывает событийный журнал аудита о том, какой агент что выполнил, до выполнения запроса.
📖 Полная документация находится на midplane.ai/docs — настройка агента, справочник по политикам, самостоятельный хостинг, развёртывание и модель угроз. Этот README — лишь краткое введение.
Почему это существует
ИИ-агенты для написания кода подключаются к продакшен-Postgres без журнала аудита и защитного слоя. Устаревший эталонный Postgres MCP от Anthropic содержал вектор многооператорной инъекции (Datadog Security Labs, 2025); типичная настройка с сервисной ролью выдаёт агенту подключение, которое может читать и писать во все таблицы. Midplane разбирает каждый запрос как AST, отклоняет опасные конструкции и записывает долговечную запись аудита до того, как запрос достигнет вашей базы данных.
Related MCP server: Terminus
Что он блокирует
Разрушительные записи по умолчанию —
DELETE FROM usersотклоняется даже сWHERE, пока вы не включите для таблицы режимread_write.Полное стирание таблиц и разрушение схемы —
DELETE/UPDATEбезWHEREи все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.
В реальном чате
Промпт delete all users для Claude Code при обращении к БД, перед которой стоит Midplane:
⏺ Погоди — это разрушительно и необратимо. Прежде чем я выполню
DELETE FROM public.users, подтверди, пожалуйста.пользователь: подтверждаю удаление всех пользователей
⏺ Midplane заблокировал его: «запись в таблицу
usersне разрешена политикой доступа к таблицам». DELETE попал в аудит, но не был выполнен.
Быстрый старт
Три способа начать — за всеми ними стоит одна и та же кодовая база open core. Пошаговые руководства находятся на midplane.ai/docs.
Управляемое облако
Самый быстрый способ попробовать Midplane: зарегистрируйтесь на app.midplane.ai и перейдите от нуля до первого защищённого запроса за пару минут. Дашборд, редактор политик, облачный журнал аудита, выпуск агентских токенов. Ничего устанавливать не нужно, мультирегионально, полностью поддерживается.
Защитите одну базу данных самостоятельно
Поместите движок 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 с минимальными привилегиями: он определяет, какой SQL будет выполняться, а не к чему может обратиться лежащая под ним роль.
Эта конфигурация уже безопасна по умолчанию: чтение разрешено, запись и DDL запрещены, каждый запрос записывается в аудит в ~/.midplane/audit.db. Прочитать журнал можно с помощью npx midplane audit denies. Чтобы открыть доступ к отдельным таблицам, сгенерируйте политику с помощью npx midplane init — он проанализирует вашу схему через подключение только для чтения, предложит колонку тенанта и запишет проверенный midplane.policy.yaml.
Для CI-конвейера или долгоживущего сайдкара тот же движок поставляется в виде самодостаточного образа без Node —
midplane/midplane:0.19.0, обслуживающий Streamable HTTP вместо stdio. Настройка ·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 + веб-приложение, применит миграции при запуске и выведет URL дашборда — первая регистрация по email+password становится владельцем.
Запуск из исходников, развёртывание из одного образа, топология с порождением движка и полное пошаговое руководство: midplane.ai/docs (в репозитории: SELF_HOST.md).
Open core
Midplane — это open core с лицензией MIT, который можно разворачивать самостоятельно. Всё за пределами apps/web/src/ee/ — это Community Edition: полный однотенантный продукт, без лимитов при самостоятельном хостинге. apps/web/src/ee/ — это коммерческая Enterprise Edition (сегодня SSO/SAML; со временем — слой управления); её удаление оставляет рабочую MIT-сборку. Управляемое облако — это та же кодовая база и поддерживаемый платный путь. Условия MIT см. в LICENSE, исключение для ee/ — в NOTICE.
Архитектура
Одна кодовая база, два варианта развёртывания:
Control plane (корень репозитория) — дашборд, управление политиками, представления аудита, выпуск агентских токенов, хостируемый MCP-прокси. MIT, кроме
apps/web/src/ee/.Engine (
engine/) — MIT-движок пути выполнения запросов, компилируемый в самодостаточный бинарник. Control plane запускает его для каждого проекта и никогда не реализует заново, поэтому облачная и самостоятельная версии запускают один и тот же движок — отличается только упаковка.
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.
Участие в разработке
Приветствуются issues и PR — начните с CONTRIBUTING.md. Наибольшую отдачу приносит новая запись в состязательном SQL-корпусе: попытка обхода и исправление политики, которое её отражает. Коммиты подписаны DCO (git commit -s). По вопросам безопасности следуйте SECURITY.md — не открывайте публичный issue.
Лицензия
MIT — см. LICENSE. Никакого копилефта, никакой BSL, никакого внезапного отзыва source-available. Единственное исключение — apps/web/src/ee/ (коммерческая Enterprise Edition, условия которой приведены в 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