-
Notifications
You must be signed in to change notification settings - Fork 297
Description
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
- Add
runtime.mcp.descriptionconfiguration field - Add
--mcp-descriptionoption todab configure - Ensure hot reload supports
runtime.mcp.description - Inject resolved value into
initialize.instructions - Add minimal unit tests (config load, hot reload, initialize payload)
- Update documentation (hand-off to @JerryNixon)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
{ "runtime": { "mcp": { "description": "text" } } }