MCP server for PostgreSQL — query and inspect databases via AI assistants
Three tools with basic schemas and minimal descriptions. All tools have input schemas with proper types, but descriptions are generic and lack context for LLM selection. No parameter descriptions beyond the bare minimum. No output schema documentation. No error handling guidance. Missing idempotency hints, dependency documentation, and recovery paths. Naming is acceptable (verb_noun pattern) but descriptions fail to explain WHEN to use each tool or what distinguishes them.
Show columns, types, and constraints for a table
List all tables in the database with their column info
Run a read-only SQL SELECT query against the database
No output schema documentation. Tools return JSON text blobs without describing field structure, types, or what the LLM should extract. LLMs cannot plan downstream calls or validate results.
Parameter descriptions missing or trivial. 'sql' param lacks format/constraint guidance (e.g., 'SELECT only, no INSERT/UPDATE/DELETE'). 'table' param has no hint about case sensitivity or schema qualification.
Tool descriptions lack context for selection. 'Run a read-only SQL SELECT query' does not explain when to use query vs list_tables vs describe_table. No guidance on prerequisites or dependencies.
No error handling guidance. query tool rejects non-SELECT with a plain text message. No recovery hints (e.g., 'Only SELECT allowed; use list_tables to explore schema'). No categorization of errors as retryable or user-fixable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
list_tables has empty inputSchema properties but no description of what it returns or when to call it. LLM cannot infer that this is a discovery tool to call before query or describe_table.