Index Agentica

Database MCP servers compared

Google's MCP Toolbox for Databases and the MongoDB, Neon and Supabase MCP servers compared on what they connect to, where they run, how they authenticate, how read-only mode and scoping work, and what guards their write tools.

Type
Comparison
Author
Agentica Author
Published
Last verified

Comparison

Database MCP servers compared
EntryConnects toWhere it runsAuthRead-only modeScoping and tool filtersWrite safeguardsIntended useLicense
MCP Toolbox for DatabasesMany engines: AlloyDB, BigQuery, Cloud SQL (PostgreSQL, MySQL, SQL Server), Spanner, Firestore, PostgreSQL, MySQL, SQL Server, Oracle, MongoDB, Redis, Elasticsearch, ClickHouse, Neo4j, Snowflake and moreYou run it: binary, container, Homebrew or npx @toolbox-sdk/server; stdio (--stdio) or HTTP at :5000/mcp; deployable to Cloud Run. Google also offers managed Google Cloud MCP serversDatabase credentials in tools.yaml or env vars; optional auth services (Google Sign-In, generic OIDC) for authorized tool calls and parameters filled from token claims; OAuth 2.1 resource-server mode for the whole MCP endpointEngine-level session lock, write-tool pruning and readOnlyHint for Cloud SQL PostgreSQL and MySQL, AlloyDB and BigQuery (env var or readOnly: true on a source). For other engines, use a SELECT-only database userPrebuilt toolsets (--prebuilt=postgres/data loads 8 of 29 tools); custom tools.yaml with fixed, parameterized SQL; toolsets served at /mcp/<toolset>readOnlyHint annotations for client approval, which the docs say are not a security boundary; optional screening of traffic with Google Cloud Model Armor; the docs recommend database permissions and parameterized toolsPrebuilt configs are for build-time use with trusted developers; custom tools are the path for production agentsApache-2.0
MongoDB MCP ServerMongoDB (any cluster by connection string) and the MongoDB Atlas admin APILocal: npx mongodb-mcp-server or Docker; stdio by default, HTTP bound to 127.0.0.1. For Atlas, MongoDB recommends its hosted Atlas MCP server over OAuth (the mongodb-atlas plugin)Connection string; Atlas service-account client ID and secret for Atlas tools; OAuth on the Atlas-managed server--readOnly (MDB_MCP_READ_ONLY) keeps only read, connect and metadata tools; without Atlas credentials that took the tool count from 27 to 18 in our dry run--disabledTools by name, operation type or category; result caps of 100 documents and 16 MiB per query by default; optional indexCheck rejects collection scansConfirmation through MCP elicitation for drop-database, drop-collection, delete-many, drop-index and some Atlas tools, and for $out or $merge pipelines; runs without confirmation if the client lacks elicitation. Results are wrapped with a prompt-injection warning by defaultRuns next to one agent or IDE by default; for shared servers MongoDB points to the Atlas-managed server or building on its libraryApache-2.0
Neon MCP ServerNeon serverless Postgres: SQL plus the Neon Management API (projects, branches, computes, roles, migrations, logs)Hosted only, at https://mcp.neon.tech/mcp (Streamable HTTP; SSE at /sse is deprecated). The repository is the remote server's sourceOAuth with read and write scopes, or a Neon API key as a Bearer header; neon init can set it upreadonly=true on the URL, or untick Allow writes on the OAuth consent page; run_sql then runs each query in a READ ONLY transaction and connection strings are withheld (119 tools published unfiltered, 51 read-only)projectId, category and roleName URL parameters (roleName pins the Postgres login role for SQL); with OAuth they are fixed at consent. /api/list-tools previews the tool set without authBranch-based migrations (prepare, then complete); README asks you to review every action before it runsLocal development and IDE integrations only; Neon does not recommend it in productionMIT
Supabase MCP ServerSupabase projects: Postgres SQL and migrations, logs and advisors, Edge Functions, branching, storage config, docs search and account toolsHosted at https://mcp.supabase.com/mcp; also built into the Supabase CLI (localhost:54321/mcp) and self-hosted Supabase, each with a subset of tools and no OAuth 2.1; npm package can serve your own endpointOAuth 2.1 with dynamic client registration; a scoped personal access token in the Authorization header for CI; or a manual OAuth appread_only=true runs all queries as a read-only Postgres user and drops mutating toolsproject_ref scopes to one project and hides account tools; features= picks tool groups (storage is off by default)Elicitation forms confirm destructive SQL and paid project or branch creation when the client supports them; SQL results are wrapped with anti-injection instructionsA developer tool; Supabase says not to give it to your customers or end usersApache-2.0

Verdict: For a coding agent on a Neon or Supabase project, the vendor's hosted server with read-only mode and one-project scoping is the least setup. For MongoDB, run the MongoDB server with --readOnly. For other engines, or for agents that run unattended in production, use MCP Toolbox with custom parameterized tools and a least-privilege database user, because a read-only flag on raw SQL is only as strong as what the database itself enforces.

What this covers

A database MCP server lets an agent look at schemas, run queries and, if you allow it, change data. The four here are the ones most agents meet: Google's engine-agnostic MCP Toolbox for Databases, and the vendor servers for MongoDB, Neon and Supabase.

What was checked by running things on 2026-10-18:

What "read-only" actually enforces

The flag has the same name everywhere but works differently in each server:

Whichever server you use, the strongest control is the database role the server connects as.

Confirmation prompts depend on the client

MongoDB and Supabase can pause a risky tool call and ask the human through MCP elicitation. MongoDB asks before drop-database, drop-collection, delete-many, drop-index, some Atlas tools, and aggregation pipelines with $out or $merge. Supabase asks before destructive SQL and before creating paid projects or branches. Both docs add caveats. If the client does not support elicitation, MongoDB runs the tool without asking, and Supabase calls its prompts "a guardrail, not a guarantee", since some clients can answer them automatically. Supabase's skip_elicitations URL parameter turns specific prompts off. Treat these prompts as a convenience on top of read-only mode and scoping, not as a replacement.

Scoping an agent to one project

Untrusted data in results

Rows can contain text written by your users, and a prompt-injection payload in a support ticket is Supabase's own example of the risk. Supabase wraps SQL results with instructions telling the model not to follow commands in the data. MongoDB wraps results in delimiters with a warning unless you set disableUntrustedDataWarning. Neither is foolproof, so combine them with read-only access and human review of writes. Agent auth and delegated access covers giving an agent narrower credentials than your own.

Other things to know

Directory entries in this comparison

Related

Sources

Machine-readable