Database tools via Model Context Protocol - Natural language interface for database queries
Server has 5 tools with visible schemas and descriptions, but quality is significantly below production baseline. Tool names lack clear action verbs (say_hi is non-standard). Descriptions are minimal (10-50 chars, well below 194-char baseline). Parameter descriptions are sparse or missing entirely, most params lack any guidance on format, constraints, or purpose. No output schemas documented. Error handling is present but minimal. The execute_update tool exposes destructive operations without confirmation or dry-run support. Overall, this reads as a prototype rather than production-ready tooling.
Get schema information for a table
Execute a SELECT query
Execute an INSERT/UPDATE/DELETE/CREATE/DROP query
List all tables in the database
Responds to hi
say_hi tool name violates verb_noun convention and is non-standard for production. Should be 'respond_to_greeting' or removed entirely as a demo tool.
Parameter descriptions are missing or minimal. 'table_name' in describe_table has no description. 'query' in execute_query and execute_update lack format guidance, constraints, or examples of valid SQL. LLMs cannot infer parameter meaning from names alone.
No output schemas documented. Callers cannot predict response structure. list_tables returns JSON array of table objects, but this is inferred from code, not declared in tool metadata.
execute_update tool allows destructive operations (INSERT/UPDATE/DELETE/CREATE/DROP) without confirmation, dry-run, or permission checks. No recovery guidance in error responses. Agents can accidentally destroy data.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Tool descriptions are too brief (10-50 chars vs 194-char baseline). 'Execute a SELECT query' does not explain when to use it vs describe_table, what it returns, or how to handle errors. LLMs cannot reliably select the right tool.