MySQL MCP has 3 read-only tools with basic schemas and descriptions. All tools have Zod schemas (query: string, table: string, empty object), but descriptions are minimal (10-50 chars, below the 194-char baseline). Parameter descriptions are absent, the 'query' and 'table' params lack context on format, constraints, or examples. No output schema documentation. Error handling returns raw error messages without recovery guidance. No pagination, no result limits documented, no tool annotations. The resource 'table' is defined but not registered as a tool. Overall structure is functional but falls short of production quality.
List all tables in the database
Execute SQL query (SELECT, SHOW, EXPLAIN, DESCRIBE only)
Get schema information for a specific table
Parameter descriptions missing. 'query' and 'table' params have no descriptions explaining format, constraints, or valid values. LLMs cannot infer whether 'query' accepts parameterized queries, what table names look like, or what errors to expect.
Tool descriptions are too short (10 - 50 chars vs. 194-char baseline). 'Execute SQL query (SELECT, SHOW, EXPLAIN, DESCRIBE only)' lacks context on when to use this vs. table-schema, what the output format is, or how to handle errors.
No output schema documented. Tools return JSON strings but LLMs don't know the field structure (column names, data types, pagination). This forces LLMs to parse unstructured text and guess at downstream field names.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
No result limits or pagination. 'SELECT * FROM table LIMIT 100' is hardcoded in the resource, but tools don't document limits. Large result sets can exhaust context windows. No offset/limit parameters offered.
Error messages lack recovery guidance. 'Error: <raw error>' tells LLMs nothing actionable. Should say 'Table not found. Call list-tables() to see available tables' or 'Invalid SQL syntax. Only SELECT, SHOW, EXPLAIN, DESCRIBE allowed.'