A self-contained JDBC MCP server for database querying and schema exploration
Three tools with clear verb-noun naming (execute_query, get_tables, get_columns) and basic parameter schemas. Descriptions are present but generic (10-50 chars). All tools have input schemas with types and descriptions, meeting baseline requirements. However, output schemas are not documented in tool definitions, only visible in implementation code. Parameter descriptions lack actionable constraints (e.g., no enum for schema parameter, no format guidance for query). Error handling exists in code but not surfaced in tool definitions. Security validation (SELECT-only check) is implemented but not declared in tool metadata.
Execute a SELECT query and return results
Get column information for a table
Get list of tables in the database
Output schemas not documented in tool definitions. LLMs cannot predict response structure (columns, rows, row_count, has_more for execute_query; tables, count for get_tables; columns, count for get_columns). Forces LLMs to guess field names and types.
Parameter descriptions lack actionable constraints. 'Schema name to list tables from' does not explain format, length, or valid values. 'SQL SELECT query to execute' does not document the SELECT-only restriction or injection prevention. LLMs cannot self-correct invalid input.
Tool descriptions are too short (10-50 chars). 'Execute a SELECT query and return results' lacks context on when to use vs alternatives, prerequisites (connection state), or result limits. Baseline for A+ tools is 50-200 chars.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | <=2025-11-25 | v2 |
No error recovery guidance in tool definitions. Code raises JdbcError with messages, but tool metadata does not document error categories (retryable vs fatal) or recovery steps. LLMs cannot plan error handling.
Security validation (SELECT-only check) is implemented in code but not declared in tool metadata. No tool annotation (readOnlyHint) or description note that this tool is read-only and safe to retry. Agents cannot reason about safety.