Single tool 'query' has a basic description and minimal schema. The tool name lacks a verb prefix (should be 'execute_query' or 'run_query'), violating naming conventions. Input schema defines only 'sql' as a string with a short description. No output schema is documented, LLMs cannot predict the structure of returned rows. Error handling returns text responses rather than structured error objects with recovery guidance. The tool lacks parameter constraints (e.g., query length limits, timeout hints) and does not document what fields are returned or how pagination works for large result sets.
Execute a read-only SQL query
Tool name 'query' lacks action verb prefix. Should be 'execute_query' or 'run_query' to signal intent clearly to LLMs.
No output schema documented. LLMs cannot predict the structure of result.rows or plan downstream operations. Must document that output is JSON array of objects with column names as keys.
Parameter 'sql' lacks constraints. No mention of max query length, timeout behavior, or examples of valid queries. Description is only 28 characters, below the 50-char minimum for clarity.
Error handling returns unstructured text ('Query error: ...') instead of actionable recovery guidance. LLMs cannot determine if error is retryable or user-fixable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
No pagination or result-limiting mechanism. Large result sets will blow context windows. Tool description should state max rows returned and offer limit/offset parameters.