Midplane MCP server
ai.midplane/midplane·v0.26.1·5 starsA gateway between AI agents and Postgres: table access, masking at the source, approvals and audit.
5 stars1.2k downloads/wk
Reviews
Write oneNobody has reviewed Midplane yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Midplane tools (5, 2 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
check_approvalCheck where a held write stands: pending, approved (re-run exactly the same statement with the same intent through the write tool to run it), denied, expired, or already used. Takes the approval id a held write returned.
describe_tableShow a table's columns: types, primary key, NOT NULL, foreign keys to tables this agent may read, comments, and which columns come back masked.
list_tablesList the tables and views this agent may read, with its access to each.
querywrite actionRun one read-only SQL statement (a SELECT, VALUES or read-only WITH query) against a Postgres database, through Midplane's policy. Returns rows; masked columns come back masked, and a denied statement explains why. …
writewrite actionRun one SQL write (an INSERT, UPDATE, DELETE or schema change) against a Postgres database, through Midplane's policy: it runs now, waits for a person's approval, or is refused, and the answer says which and why. Once a held write is approved, re-run exactly the same statement with the same intent here. Reads go to the query tool, which needs no confirmation.
Public scan report
scanner v0.1.10 · 2026-10-31 · same rubric, same numbers if you re-run it
- Code scan3 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 1 days ago15/15
- Maintainer identitynamespace and repository owner differ; website matches verified namespace6/10
How Midplane compares
Against every graded Databases MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 80/100
- higher than 50% of 802 Databases servers
- Tools
- 5
- the typical Databases server has 8
- Tools that change things
- 40%
- typical: 9%. Fewer write tools means less an agent can break
- GitHub stars
- 5
- more than 73% of 602 Databases servers
- Downloads a week
- 1,202
- more than 91% of 330 Databases servers with a package
What its tools let an agent do: 3 read · 1 create · 1 change
Release history: 4 versions in the registry since 2026-08-25, latest 2026-10-29, typically one every 1 day.
Install Midplane in Claude Code, Cursor or VS Code
Runs npx -y midplane on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add midplane -- npx -y midplane
What the publisher says
From the Midplane repository's README, as published. We do not edit it. Read it on GitHub
Midplane
Postgres MCP server for AI agents. Connect the tables you've been keeping off-limits. PII masked at the source, policy enforced on the SQL AST, writes held for human approval, everything audited. MIT, self-hostable.
Midplane sits in the query path between an AI agent (Claude, Cursor, any MCP client) and your Postgres database. Every statement is parsed into a real Postgres AST — not matched against a regex blocklist — checked against a declarative per-table policy, rewritten so masked columns never leave the database in the clear, and recorded in an event-sourced audit log before it executes.
📖 Full documentation lives at midplane.ai/docs —
agent setup, the policy reference, self-hosting, deployment, and the threat model.
This README is just the orientation.
Why this exists
AI coding agents are being plugged into production Postgres without an audit trail or a safety layer. The deprecated Anthropic reference Postgres MCP shipped a stacked-statement injection vector (Datadog Security Labs, 2025); the common service-role setup hands an agent a connection that can read and write every table. So the tables that would make an agent genuinely useful — customers, orders, subscriptions — stay off-limits, because "a read-only role and good intentions" isn't a control anyone can show a security reviewer. Midplane is that control.
What it does
the query's source relation, so the raw value never leaves Postgres — masking applies inside joins, filters, and aggregates rather than being scrubbed out of the rows on the way back. Transforms range from full-redact and null-out to consistent-hash (deterministic, salted, so masked join keys still join), partial, generalize, pseudonymize, and noise. It fails closed: anything the engine can't prove is masked — an unvetted function that could read the table behind the parser's back, a result column whose provenance doesn't map to a known base column — denies the query rather than risk an unmasked value.
- PII masked at the source. Declare a column masked and the engine rewrites
— Postgres's own parser — and checked against a per-table policy of deny / read / read_write, plus optional tenant scoping and categorical write guardrails. The walk is recursive, so a write buried in a CTE, subquery, or UNION arm is caught at the write, not at the outer SELECT.
- Policy enforced on the SQL AST. Every statement is parsed by libpg_query
engine pauses the statement after the policy has allowed it and asks a human. The agent gets a check_approval tool and re-runs when the answer lands; a denial carries the reviewer's note back, so "use the refunds table instead" reaches the agent. Approvals sit under the policy, never over it — nothing the policy denied can be approved into running.
- Writes held for human approval. Opt a write class into approvals and the
agent, which token, the statement, the decision and its reason, and which columns were masked. Local SQLite for the standalone engine; a queryable, exportable audit log in the app.
- Everything audited. An event-sourced log written before execution: which
What it blocks
Out of the box, before you configure anything:
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Midplane: common questions
- Is Midplane MCP server safe?
- Mostly: it is graded B (80/100). Read the Midplane safety report
- How do I install Midplane?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Midplane need an API key?
- Yes. The registry entry asks for
MIDPLANE_TOKEN. - Is Midplane maintained?
- The last commit was 6 days ago (2026-10-30). The latest release is v0.26.1.
- What can I use instead of Midplane?
- Servers from other publishers that do the same job: Appwrite MCP server, Airtable MCP server and Ekwo OS — open source accounting: ledger, invoices and VAT on your own Supabase or Postgres MCP server.
- How does Midplane compare with other Databases MCP servers?
- safety score 80/100 (higher than 50% of 802 Databases servers); tools 5 (the typical Databases server has 8); tools that change things 40% (typical: 9%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Midplane
Same job from other publishers: the closest match first, then the best rated.
- AppwriteBuild and deploy backends: auth, Postgres/MySQL/vector databases, storage, functions, hosting, CDNnot reviewedEstablishedA
AirtableRead and write access to Airtable database schemas, tables, and records.not reviewedEstablishedB- Ekwo OS — open source accounting: ledger, invoices and VAT on your own Supabase or PostgresDouble-entry books an agent keeps as the user: invoices, VAT returns, 174 country packs.not reviewedEstablishedA
- Run402x402 pay-per-call infra for agents: $0.03 image generation, Postgres, auth, storage, functions.not reviewedEstablishedA
- NeonOfficial Neon MCP server for managing Neon projects and Lakebase Postgres databases.not reviewedEstablishedA