| FMRS | 74 / 100 · B | 74 / 100 · B | 68 / 100 · C |
| Verification | Source and config reviewed | Source and config reviewed | Source and config reviewed |
| Reliability | 13 / 20 | 13 / 20 | 15 / 20 |
|---|
| Security and permissions | 13 / 20 | 13 / 20 | 16 / 20 |
|---|
| Maintenance | 17 / 20 | 16 / 20 | 10 / 20 |
|---|
| Documentation | 16 / 20 | 15 / 20 | 14 / 20 |
|---|
| Setup experience | 15 / 20 | 17 / 20 | 13 / 20 |
| Best for | - Teams that want precise control over which database operations an AI can perform, rather than open arbitrary SQL execution
- Scenarios needing a unified MCP setup across multiple database engines
| - Scenarios wanting the smallest possible tool count and lowest context-window overhead for database access
- Cases needing to grant non-technical teammates safe, read-only database access
| - Analysts and developers exploring PostgreSQL data through natural language
- Teams exposing schema and query access through a dedicated read-only account
|
| Not for | - Lightweight cases that just want to run a few ad-hoc SQL queries without maintaining a tools.yaml config (a simpler single-database MCP may be a better fit)
| - Scenarios needing database administration operations (creating indexes, altering schema) rather than just querying (DBHub is positioned as a query tool, not a DBA management tool)
| - Workflows that require writes, migrations, or database administration
- Sensitive databases whose query results cannot enter a third-party model context
|
| Required permissions | - Database credentials (username/password/connection string) are supplied via env vars or config
- A tool's actual permission is whatever SQL statement is defined in tools.yaml — designed for least privilege, but misconfiguration can still over-expose access
| - Requires a database connection string (DSN), which may contain sensitive credentials
- execute_sql can run arbitrary SQL (including writes) by default — must be constrained via read-only mode or the underlying database account's own permissions
| - Network access to PostgreSQL
- A dedicated read-only account with SELECT access to the intended schemas
|
| Risks and side effects | - If tools.yaml defines SQL statements that allow unconstrained writes or deletes, the AI could accidentally modify data
- The prebuilt toolsets (--prebuilt) favor convenience and may expose broader query capability than a specific business actually needs — use a custom tools.yaml in production
| - Under default settings, if the connected database account has write access, execute_sql could let the assistant perform an unintended write or delete — pair with a read-only database account in production
- The DSN contains a plaintext password — pay attention to the access permissions on wherever the config is stored
| - Query results may contain personal or business-sensitive data
- Complex read queries can still consume significant resources; use timeouts and a read replica
|
| Supported clients | Claude Code, Gemini CLI, Zed, Antigravity | Claude Desktop, Claude Code, VS Code, Cursor, Zed | Claude Desktop, Cursor, Cline |
| Tools | 0 | 2 | 4 |