Multi-database MCP server supporting PostgreSQL, MySQL, SQLite, and MongoDB with connection management, query execution, schema exploration, and administrative tools
Server has 17 tools with basic schemas and descriptions, but significant gaps limit production readiness. Most tools have descriptions (194-char baseline met for ~60%), but many parameter descriptions are minimal or missing. Schemas are present but lack depth, no enums for constrained inputs (db_type, query validation), no pagination support despite list operations, and no documented output schemas. Error handling exists but lacks recovery guidance. Tool naming follows verb_noun convention well (get_, list_, execute_, etc.), but composition issues exist: cleanup_idle_connections and cleanup_stale_connections are near-duplicates (max_idle_minutes vs max_idle_hours), and connect_database exposes credentials as parameters (critical security flaw). No tool annotations (readOnlyHint, destructiveHint) despite clear risk classifications in metadata.
Clean up connections that have been idle for specified time.
Clean up connections that have been idle for too long.
Connect to a database with provided credentials.
Disconnect from a database.
Execute multiple queries in sequence.
Execute a SELECT query on a connected database.
Get the execution plan for a query without executing it.
Credentials exposed as tool parameters: connect_database accepts username, password, host as parameters. Credentials must never appear in tool params, they are logged in traces and prompt history. Use server-side secret injection via environment variables or vault.
Duplicate/near-duplicate tools: cleanup_idle_connections (max_idle_minutes) and cleanup_stale_connections (max_idle_hours) perform the same function with different parameter names. LLMs conflate similar names. Consolidate into one canonical tool with a single time-unit parameter.
No enum constraints for constrained inputs: db_type parameter accepts 'postgresql, mysql, sqlite, mongodb' as free-form strings. Declare as enum to prevent hallucinated values and enable LLM to pick valid options.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Get detailed information about a specific connection.
Get detailed metrics for connections.
Get comprehensive status information about the database server and connections.
Get schema and table information from a database.
Perform a security audit of current connections and configurations.
Get detailed information about a specific table.
List all active database connections.
Test a database connection to verify it's still active.
Validate connection parameters before attempting to connect.
Validate if a query would be allowed by the security filter.
No output schemas documented: Tools return JSON responses but output structure is not formally documented. LLMs cannot plan downstream calls or extract fields reliably without knowing response schema. Document all return types.
No tool annotations despite clear risk classifications: Metadata shows Risk: READ_ONLY vs WRITE, but tools lack readOnlyHint/destructiveHint annotations. Agents cannot distinguish safe from destructive operations without explicit hints.