| FMRS | 50 / 100 · D | 74 / 100 · B | 74 / 100 · B |
| Reliability | 8 / 20 | 13 / 20 | 13 / 20 |
|---|
| Security and permissions | 10 / 20 | 13 / 20 | 13 / 20 |
|---|
| Maintenance | 9 / 20 | 17 / 20 | 16 / 20 |
|---|
| Documentation | 11 / 20 | 16 / 20 | 15 / 20 |
|---|
| Setup experience | 12 / 20 | 15 / 20 | 17 / 20 |
| Best for | - Developers and data teams that need AI-assisted MySQL schema inspection or querying
- Workflows that prefer read-only database access by default
- Deployments requiring SSH, SSL/TLS, or PII-redaction capabilities
| - 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
|
| Not for | - Environments that do not use MySQL
- Workflows requiring write access by default without explicit permission configuration
- Environments unable to provide suitable database credentials or network connectivity
| - 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)
|
| Required permissions | - Requires configuration for the MySQL host, port, username, password, and database name
- The database user needs privileges matching the intended queries and any enabled write operations
- Remote database access may require SSH tunnel configuration
- When write flags are enabled, the server can perform the corresponding insert, update, or delete operations
| - 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
|
| Risks and side effects | - Although read-only by default, enabled write flags can modify or delete data
- Database credentials are supplied through environment variables and should be protected
- SQL queries may expose sensitive data; PII redaction can help reduce exposure
- Misconfigured database privileges, SSL/TLS, or remote access may broaden data exposure
| - 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
|
| Supported clients | Claude Desktop, Claude Code | Claude Code, Gemini CLI, Zed, Antigravity | Claude Desktop, Claude Code, VS Code, Cursor, Zed |
| Tools | 1 | 0 | 2 |