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: sql-steward
차단하는 것들
기본적으로 파괴적인 쓰기 차단 —
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를 실행하기 전에 확인이 필요합니다.사용자: delete all users 확인
⏺ Midplane이 차단했습니다: "
users테이블에 대한 쓰기는 테이블 액세스 정책에서 허용되지 않습니다." DELETE는 감사되었지만 실행되지는 않았습니다.
빠른 시작
세 가지 방법 — 모두 동일한 오픈 코어 코드베이스입니다. 단계별 가이드는 midplane.ai/docs 에서 확인하세요.
관리형 클라우드
Midplane을 가장 빠르게 체험하는 방법: app.midplane.ai에서 가입 하고 몇 분 만에 첫 보호 쿼리까지 도달하세요. 대시보드, 정책 편집기, 호스팅 감사 로그, 에이전트 토큰 발급을 제공합니다. 설치할 것 없이, 멀티 리전, 완전 지원됩니다.
직접 데이터베이스 하나 보호하기
Postgres 데이터베이스 앞에 MIT 엔진을 두고 에이전트를 연결하세요. 설치할 것 없이 — 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 + 웹 앱이 시작되며, 부팅 시 마이그레이션이 적용되고, 대시보드 URL이 출력됩니다. 첫 번째 이메일+비밀번호 가입이 소유자가 됩니다.
소스에서 실행, 단일 이미지 배포, 엔진 스폰 토폴로지, 전체 워크스루: midplane.ai/docs(저장소 내: SELF_HOST.md).
오픈 코어
Midplane은 오픈 코어, MIT, 자체 호스팅 가능입니다. apps/web/src/ee/ 외부의 모든 것은 커뮤니티 에디션입니다 — 자체 호스팅 시 상한 없는 완전한 단일 테넌트 제품입니다. apps/web/src/ee/는 상용 엔터프라이즈 에디션입니다(현재 SSO/SAML, 시간이 지나면 거버넌스 밴드). 삭제하면 작동하는 MIT 빌드가 남습니다. 관리형 클라우드는 동일한 코드베이스이며 지원되는 유료 경로입니다. MIT 약관은 LICENSE, ee/ 제외 사항은 NOTICE를 참조하세요.
아키텍처
하나의 코드베이스, 두 가지 배포 가능한 형태:
컨트롤 플레인(저장소 루트) — 대시보드, 정책 관리, 감사 보기, 에이전트 토큰 발급, 호스팅 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에 있습니다.
기여하기
이슈와 PR을 환영합니다 — CONTRIBUTING.md부터 시작하세요. 가장 영향력 있는 기여는 적대적 SQL 코퍼스에 새 항목을 추가하는 것입니다. 우회 시도와 이를 무력화하는 정책 수정이 그것입니다. 커밋은 DCO 서명(git commit -s)이 필요합니다. 보안 문제는 SECURITY.md를 따르세요 — 공개 이슈를 열지 마세요.
라이선스
MIT — LICENSE를 참조하세요. 카피레프트도, BSL도, 소스 공개 철회도 없습니다. 유일한 예외는 apps/web/src/ee/(상용 엔터프라이즈 에디션, apps/web/src/ee/LICENSE 적용, NOTICE에 기록)이며, 이를 삭제하면 완전히 작동하는 MIT 빌드가 남습니다.
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