Model Context Protocol server for Microsoft SQL Server database operations with schema-aware query execution, data discovery, performance analysis, and security controls
14 tools with basic schemas and descriptions, but significant gaps in parameter documentation, output schema clarity, and error handling guidance. Most tools lack descriptions for parameters (e.g., DiscoverData's searchPattern, searchType lack detail on valid values). No enum constraints visible for constrained inputs (searchType should be enum: 'table'|'column'|'both'). Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal (generic try-catch returning JSON errors). Destructive tools (DeleteRecords, InsertRecords) lack confirmation/dry-run patterns. Tool names are clear (verb_noun style), but parameter naming inconsistencies exist (tableNames vs tableName). No evidence of pagination support despite tools returning potentially large result sets.
Analyze query performance and provide optimization suggestions
Find all relationships and dependencies for specified tables
Generate SQL queries based on natural language descriptions
Delete records from a table within the configured schema
Search for tables and columns by name patterns and discover relationships
Execute a SQL SELECT query against the configured schema
Get current configuration details
Get database performance statistics and recommendations
Output schemas not documented. LLMs cannot predict response structure (e.g., DiscoverData returns DataDiscoveryResult with Tables, Columns, Relationships, DataProfiles fields, not visible in tool definition). Agents cannot plan downstream calls or extract required fields.
Constrained parameters lack enum declarations. searchType in DiscoverData accepts 'table'|'column'|'both' but is defined as free-form string. LLMs will hallucinate invalid values. queryType in BuildQuery should be enum, not string.
Parameter descriptions lack detail on format, range, and constraints. searchPattern in DiscoverData: no guidance on regex syntax, case sensitivity, or wildcard behavior. sampleSize in ProfileDataQuality: no min/max bounds (default 1000, is this reasonable for all tables?). maxRows in ExecuteQuery: default 100, undocumented, may truncate results silently.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
Get database schema information for the configured schema
Insert new records into a table in the configured schema
List all available project configurations
Profile data quality and statistics for specified tables
Switch to a different project configuration
Test database connectivity with current configuration
Destructive tools (DeleteRecords, InsertRecords) lack confirmation or dry-run patterns. No mention of transaction rollback on error. LLMs can accidentally delete or insert data without safeguards. DeleteRecords requires whereClause for safety, but no validation shown, malformed WHERE could delete entire table.
Error handling is generic. All tools catch exceptions and return JSON with 'error' field, but no recovery guidance. E.g., 'No configuration loaded', should suggest 'Call ListConfigurations() and SwitchConfiguration() first.' Stack traces or raw exception messages are not actionable for LLMs.