Midplane
OfficialMidplane
Protecciones SQL seguras por defecto para agentes de IA. Midplane se sitúa en la ruta de consulta entre un agente de IA (Claude, Cursor, cualquier cliente MCP) y tu base de datos Postgres. Analiza cada sentencia con un AST SQL real — no con una lista negra de regex — aplica una política declarativa de acceso por tabla, bloquea las operaciones DML/DDL destructivas y escribe un registro de auditoría basado en eventos que indica qué agente ejecutó qué, antes de que la consulta se ejecute.
📖 Toda la documentación está en midplane.ai/docs — la configuración de agentes, el manual de políticas, el autoalojamiento, el despliegue y el modelo de amenazas. Este README es solo la orientación inicial.
Por qué existe esto
Los agentes de codificación con IA se están conectando a bases de datos Postgres de producción sin registro de auditoría ni capa de seguridad. El MCP de Postgres de referencia de Anthropic, ya obsoleto, incluía un vector de inyección de sentencias apiladas (Datadog Security Labs, 2025); con la configuración típica de rol de servicio, a un agente se le entrega una conexión que puede leer y escribir en todas las tablas. Midplane analiza cada consulta como un AST, rechaza las formas peligrosas y escribe una fila de auditoría duradera antes de que la consulta llegue a tu base de datos.
Related MCP server: sql-steward
Qué bloquea
Escrituras destructivas por defecto —
DELETE FROM usersse deniega incluso con unWHERE, hasta que se opte explícitamente por la tabla enread_write.Borrado completo de tablas y destrucción del esquema —
DELETE/UPDATEsinWHEREy todos losDROP/TRUNCATE/ALTER, independientemente de la política de tabla.Inyección de sentencias apiladas —
SELECT 1; DROP TABLE usersse rechaza en tiempo de análisis.Escrituras ocultas dentro de una lectura —
WITH x AS (DELETE FROM users RETURNING *) SELECT * FROM xse rechaza en elDELETEinterno, no en elSELECTexterno. El mismo recorrido recursivo cubre subconsultas, ramas de UNION y JOINs.
El modelo de políticas completo, el pipeline de análisis → política → auditoría y el corpus adversarial que lo fija están documentados en midplane.ai/docs.
En un chat real
Un prompt con delete all users enviado a Claude Code contra una base de datos protegida por Midplane:
⏺ Un momento: eso es destructivo e irreversible. Antes de ejecutar
DELETE FROM public.users, confírmalo.usuario: confirmar eliminación de todos los usuarios
⏺ Midplane lo bloqueó: "no se permiten escrituras en la tabla
userssegún la política de acceso a tablas". El DELETE fue auditado, pero no ejecutado.
Inicio rápido
Tres vías de entrada — la misma base de código de núcleo abierto detrás de todas. Las guías paso a paso están en midplane.ai/docs.
Nube gestionada
La forma más rápida de probar Midplane: regístrate en app.midplane.ai pasa de cero a tu primera consulta protegida en un par de minutos. Panel de control, editor de políticas, registro de auditoría alojado, emisión de tokens de agente. Nada que instalar, multirregión y con soporte completo.
Protege una base de datos tú mismo
Coloca el motor MIT delante de una base de datos Postgres y apunta un agente hacia ella. No tienes nada que instalar — npx pero que Node ya lo trae y se encarga de descargar el paquete midplane en la primera ejecución (necesita Node 22.16 o superior; si el sistema es anterior, te lo indica y sale). Añade esto a la configuración de tu cliente MCP (Claude Code, Claude Desktop, Cursor — todos aceptan este formato):
{
"mcpServers": {
"midplane": {
"command": "npx",
"args": ["-y", "midplane", "server", "--stdio"],
"env": { "DATABASE_URL": "postgres://user:pass@host:5432/db" }
}
}
}Mantén la cadena de conexión en ese bloque env y no en la línea de comandos, donde se filtraría a ps aux y a tu historial de shell. El bloque sigue en un archivo de configuración en texto plano, así que dale a Midplane el suyo propio. Añade un rol de Postgres con privilegios mínimos: Midplane decide qué SQL se ejecuta, no a qué puede llegar el rol que está por debajo.
Esa configuración ya ofrece el valor seguro por defecto: lecturas permitidas, escrituras y DDL denegados, y todas las consultas auditadas en ~/.midplane/audit.db. Para revisar ese registro utiliza npx midplane audit denies. Para abrir tablas concretas, genera una política con npx midplane init — inspecciona tu esquema mediante una conexión de solo lectura, te sugiere una columna tenant y escribe un midplane.policy.yaml validado.
Para un pipeline de CI o un sidecar de larga duración, el mismo motor se distribuye como imagen autocontenida sin Node dentro —
midplane/midplane:0.19.0, usando Streamable HTTP en lugar de stdio. Configuración ·engine/README.md.
Autoalojar toda la aplicación
El completo producto single-tenant — panel de control, editor de políticas, registro de auditoría, emisión de tokens de agente — sin claves y sin límites, en tu propio Postgres. Docker es el único requisito previo:
git clone https://github.com/midplaneai/midplane && cd midplane
./bin/self-host up # → http://localhost:3000Eso genera autenticación en .env.self-host, levanta Postgres junto a la aplicación web, aplica migraciones al arrancar e imprime la URL del panel — el primer registro con correo electrónico y contraseña se convierte en el propietario.
Ejecutar desde código fuente, desplegar con una sola imagen, la topología de creación del engine y el roorrido completo: midplane.ai/docs (en el repositorio: SELF_HOST.md).
Open core
Midplane es open core, MIT y autoalojable. Todo lo que está fuera de apps/web/src/ee/ es la edición Community — el producto completo single-tenant, sin límites cuando se autoaloja. apps/web/src/ee/ es la edición Enterprise (vendor entre SSO/SAML hoy; la capa de gobernanza con el tiempo); eliminarla deja una compilación MIT funcional. La nube gestionada es el mismo código base y la vía de pago con soporte. Consulta LICENSE para los términos MIT y NOTICE para la exclusión de ee/.
Arquitectura
Un único código base, dos despliegues:
Control plane (raíz del repositorio) — panel de control, gestión de políticas, vistas de auditoría, emisión de tokens de agente, proxy MCP alojado. MIT, salvo
apps/web/src/ee/.Engine (
engine/) — the motor MIT de la ruta de consulta, compilado como binario autocontenido. El plano de control lo inicia por proyecto y nunca lo reimplementa, de modo que la versión alojada y la autoalojada ejecutan exactamente el mismo motor; solo cambia el empaquetado.
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 telemetryLa gestión de la nube gestionada y multirregional (Fly + Neon + KMS) se documenta en docs/deploy.md.
Contribución
Aceptamos issues y PRs — empieza por CONTRIBUTING.md. La contribución de mayor impacto es una nueva entrada en el corpus SQL contrarios: un bypass intento junto con el parche de política que lo vence. Los commits van firmados con DCO (git commit - › s). Para incidentes de seguridad, sigue [SECURITY.md`](./SECURITY.md) — no abras un issue público.
Licencia
MIT — consulta LICENSE. Sin copyleft, sin BSL, sin subidón de la quita. La única excepción es apps/web/src/ee/ (la edición Enterprise, regida por apps/web/src/ee/LICENSE y recogida en NOTICE); borrarla deja una compilación MIT totalmente funcional.
Más: Documentación · Precios · Soporte · Sistema de diseño · Código de conducta
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityAmaintenanceSecure 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.1MIT
- AlicenseAqualityFmaintenanceA 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.9MIT
- AlicenseNot gradedqualityBmaintenanceConnects AI assistants to PostgreSQL databases with production-grade safety features including query validation, guarded writes, rate limiting, and audit logging.2MIT
- AlicenseNot gradedqualityCmaintenanceA 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
Related MCP Connectors
Query PostgreSQL databases in plain English — LLM-generated, safety-validated SQL.
The WAF for agents. Pattern-based + heuristic firewall scans prompts, RAG documents, tool argume...
See, price, and control every tool call your AI agents make: policy checks, cost, and audit tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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