CLI tool to inspect MySQL DDL files for Claude Code and scripts
Strong tool naming (all verb_noun pattern), clear descriptions (avg 150 chars, well within 10-1024 range), and complete Zod schemas with parameter descriptions. All 11 tools follow consistent patterns. Output schemas are documented in descriptions but not formally specified in code. Error handling is basic (ScoutError wrapper) but lacks recovery guidance. No tool annotations (readOnlyHint, etc.) despite all being read-only operations. Parameter descriptions are good but could be more prescriptive about constraints and formats.
Return the node-sql-parser CREATE TABLE AST for a single table. Use only for parser debugging or custom tooling.
Return column names only for one or more tables. Prefer this over ddl_get_fields_info when you do not need types or metadata.
Return column metadata for a single table: types, nullability, defaults, ENUM/SET values, and generated columns.
Return primary keys, indexes, unique constraints, and foreign keys for one or more tables. One table returns a flat object; two or more return an array.
Return incoming foreign keys from other tables that point to a single table (same shape as referenced_by in ddl_get_relations).
Return outgoing foreign keys declared by a single table (same shape as references in ddl_get_relations).
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Agents cannot infer safety properties without explicit hints.
Error handling returns generic ScoutError messages without recovery guidance. Errors like 'Table not found' should suggest next steps (e.g., 'Try ddl_list_tables to discover available tables').
Output schemas are described in tool descriptions but not formally documented. Agents cannot parse expected response structure without explicit schema definitions in code or documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Return declared foreign keys for a table in both directions: outgoing references and incoming referenced_by.
List all table names in a DDL folder. Use this first to discover tables instead of guessing names.
Search table names by one or more case-insensitive substrings. Use when the schema is large and you know part of a name.
Search table names by one or more case-insensitive regular expressions. Use only when substring search is not enough; prefer ddl_search_tables for simple lookups.
Check whether one or more table DDL files exist and return their absolute paths when found.
Parameter descriptions lack format constraints. E.g., 'ddl_folder' should specify 'absolute or relative path; will be resolved relative to current working directory' and 'patterns' should clarify case-insensitivity behavior.
No pagination or result limits documented. Tools like ddl_list_tables could return thousands of table names; descriptions should specify max results or pagination strategy.