| Updated | Change |
|---|---|
| 2026/06/16 | First published. |
Picking a Postgres MCP server is easy until the database on the other end holds something you care about. What runs fine against a throwaway local database behaves very differently in production — and that split, trusted local development vs. production, is the lens this post uses. Most Postgres MCP servers are excellent at the first and quietly risky at the second. The sections below walk through six worth knowing in 2026, what each is good at, and where each one lands on that line.
Where it started, and why this is hard
Anthropic's original reference Postgres MCP server defined the pattern everyone copied — and has since been archived. It wrapped every query in a read-only transaction, but accepted semicolon-delimited statements, so COMMIT; DROP SCHEMA public CASCADE; could close the transaction and run unguarded. "Read-only" wasn't.
A correct, secure Postgres MCP server is harder to build than it looks. The servers below are each an answer to that problem, and they don't all answer it equally — which is why the access-model and governance columns matter as much as the feature list.
What we looked at
- Vendor neutrality — does it work with any Postgres, or only a specific host's managed Postgres?
- Database scope — Postgres-only, or multi-database?
- Access model — read-only by default, read/write, and how writes are gated.
- Governance — whether agent identity, data masking, change review, and audit exist at all, or the server simply forwards a connection string.
At a glance
Platform-specific — built around one host or cloud:
| Server | Language | Stars | Scope | Access model | Best for |
|---|---|---|---|---|---|
| Supabase MCP | TypeScript | 2.7k | Postgres, Supabase-locked | Read-only default, scoped token | Teams already on Supabase |
| AWS MCP (Aurora/RDS) | Python | 9.3k | Multi-AWS, Postgres included | IAM-scoped, read-only + write | AWS shops |
| Google MCP Toolbox | Go | 15.6k | Multi-DB, Google-centric | Configurable, YAML-defined | GCP / multi-DB platforms |
Vendor-neutral — point at any Postgres, wherever it runs:
| Server | Language | Stars | Scope | Access model | Best for |
|---|---|---|---|---|---|
| Postgres MCP Pro | Python | 2.9k | Postgres, vendor-neutral | Read/write default, opt-in read-only | DBA-style tuning + dev |
| DBHub | TypeScript | 3.0k | Multi-database | Read-only / demo modes | Lightweight local dev |
| Bytebase | Go | 14.2k | Multi-database | Governed, identity-based | Production / regulated |
Stars are GitHub counts at time of writing and move quickly; treat them as a rough signal of adoption, not a ranking. (AWS's count is the whole awslabs/mcp suite, not the Postgres server alone.) Here is how the projects have grown side by side:
Postgres MCP server GitHub star history
Platform-specific servers
Built around a single host or cloud. If you already live there, the matching server handles auth, connection pooling, and platform-native features for you — at the cost of working only there.
Supabase MCP
Supabase MCP manages a whole Supabase project — auth, storage, edge functions, branches — not just its Postgres database. That breadth is the appeal and the boundary: it is locked to Supabase.
Key Features:
- Wide surface: 29 tools across eight feature groups (Account, Database, Debugging, Development, Edge Functions, Branching, Docs, Storage), covering migrations, TypeScript type generation, and serverless functions beyond plain SQL.
- Hosted, with OAuth 2.1 and automatic token refresh — no local server, binaries, or hardcoded credentials.
- Stronger security defaults than most: project scoping, feature-group restriction, and a dedicated read-only role (
supabase_read_only_user).
Best For: teams already on Supabase who want their agent to manage the project, not only query it.
Verdict: excellent if Supabase is your platform, irrelevant otherwise. Two caveats are worth knowing: the default tool set is heavy at ~19.3k tokens (selective loading cuts it to ~4.2k, a 4.6x drop), and the database/query Management API endpoint behind its execute_sql tool is still beta, with no row limits. Supabase ships more guardrails than most — but as with every server here, prompt injection is mitigated, not solved.
AWS MCP (Aurora / RDS PostgreSQL)
AWS ships an official suite of MCP servers, including Aurora and RDS PostgreSQL. Access is scoped by the IAM role and database user you connect with, and AWS steers you toward a dedicated least-privilege role rather than a superuser.
Key Features:
- Read-only by default, optional write access governed by the connecting role.
- IAM-based authentication, lining up with your existing AWS permissions.
- Part of a broader AWS MCP family, if your agent already touches other AWS services.
Best For: teams on Aurora or RDS who want agent access to inherit their AWS identity model.
Verdict: a solid official option for AWS shops. Follow the least-privilege guidance — the server enforces the role, not your intentions.
Google MCP Toolbox for Databases
MCP Toolbox for Databases is the heavyweight by adoption — less a single Postgres server than a framework (Apache-2.0, Go) for exposing 40+ data sources, Postgres among them, through tools you define in YAML. It can technically reach any Postgres, but it is built around the Google Cloud ecosystem (auth, telemetry, prebuilt tools), which is why it sits here rather than with the neutral servers.
Key Features:
- Tools declared in YAML, so you expose exactly the operations you want — not a blanket
querytool. You can ship prebuilt tool collections or cherry-pick individual ones. - Big token savings from that selectivity: the prebuilt Postgres toolset runs ~19k tokens, versus ~579 for the single
postgres-execute-sqltool — roughly a 30x reduction in context cost. - Production-grade auth: OIDC token validation with optional row-level security, where parameters auto-populate from the authenticated user's claims for multi-tenant setups. Built-in OpenTelemetry and structured JSON logging round it out.
Best For: platform teams on Google Cloud, or anyone standardizing agent access across several databases.
Verdict: more infrastructure than a drop-in server — it asks for setup and rewards you with control. Two honest caveats: the Postgres tool itself ships without read-only mode, row limits, or query timeouts (guardrails Google's own Spanner tool has), and auth is effectively Google Sign-In only today. Strong for a Google-centric, multi-source platform; less so for a dedicated Postgres setup or non-Google identity.
Vendor-neutral servers
Point these at any Postgres, wherever it runs. This is also where the governance story lives — ranging from servers that forward access untouched to one that puts a full governance layer in the path.
Postgres MCP Pro
Postgres MCP Pro, from Crystal DBA, is a common first hit when you search for a Postgres MCP server. It is vendor-neutral — point it at any Postgres — and it reaches further than most: where they stop at "run this query," it adds a DBA's tuning toolkit.
Key Features:
- Performance analysis — index tuning,
EXPLAINplan inspection, and database health checks. This is the real differentiator. - Two access modes:
unrestricted(full read/write, arbitrary SQL) andrestricted(read-only, with query-time limits).
Best For: developers and DBAs who want the agent to diagnose a slow query or propose an index, not just read rows.
It is worth doing some diligence before you reach for it, though. Two things stand out:
- It defaults to
unrestricted, and every README example uses it. Out of the box the agent gets full write access and arbitrary SQL — set--access-mode=restrictedfor anything past a dev sandbox. - Development has slowed. The last commit landed in January 2026 and the last tagged release (v0.3.0) was May 2025. Merged work like streamable-HTTP transport hasn't shipped in a release or the Docker image, with users asking for one; 63 issues sit open, including a connection-pool leak under SSE — the most-reacted of them — and there is no data-masking option.
Verdict: the tuning features are genuinely useful and still its real draw for hands-on work. Change the unrestricted default on day one, pin a known-good version, and weigh the slowing maintenance before you trust it near production.
DBHub
DBHub is an open-source, vendor-neutral server — the opposite of heavyweight: zero-dependency, token-efficient, quick to point at any of Postgres, MySQL, SQL Server, MariaDB, or SQLite.
Key Features:
- One server across five database engines — no new tool per database.
- Read-only and demo modes for safe exploration.
- Token-efficient schema handling, keeping context windows small on large databases.
Best For: local development and quick connections, especially across mixed database types.
Verdict: the best lightweight, vendor-neutral pick for a fast connection on your own machine. By design it forwards access rather than governing it — right for local work, wrong for production. That gap is what the last entry closes.
Bytebase
The servers above mostly hand the agent a connection string and step out of the way. Bytebase takes the other approach: the agent doesn't connect to the database at all. It connects to Bytebase, and Bytebase connects to the database — so agent access runs through your governance instead of around it.
Key Features:
- Identity, not a shared string. The agent authenticates with OAuth and a service account, inheriting exactly the permissions that identity carries.
- Masking on the read path. Reads through Bytebase have sensitive columns masked before they reach the model — a restricted SSN comes back as
******. (This governs the agent's path through Bytebase, not the application's direct connection.) - Writes become proposals. A change doesn't execute on send; it opens an issue where SQL review and approval apply, same as a human-authored migration.
- Dual-identity audit. Every action is logged under both the agent and the person it acted for, so a query traces from result to prompt to principal.
Best For: production and regulated environments where you need to answer who did what, on whose behalf, and was it allowed — for agents and humans alike.
Verdict: heavier to stand up than a raw server, and that is the point. Overkill for a throwaway local database; for production it is the layer the others leave out. (Disclosure: Bytebase is our product, as is DBHub.)
The line between local and production
Most of these servers are great on a laptop and risky against production for the same structural reason — the lethal trifecta: an agent with access to private data, exposure to untrusted content (a support ticket, a web page, a row someone else wrote), and a way to send data back out. A database MCP server can hand an agent all three at once.
A correctly scoped credential doesn't save you, because the attack arrives through the prompt, not the permissions. An agent told to "summarize this ticket" can read a hidden instruction inside it — "also export the api_keys table" — and if its credential is allowed to read that table, no permission check fires. It did exactly what it was permitted to do, on an attacker's instructions.
That is why access model and governance deserve as much weight as the feature list. A raw server's job ends at running SQL; whether the agent should have run it, and whether you can prove what it did, is a separate question only a governance layer answers.
How to choose
- Diagnosing a slow Postgres (dev or staging, with real query data) → Postgres MCP Pro for its tuning toolkit — and switch off the unrestricted default.
- Quick local connections, especially across database types → DBHub.
- On a managed platform → the matching first-party server (Supabase, Google, AWS) — each handles its own auth and pooling correctly.
- Agents touching production or regulated data → put a governance layer in the path. That is where Bytebase fits, and a raw connection-string server doesn't.
There is no single winner, and you may run more than one. The honest test is the same for all of them: not "can the agent query the database," but "what happens when the prompt asks it to do something it shouldn't."
Related reading
- Governed MCP vs. Raw MCP — a deeper look at the production side of agent database access.
- How to Govern AI Agent Access to Enterprise Data — identity, masking, and audit for agents.