AI Coding Agent with tool registry and LLM provider abstraction
This MCP server has severe definition quality gaps. Only 2 of 10 tools (list_tables, query) have visible schemas in the source code. The remaining 8 tools (read_file, write_file, edit_file, grep, glob, bash, list_files, ask_user) are referenced but their definitions are not present in the provided source. Of the 2 visible tools, both have minimal descriptions (under 50 chars) and sparse parameter documentation. The bash tool is particularly dangerous, it accepts arbitrary shell commands with no input validation, no description visible, and no error guidance. No tool has documented output schemas. Error handling is minimal (basic try-catch with generic error messages). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present despite clear risk levels (WRITE, IRREVERSIBLE operations).
List all tables in the SQLite database
Execute a read-only SQL query
8 of 10 tools have no visible schema definitions in source code. Only list_tables and query are defined in sqlite-server.ts; the remaining tools (read_file, write_file, edit_file, grep, glob, bash, list_files, ask_user) are referenced but not implemented in provided source.
bash tool accepts arbitrary shell commands with no input validation, no description, and no error guidance. This is a critical security and usability gap. Agents can execute destructive commands without constraints.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels: write_file and edit_file are WRITE operations; bash is IRREVERSIBLE. LLMs cannot distinguish safe from dangerous tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 31 | 2026-07-28+ | v2 |
Descriptions for list_tables ('List all tables in the SQLite database', 34 chars) and query ('Execute a read-only SQL query', 30 chars) are below the 50-char minimum for LLM clarity. No parameter descriptions for 'sql' parameter beyond 'The SQL query to execute (SELECT only)'.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data. Error responses are generic text without recovery guidance.