MCP server for executing read-only SQL queries against a PostgreSQL database
Single tool with basic schema and description. Tool name 'run_sql_query' is generic and lacks action clarity (verb_noun pattern weak, 'execute_select_query' would be clearer). Description is adequate (73 chars) but lacks WHEN to use it, prerequisites, or output format guidance. Input schema present with type and description, but no output schema documented. Error handling returns isError flag but lacks recovery guidance. No parameter constraints (e.g., max query length, timeout). Missing pagination, result limits, and structured output documentation.
Executes a read-only SQL query (SELECT statements only) against the products database.
No output schema documented. LLMs cannot plan downstream operations or extract structured data from JSON results. Baseline: 100% of A+ tools document return types.
Tool name 'run_sql_query' is generic and lacks clarity. 'execute_select_query' or 'query_products_db' would better signal intent. Baseline: 90% of A+ tools start with clear action verbs.
No result limits or pagination documented. Tool can return unbounded result sets, risking context window exhaustion. Baseline: A+ tools cap results at 20-50 items and offer pagination.
Error messages lack recovery guidance. 'SQL Error: ...' tells LLM nothing about next steps. Should suggest: 'Check query syntax' or 'Try a simpler SELECT'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Query parameter has no constraints (max length, timeout, complexity limits). LLMs can pass arbitrarily large or expensive queries. Should document: 'Max 10,000 chars, 30-second timeout'.