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 with minimal schema and description. execute_sql has a basic 2-property schema (query string, required) but lacks critical safety features: no parameter description beyond the name, no output schema documentation, no error handling guidance, no input validation constraints (length, pattern), and no mention of destructive consequences. Description is 54 chars, below the 194-char baseline for production tools. No pagination, no result limits, no idempotency guarantees. SQL injection risk is unmitigated at the tool interface level.
Execute an SQL query on the MySQL server
No output schema documented. LLMs cannot predict result structure (CSV format, column names, row count, error format). Breaks downstream tool chaining and forces parsing guesswork.
No input validation or constraints. Query parameter accepts any string, no length limit, no pattern, no enum of safe operations. SQL injection risk unmitigated at tool boundary. LLMs can pass DROP TABLE or DELETE without friction.
No error handling guidance. Tool returns raw MySQL error strings (e.g. 'Error executing query: ...'). LLMs cannot determine if error is retryable, user-fixable, or fatal. No recovery suggestions.
No result limits or pagination. Tool can return unlimited rows (LIMIT 100 in read_resource but no limit in execute_sql). Large result sets blow context window and degrade LLM reasoning.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | <=2025-11-25 | v2 |
Destructive operations (INSERT, UPDATE, DELETE, DROP) not flagged. No confirmation step, no dry-run mode, no audit trail. Agents can execute irreversible commands without friction.