Database query assistant with READ-ONLY access. Provides safe SQL query execution through MCP protocol with support for MySQL and SQLite databases.
This server provides read-only SQL execution with reasonable safety guardrails, but has significant gaps in definition quality. All 6 tools have descriptions and basic input schemas, but descriptions are inconsistent in depth and detail, parameter descriptions are minimal or missing, output schemas are not documented, and error handling guidance is absent. Tool names follow verb_noun convention appropriately (check_connection, list_tables, describe_table, query, get_full_schema, get_table_summary), which is good. However, most tools lack detailed parameter descriptions explaining constraints, formats, and expected values. The query tool, the most critical, has only a terse description with no guidance on error recovery or result truncation behavior despite having configurable limits. No output schemas are documented, making it unclear what fields agents should expect or chain together. Error handling is basic (likely just exceptions) with no recovery guidance patterns. Security configuration is well-documented in code comments but not reflected in tool descriptions for end users.
Test database connectivity
Get column information for a specific table including column names, types, nullability, and row count estimate
Get all tables with their columns for multi-table JOIN queries. Returns complete schema metadata.
Get exact row count and summary statistics for a table using COUNT(*). Optional tool disabled by default (ENABLE_TABLE_SUMMARY env var).
List all tables in the database with metadata (table name, row estimate, is_large flag)
Execute a read-only SQL query (SELECT, SHOW, DESCRIBE, EXPLAIN). Results are automatically limited to prevent token overflow.
No documented output schemas for any tool. Agents cannot determine what fields to expect, breaking downstream tool chaining and forcing agents to guess or call discovery tools unnecessarily.
Parameter descriptions are minimal or entirely absent. 'table_name' parameter in describe_table has a basic description but no guidance on case sensitivity, schema qualification (schema.table), or quoting rules. 'sql' parameter in query has no description of constraints, error cases, or result limits.
query tool description is 118 characters but lacks critical operational details: no mention of timeout behavior, no guidance on result truncation (despite MAX_RESULT_ROWS and MAX_RESULT_CHARS config), no error recovery hints (e.g., 'If query times out, try with LIMIT 100'). Agents will not know how to handle truncated results.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 44 | - | v1 |
get_table_summary description mentions tool is disabled by default but does not explain to agents what to do if it fails or returns no data. No guidance on when this tool is preferable to describe_table's estimated row counts.
No error handling or recovery patterns documented. Tools return exceptions but offer no guidance text like 'Table not found. Try list_tables() first.' or 'Query timed out after 30s. Retry with LIMIT 100.'
list_tables and get_full_schema descriptions do not mention pagination, result limits, or truncation behavior despite MAX_OVERVIEW_TABLES (100) and MAX_SCHEMA_TABLES (50) config constants. Agents will not know if results are capped or if they should call the tools again for more data.