MCP server for Microsoft SQL Server that provides tools to query tables, retrieve column metadata, and execute SQL SELECT statements
Three tools with clear verb-noun naming (get_tables, get_columns, run_query) and documented schemas. However, descriptions lack depth and guidance. Parameter descriptions are minimal (1-2 words). Output schemas are not formally documented, only mentioned as 'CSV format' in text. No error handling guidance, no parameter constraints (enums, ranges), and no dependency hints between tools. Schemas are present but sparse; 'table' parameter in get_columns is required but others optional without clear rationale. Missing actionable error messages and recovery paths.
Retrieves a list of fields, dimensions, or measures (as columns) for an object, entity or collection (table). Use the `mssql_get_tables` tool to get a list of available tables. The output of the tool will be returned in CSV format, with the first line containing column headers.
Retrieves a list of objects, entities, collections, etc. (as tables) available in the data source. Use the `mssql_get_columns` tool to list available columns on a table. Both `catalog` and `schema` are optional parameters. The output of the tool will be returned in CSV format, with the first line containing column headers.
Execute a SQL SELECT statement.
Output schemas not formally documented. Tools state 'CSV format' in descriptions but do not specify field names, types, or structure. LLMs cannot plan downstream operations or extract specific fields.
Parameter descriptions are minimal (1-2 words: 'The catalog name', 'The schema name'). No guidance on format, constraints, or when to use them. LLMs cannot infer whether catalog/schema are required, how to discover valid values, or what happens if omitted.
No error handling guidance. Tools throw RuntimeException with raw error messages. LLMs receive no recovery hints (e.g., 'Table not found. Call mssql_get_tables() to list available tables'). Agents cannot self-correct.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
No input validation or constraints. mssql_run_query accepts arbitrary SQL strings with no validation against allowed clauses (description mentions 'Valid clauses: FROM, INNER JOIN, LEFT JOIN, GROUP BY, ORDER BY, LIMIT/OFFSET' but code does not enforce). LLMs can pass invalid or dangerous queries.
Tool descriptions lack dependency hints. No guidance that mssql_get_tables should be called first to discover available tables, or that mssql_get_columns requires a valid table name. Agents may call tools in wrong order.