MCP server for database operations (PostgreSQL, MySQL, SQLite)
Server has 6 tools with basic schemas and descriptions, but significant gaps prevent higher scores. All tools have descriptions (10-80 chars, mostly adequate) and input schemas using Zod, but parameter descriptions are sparse or missing. The query tool lacks critical safety documentation (SQL injection risk, parameterization guidance). Output schemas are not documented, LLMs cannot predict response structure. Error handling is absent from visible code. No tool annotations (readOnlyHint/destructiveHint) despite clear risk distinctions (5 READ_ONLY, 1 WRITE). Naming is verb-forward and clear (query, list_tables, describe_table, execute_migration, get_schema, list_databases), meeting baseline conventions. However, parameter-level documentation is weak: 'sql' param in query tool has no guidance on parameterization, injection prevention, or expected format.
Describe the columns and schema of a specific table
Execute a SQL migration script with multiple statements
Get the full database schema as DDL statements
List all databases available on the connected server
List all tables in the connected database
Execute a SQL query against the configured database (PostgreSQL, MySQL, or SQLite)
query tool lacks SQL injection prevention guidance. Parameter 'sql' has no description explaining parameterized query requirement or how to pass params safely. LLMs may construct unsafe queries.
No output schemas documented. Tools return JSON strings but LLMs cannot predict field names, types, or structure. Downstream tool chaining is impossible without trial-and-error.
execute_migration tool (WRITE operation) has no confirmation step, dry-run option, or error recovery guidance. Agents can execute destructive migrations without safeguards.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk profile. 5 tools are READ_ONLY, 1 is WRITE, annotations would help agents reason about safety and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Parameter descriptions are minimal or absent. 'table_name' in describe_table has a description, but 'sql' in query and execute_migration lack guidance on format, constraints, or safety.