What?
Add a server-level description to Data API Builder so the SQL MCP Server can expose semantic guidance to MCP clients via the MCP initialize response.
Why?
Provide semantic guidance that will augment agent instructions or even provide agent instructions on the use of the server. MCP clients and agents need high-level behavioral context for the server, not just per-tool metadata. The MCP protocol exposes this through the top-level instructions field of the initialize response; DAB should surface a configurable value there.
Example value
Descriptions are drafted and provided by the user and cannot be inferred by the engine any other way.
"This MCP provides access to the Products database and should be used to answer product-related or inventory-related questions from the user."
How?
Configuration file
Add an optional description field under the existing MCP runtime configuration:
Command line
Extend dab configure to include the new configuration value:
dab configure --mcp-description "text"
Implementation
Add description to the MCP-related runtime configuration model (e.g., RuntimeConfig / McpOptions in the main config file, such as dab-config.json’s backing C# type). In the MCP server implementation (e.g., the class that handles MCP initialize, such as McpServer or equivalent), wire the config into the response:
var instructions = _runtimeConfig.Mcp?.Description;
var initializeResult = new InitializeResult
{
Instructions = string.IsNullOrWhiteSpace(instructions) ? null : instructions,
// ...existing fields...
};
Checklist
What?
Add a server-level description to Data API Builder so the SQL MCP Server can expose semantic guidance to MCP clients via the MCP
initializeresponse.Why?
Provide semantic guidance that will augment agent instructions or even provide agent instructions on the use of the server. MCP clients and agents need high-level behavioral context for the server, not just per-tool metadata. The MCP protocol exposes this through the top-level
instructionsfield of theinitializeresponse; DAB should surface a configurable value there.Example value
Descriptions are drafted and provided by the user and cannot be inferred by the engine any other way.
How?
Configuration file
Add an optional
descriptionfield under the existing MCP runtime configuration:{ "runtime": { "mcp": { "description": "text" } } }Command line
Extend
dab configureto include the new configuration value:dab configure --mcp-description "text"Implementation
Add
descriptionto the MCP-related runtime configuration model (e.g.,RuntimeConfig/McpOptionsin the main config file, such asdab-config.json’s backing C# type). In the MCP server implementation (e.g., the class that handles MCPinitialize, such asMcpServeror equivalent), wire the config into the response:Checklist
runtime.mcp.descriptionconfiguration field--mcp-descriptionoption todab configureruntime.mcp.descriptioninitialize.instructions