Extract database schemas in compact TOON format from live databases or SQL dumps using read-only metadata
Single tool 'db2toon.extract_schema' has a well-structured JSON Schema with proper type definitions, enum constraints, and nested object validation. Description is comprehensive (280+ chars) and explains WHAT, WHEN, and prerequisites. Parameters are well-documented with descriptions and constraints (minLength, minimum, maximum, default values). However, output schema is not documented in the visible code, the tool description does not specify what fields the TOON format response contains, forcing LLMs to infer structure. Error handling guidance is absent. Tool naming is clear but could be more action-oriented (extract_schema vs get_database_schema). No tool annotations (readOnlyHint) despite being explicitly read-only.
Extract a database schema in compact TOON format from either a live database or a plain-text SQL dump using read-only metadata. Provide exactly one of db and dump. Dump contents are parsed offline and never executed. Use this tool for tables, columns, relationships, constraints, indexes, views, or database structure. Schema-only extraction is the default. Request example rows only when explicitly asked.
Output schema not documented. Tool description does not specify the structure of the TOON format response (fields, types, nested objects). LLMs cannot plan downstream processing or validate results.
No error recovery guidance. Tool description lacks actionable error messages or recovery hints (e.g., 'If connection fails, verify credentials and network access'). Agents cannot self-correct on failure.
Tool annotations missing. Despite being explicitly read-only, the tool lacks readOnlyHint annotation in the schema. This prevents clients from optimizing caching or safety policies.
Naming could be more action-oriented. 'extract_schema' is clear but 'get_database_schema' or 'describe_database_schema' would better match LLM verb-noun conventions (get_, describe_, list_).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Parameter 'timeout' uses Go duration string format (e.g., '30s') but description does not explain this format. LLMs may pass invalid values like '30' or '30 seconds'.