MySQL MCP Server for AI-powered database operations using Model Context Protocol (MCP). Enable natural language to SQL via LLMs like Claude.
MySQL MCP server has well-structured tool definitions with complete input schemas and descriptions for all 7 tools. Naming follows verb_noun convention (list_, describe_, fetch, update, delete, truncate, modify_bulk). Descriptions are clear and action-oriented (avg ~120 chars). However, output schemas are completely undocumented, LLMs cannot predict what fields to expect from tool responses. Error handling lacks recovery guidance and categorization. Security is strong (no credentials exposed, SQL injection prevention via sanitizeIdentifier), but missing permission gates and audit trail patterns. Tool composition is sound with clear single responsibilities, though some parameter relationships are underdocumented.
Delete records from a table. Filters are REQUIRED — use truncate to remove all rows.
Show the column structure of a specific table
Fetch records from a table with optional filters, field selection, sorting, and pagination. Returns up to 1000 rows max.
List all tables in the connected database
Perform complex bulk operations: deduplicate, normalize values, or clean up empty/null rows. Runs in preview mode by default — set confirm=true to execute.
Remove ALL records from a table. This is irreversible. Requires confirm=true to execute.
Update records in a table. Filters are REQUIRED — will refuse to update all rows without conditions.
Output schemas completely undocumented. LLMs cannot predict response structure (fields, types, pagination). Tools return JSON but no schema guidance for downstream tool chaining.
Error responses lack recovery guidance. Handlers return raw error.message without actionable next steps (e.g., 'Invalid table name. Call list_tables() to see available tables.').
modify_bulk parameter relationships underdocumented. 'group_by' only applies to deduplicate; 'column', 'from_value', 'to_value' apply to normalize/cleanup. LLMs may pass invalid combinations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No permission gates or audit trail patterns. Tools lack scope declarations (read:database, write:database, admin:database). No logging of who called what, when, with which parameters.
fetch tool lacks explicit result limit enforcement in description. States 'max 1000 rows' but no guidance on pagination strategy or when to use offset vs cursor.