MCP server for connecting to Dynamics 365 and other databases via ADO.NET and ODBC, providing tools for schema inspection, data querying, and manipulation
Server provides 14 tools with basic schemas and descriptions, but quality is inconsistent. Tool names follow verb_noun convention (get_tables, execute_reader, add_row), which is good. However, descriptions are generic and lack LLM-optimized guidance on WHEN to use each tool. Parameter descriptions exist but are minimal (e.g., 'Name of the schema' lacks format/constraint details). No output schemas documented. Error handling and recovery guidance absent. Most tools are READ_ONLY, reducing risk, but write tools (execute_nonquery, add_row, execute_routine) lack confirmation/dry-run patterns. No tool annotations (readOnlyHint, destructiveHint) visible in code.
Adds a new row to a specified table
Configuration tool for the server
Counts the number of rows in a specified table
Executes SQL statements with supported operations (INSERT, UPDATE, DELETE, etc.)
Executes one or more SQL-92 SELECT statements and returns results
Executes a stored procedure or function
Retrieves column information for a specified table
Retrieves foreign key information for a specified table
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
Destructive tools (execute_nonquery, add_row, execute_routine) lack confirmation/dry-run patterns. Agents can accidentally modify data without safeguards.
Parameter descriptions are minimal and lack format/constraint details. E.g., 'Name of the schema' does not specify case sensitivity, allowed characters, or max length.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Retrieves index information for a specified table
Retrieves primary key information for a specified table
Retrieves stored procedures and functions from the database
Retrieves list of tables from the database schema
Instructions tool providing embedded documentation
Retrieves the database server version information
Tool descriptions lack LLM-optimized guidance on WHEN to use each tool and what it returns. Generic descriptions like 'Retrieves list of tables' do not help agents choose between similar tools.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) visible in code. Agents cannot determine which tools are safe to retry or have side effects.