MCP server for interacting with MySQL databases based on Node
Single tool 'mysql_query' has a reasonable description (89 chars) but critically lacks parameter descriptions. The input schema defines only 'sql' as a string with minimal guidance. No output schema is documented. The tool is destructive (INSERT, UPDATE, DELETE, DDL) but lacks error handling guidance, recovery patterns, or confirmation mechanisms. No tool annotations (readOnlyHint/destructiveHint) present. The description mentions multi-DB and schema-specific permissions but does not explain when to use this tool vs alternatives, what it returns, or how to handle failures. Parameter 'sql' has no format constraints, length limits, or injection-prevention guidance despite being a SQL injection vector.
Run SQL queries against MySQL database (Multi-DB mode enabled) with support for: INSERT, UPDATE, DELETE, DDL and READ operations (Schema-specific permissions enabled)
Parameter 'sql' lacks description and validation guidance. No mention of SQL injection prevention, query format constraints, or examples of valid/invalid inputs. LLM has no guidance on safe query construction.
No output schema documented. LLM cannot predict what fields are returned, making downstream tool chaining impossible and forcing agents to guess at response structure.
Destructive tool (DELETE, UPDATE, DDL) lacks confirmation/dry-run pattern. No error handling guidance or recovery instructions. LLM has no way to preview changes before executing irreversible operations.
No tool annotations (destructiveHint, readOnlyHint, idempotentHint). LLM cannot determine if mysql_query is safe to retry or if it has side effects.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | <=2025-11-25 | v2 |
Credentials exposed in Dockerfile (MYSQL_HOST, MYSQL_USER, MYSQL_PASS, OLLAMAKEY). Secrets must use server-side injection via environment variables or vault, never hardcoded in source.