A side-by-side look at the Db Access MCP and Universal Db MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Db Access MCP for databases work as a local process; choose Universal Db MCP for databases as a local process. You can also run both side by side in one mcpServers block.
dialect_list, connection_list, connection_find.POSTGRES_URI, SQLITE_PATH, MYSQL_URI, DUCKDB_PATH, ALLOW_DESTRUCTIVE, MAX_RESULT_ROWS, QUERY_TIMEOUT, RATE_LIMIT_RPM.query, schema, explain.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Databases | Databases |
| Quality signal | 56/100 · Good | 53/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | Not declared |
| Pricing | Not declared | Not declared |
| Required env vars | None listed | POSTGRES_URISQLITE_PATHMYSQL_URIDUCKDB_PATHALLOW_DESTRUCTIVEMAX_RESULT_ROWSQUERY_TIMEOUTRATE_LIMIT_RPM |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 1 |
| Directory activity | 1 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 11 | 8 |
| Full listing | View Db Access MCP | View Universal Db MCP |
dialect_listLists the supported database dialects: name (the `type` value for connections), default port and the plan format `query_plan` produces.connection_listLists configured connections: key, type, description, `read_only`, host/port/database, tunnel name, metadata. Credentials are **never** returned (allowlist-based sanitization; connection strings are parsed only for host/port/database).connection_findFinds connections by `host`, `port`, `database`, `type`, `read_only` and/or `metadata` key-value pairs. All filters are combined with **AND**. `user`/`password` filters are ignored (and noted in the response).connection_testEnd-to-end health check: secrets → tunnel → pool → one-row server-info query. Returns `ok: true` with server version/user/database/latency, or `ok: false` with the failure code and hint (an unreachable DB is a valid result, not a tool error).queryExecutes SQL on a connection. Accepts `connection`, `query`, optional `database` (see multi-database connections), `max_rows` and `timeout_ms` overrides. Results are truncated to the row cap with `truncated: true`.query_to_fileExecutes a query and writes the result to a file (`csv`/`jsonl`, inferred from the extension) instead of the model context. `file_path` is relative to the export dir (default `/tmp/db-access-mcp/exports`, created on demand), or an absolute/`~` path **under** the export dir or a configured `allow_ex…query_planReturns the execution plan without running the query: `EXPLAIN (FORMAT JSON)` for postgres, `EXPLAIN FORMAT=JSON` for mysql, text `EXPLAIN` for redshift, `SHOWPLAN_XML` for mssql.up_tunnelOpens (or reuses) the tunnel configured for a connection and returns `{host, port, tunnel_id, reused}`. Optional `local_port` binds an exact local port; if the tunnel is already open on a different port or the port is taken, the call fails with the current port in the error.down_tunnelCloses a tunnel by `tunnel_id`. By default only the up_tunnel pin is released — if query pools still hold the tunnel it stays open (`remaining_holders`); `force: true` drains the holder pools and closes it unconditionally.tunnel_listLists the tunnels currently open in this MCP instance with a live health probe: `tunnel_id`, tunnel name/type, local and remote endpoints, `healthy`, holder pools (`connections`), up_tunnel `pins`, external PIDs.config_reloadRe-reads the config files into the running server so connections/tunnels added or edited on disk become usable without a restart. **Never disturbs live state** — see below.queryExecute a SQL query against the database.
Supports parameterized queries for injection safety. In read-only mode, destructive
operations (INSERT, UPDATE, DELETE, DROP, etc.) are blocked.schemaGet database schema information: tables, columns, types, and constraints.explainGet query execution plan without running the query.healthCheck database connection health and get server version info.query_historyGet recent query execution history (most recent first).snapshot_schemaTake a snapshot of the current database schema for later drift detection.schema_diffCompare the current schema against the last snapshot taken with snapshot_schema.list_databasesList all configured databases and their connection status.
Returns:
JSON with list of databases including key, type, database name, and connection status.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"rheopyrin-db-access-mcp": {
"command": "npx",
"args": [
"-y",
"@rheopyrin/db-access-mcp"
]
}
}
}
{
"mcpServers": {
"universal-db-mcp": {
"command": "uvx",
"args": [
"universal-db-mcp"
],
"env": {
"POSTGRES_URI": "YOUR_POSTGRES_URI_HERE",
"SQLITE_PATH": "YOUR_SQLITE_PATH_HERE",
"MYSQL_URI": "YOUR_MYSQL_URI_HERE",
"DUCKDB_PATH": "YOUR_DUCKDB_PATH_HERE",
"ALLOW_DESTRUCTIVE": "YOUR_ALLOW_DESTRUCTIVE_HERE",
"MAX_RESULT_ROWS": "YOUR_MAX_RESULT_ROWS_HERE",
"QUERY_TIMEOUT": "YOUR_QUERY_TIMEOUT_HERE",
"RATE_LIMIT_RPM": "YOUR_RATE_LIMIT_RPM_HERE"
}
}
}
}