A Model Context Protocol (MCP) server that enables secure interaction with MySQL databases. This server allows AI assistants to list tables, read data, and execute SQL queries through a controlled interface, making database exploration and analysis safer and more structured.
Single tool 'execute_sql' has a basic schema and minimal description. The tool name is clear (verb_noun pattern), but the description is only 44 characters, below the 50-200 char baseline for LLM-optimized descriptions. The input schema is present with proper JSON Schema structure, but lacks parameter descriptions beyond a bare string type. No output schema is documented. The tool performs a destructive operation (WRITE risk) but has no confirmation pattern, dry-run capability, or error recovery guidance. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present despite the WRITE risk classification.
Execute an SQL query on the MySQL server
Tool description is only 44 characters ('Execute an SQL query on the MySQL server'). LLM-optimized descriptions should be 50 - 200 chars and include WHEN to use it, prerequisites, and what it returns. Current description lacks context for tool selection.
No output schema documented. Callers cannot predict the structure of results (CSV format, JSON, error format). LLMs need to know what fields to expect for downstream reasoning.
Destructive tool (WRITE risk) lacks confirmation pattern or dry-run capability. Agents can execute DELETE, DROP, or UPDATE without safeguards. No error recovery guidance if a query fails mid-transaction.
No tool annotations (destructiveHint, readOnlyHint, idempotentHint). The tool is marked WRITE risk but the schema does not declare this formally, forcing LLMs to infer intent from the name alone.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
Parameter 'query' has no description beyond type. LLMs cannot infer constraints (max length, allowed statement types, forbidden keywords). No guidance on format, examples, or restrictions.