MCP server for SQL Server database connectivity and operations via ADO.NET and ODBC drivers
14 tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Most tools have 1-3 parameters with type info, but descriptions are minimal (10-50 chars). No tool annotations (readOnlyHint/destructiveHint). Error handling and recovery guidance absent. Naming is verb-based (get_, execute_, add_) but some tools like 'config' and 'instructions' lack clarity on what they return. Output schemas not documented, LLMs cannot plan downstream calls. No pagination support on list tools (get_tables, get_columns, get_routines). Critical write tools (execute_nonquery, execute_routine, add_row) lack confirmation/dry-run patterns.
Insert a new row into a table
Configuration tool for the server
Count rows in a specific table
Execute SQL statements with supported operations (INSERT, UPDATE, DELETE, etc.)
Execute a SELECT query and return results
Execute a stored procedure or function
Get columns for a specific table
Get foreign keys for a specific table
Get indexes for a specific table
No output schemas documented. LLMs cannot infer what fields are returned or plan downstream tool calls. E.g., get_tables returns a list but structure is unknown.
Write tools (execute_nonquery, execute_routine, add_row) lack confirmation/dry-run patterns. Agents can accidentally execute destructive SQL without safeguards.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot distinguish safe reads from dangerous writes without parsing descriptions.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | <=2025-11-25 | v2 |
Get primary keys for a specific table
Get stored procedures and functions
Get list of tables from the database
Instructions tool providing embedded documentation
Get the database server version
List tools (get_tables, get_columns, get_routines) lack pagination (limit, offset, page_size). Large schemas will blow context windows.
Parameter descriptions are minimal (10-50 chars). E.g., 'schema' param lacks guidance on what happens if schema is invalid or does not exist.