MCPQL presents 18 tools with complete JSON Schema input definitions and consistent naming patterns. All tools start with action verbs (mcp_*) and are well-scoped for single responsibilities. Descriptions are adequate but generic, they state WHAT the tool does but lack WHEN to use it, prerequisites, or dependency hints. Parameter descriptions are present but terse. No output schemas are documented. Error handling is absent, the source shows no guidance for recovery, classification (retryable vs fatal), or actionable error messages. Security concerns exist around SQL injection prevention and secret handling (DB credentials). Tools 13-18 appear to be redundant variants (e.g., mcp_preview_data vs mcp_preview_data_enhanced, mcp_search_comprehensive split into 4 separate tools), violating the single-responsibility principle and forcing LLMs to choose between equivalent tools.
Execute a SQL Server stored procedure with parameters and return results
Execute a raw SQL query and return the results
Get comprehensive statistics for a specific column in a table
Enhanced comprehensive statistics for a specific column in a table
Get dependencies for a database object (tables, views, stored procedures, etc.)
Get detailed object dependencies including what the object depends on and what depends on it
Get sample values from a specific column in a table
No output schemas documented. Tools declare input schemas but provide no guidance on return types, field names, pagination structure, or result limits. LLMs cannot plan downstream calls or extract key fields without trial and error.
No error handling documentation. No guidance on retryability, user-fixable errors, recovery steps, or actionable error messages. A failed query returns nothing about what went wrong or how to correct it.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 63 | 2026-07-28+ | v2 |
| 2026-04-07 | F | 27 | - | v1 |
Get current security configuration and status for database operations
Stored procedure analysis tool (compatibility wrapper)
Get a preview of data from a SQL Server table with optional filters
Enhanced data preview from a SQL Server table with optional filters
Quick statistical analysis of a table including row count, column distributions, and top values
Search across database objects by name and definition with configurable criteria
Search in object definitions/source code
Search for database objects by name pattern
Search for objects by their type
Analyze SQL Server stored procedure structure including parameters, dependencies, and source code
Comprehensive SQL Server table analysis including structure, columns, keys, indexes, and constraints
Tool proliferation with redundant variants. mcp_preview_data (tool #3) and mcp_preview_data_enhanced (tool #13) appear to be the same tool. mcp_search_comprehensive (tool #8) is split into mcp_search_objects_by_name, mcp_search_in_definitions, and mcp_search_objects_by_type (tools #15-17). This forces LLMs to choose between equivalent tools, violating single-responsibility principle and wasting reasoning cycles.
Parameter descriptions are terse and lack constraints. For example, mcp_execute_query accepts a 'query' parameter with only basic description. No guidance on SQL injection prevention, allowed query types, or timeout behavior. mcp_preview_data 'filters' parameter lacks format specification (is it {"col":"value"} or WHERE clauses?).
No security documentation. Tools mcp_execute_query and mcp_execute_procedure accept user input without documented SQL injection safeguards. DB credentials must be injected server-side, but this is not stated in any tool description. No scope declarations (read vs write permissions).
Descriptions lack WHEN-to-use context. 'Comprehensive SQL Server table analysis' tells WHAT the tool does but not WHEN to call it vs mcp_quick_data_analysis, or what prerequisites exist. No dependency hints like 'Call mcp_table_analysis before mcp_get_column_stats if you need column names'.
Enum constraint for mcp_search_comprehensive is well-defined (TABLE, VIEW, PROCEDURE, etc.), but other search tools (mcp_search_objects_by_name, mcp_search_in_definitions) list 'object_types' as array of strings with no enum constraint, allowing LLMs to hallucinate invalid types.
No pagination or result limit enforcement documented. mcp_preview_data has a limit parameter (default 100, max 1000), but other tools like mcp_search_comprehensive lack documented limits. Large result sets risk blowing context windows.
mcp_execute_query description includes SQL example advice ('use bracketed, schema-qualified names') but this is implementation guidance, not parameter documentation. The description should clarify that the query must be safe SQL and cannot use xp_cmdshell or other dangerous procedures.
mcp_get_security_status has no required parameters and no description of what 'security status' means. Is it user permissions? Connection security? Database encryption? Too vague for LLM selection.