Electron App for manual SQL query approval with WebSocket-based MCP server. Enables LLMs to execute SQL queries against a database after user review and approval via desktop UI, Telegram bot, or remote access.
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation, error handling guidance, and output schema clarity. execute_sql has a WRITE risk designation but no confirmation/dry-run pattern. set_scripts_dir lacks context on when/why to call it. Neither tool documents return structure or error recovery paths. Descriptions are present but generic (194-char baseline for A+ tools; these are ~120-150 chars). Parameter descriptions exist but lack format/constraint details. No tool annotations (readOnlyHint, destructiveHint, idempotentHint). STDIO transport caps protocol readiness at 50, which cascades to overall quality perception.
Sends a SQL query to the dev database. The user will review and approve the query before execution. Returns the query results as JSON.
Sets the directory where SQL change scripts are stored. The UI will enable the Scripts browser and watch for new files. Call this once at the start of a conversation if you know the scripts path.
execute_sql marked WRITE risk but lacks confirmation/dry-run pattern. No guidance on irreversible consequences or how to prevent accidental destructive queries.
Output schema not documented. Tool returns JSON results but LLM cannot infer structure (fields, types, pagination). Baseline: 100% of A+ tools document return types.
Error handling lacks recovery guidance. Rejection/error responses return text but do not tell LLM what to do next (retry? ask user? abort?). Baseline: errors must categorize as retryable/user-fixable/fatal.
set_scripts_dir description (40 chars) is too brief and lacks context. When should agent call this? What happens if path is invalid? Baseline: 10 - 1024 chars, 194 avg for A+ tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Parameter 'query' lacks format/constraint hints. Should LLM validate syntax? Are there forbidden keywords? Baseline: descriptions must state format, range, allowed values.