Skip to main content
You need a Postgres database (or Docker, for the sample one), Node 24.16 or newer, and an MCP client such as Claude Code.
1

Create a project

Midplane Cloud is invite-only for now: get access, and we’ll email you an invitation. Follow its link to create your account at eu.app.midplane.ai, verify your address, name your organization and create a project. Its overview opens on Connect your first database.
2

Name your database

Under Use my database, enter a Database id, such as shop: your name for the database in Midplane, not its Postgres name. Create the read-only role the step shows (prepare your database). No database at hand? Try the sample instead.
3

Run the gateway

Create enrollment token, pick This machine or A server (Docker), and run the commands the step shows. Put each connection string in the file it names. Once the gateway connects, the step lists each database as the gateway reports it (shop · reachable · catalog read: 12 tables), and it’s done when the gateway enforces the project’s policy (deploy the gateway).
4

Choose what agents may read

A new policy denies everything. Open shop’s policy from the step and set the tables agents may read; setting Default access to Read opens every table the policy doesn’t list, including tables created later. Review the columns that look like personal data, then Review and publish. Back to setup returns to the card.
5

Connect an agent

Run the claude mcp add command the step shows, then /mcp in Claude Code and Authenticate. Sign in, and choose which databases it may use.
6

Try it

Ask your agent one of the questions the step suggests about a table it may read, such as “How many rows are in public.customers?”. The card finishes with that query, and every statement shows up in the Query log.
Stuck? See troubleshooting.

With the sample database

No database at hand? On the first step, an owner or admin can choose Try with sample data. It creates a second project, Sample shop, with the database shop and the sample’s policy published: customers’ emails hashed and phones partly hidden, support ticket bodies untrusted, the API keys secret, and row changes held for approval. The project you started from stays as it is, for your own database. In the sample project, Run the gateway starts the sample’s Postgres with Docker, then the gateway on this machine on port 7434, so it can run beside one of your own. Its connection string is filled in (the password is a public example), and Choose what agents may read is already done. When Claude Code signs in, give it read and write on shop, then ask, in order:
  1. “List our customers with their emails and plans”: emails come back hashed, phones partly hidden.
  2. “Summarize the open support tickets”: the agent reads untrusted text and is tainted.
  3. “Show me the API keys”: refused, since a tainted agent can’t read secret tables.
  4. “Close ticket 2”: held. Approve it under Approvals.
To try Midplane with no account, the local quickstart runs the same sample with the policy in a file.