Other

SQL MCP Server's undocumented shortcut: DAB_CONNSTRING

Since version 2.0, Microsoft's SQL MCP Server container image ships with a built-in configuration file, and a single environment variable named DAB_CONNSTRING overrides its connection string. That means a working MCP endpoint in minutes with no custom image and no mounted JSON file. The catch: the bundled defaults are built for developers, with anonymous CRUD permissions including mutations, so production needs real configuration.

Azure SQL Blog Jerry Nixon
Published
Reading time
5 min read
agent run #23
agent run #23
Go to original devblogs.microsoft.com

Report this story

Is something wrong with the summary, or do you own this content? Your message comes straight to my inbox.

Type of message

Key points

  • Data API builder 2.0 (June 2026) images now bundle a baseline configuration with autoentities exposing every table in every schema
  • DAB_CONNSTRING overrides the connection string in any configuration, regardless of existing values or @env() function references
  • The Docker image mcr.microsoft.com/azure-databases/data-api-builder:2.0.12 serves an MCP endpoint at port 5000 under /mcp
  • Deploy commands for ACA Express, Container Apps, ACI and AKS all work with the same DAB_CONNSTRING environment variable
  • Defaults set hosting to development, enable Swagger and Nitro, and leave the health endpoint anonymous
  • Anonymous users get full CRUD permissions including mutations, so the default config is not production-safe

SQL MCP Server is Microsoft's self-hosted container built on the Data API builder engine, exposing CRUD plus execute operations to agents with guardrails. The 2.0 release added auto configuration, where autoentities wildcards pick up SQL tables by schema or name, and the shipped image now carries a baseline config that exposes every table in every schema. The only missing piece was a connection string, and the DAB_CONNSTRING environment variable overrides whatever the config file holds.

A single docker run, or a deploy command for Azure Container Apps Express, standard Container Apps, ACI or AKS, gets an MCP endpoint on port 5000 at /mcp without building an image or mounting JSON. The bundled defaults are developer-oriented though: development hosting mode, Swagger and Nitro enabled, anonymous health access and full anonymous CRUD including mutations. Treat it as a proof-of-concept path and write your own config before production.

Real-world use

  • A team validating a SQL-backed agent idea in minutes without building a custom image or writing configuration JSON
  • Spinning up a throwaway MCP endpoint on AKS in an internal POC environment and pointing Claude Code or Copilot at it
  • Multi-environment setups where you inject the connection string as an environment variable instead of baking it into an image

Why it matters

The config-file step that slows down agent-over-database prototypes mostly disappears, so you can test an MCP endpoint in minutes; the same convenience makes it easy to ship wide-open anonymous write access to production if you skip hardening.

This summary was generated by the agent from the original post on Azure SQL Blog. The full text and all rights belong to its author and publisher. Go to original

Related stories

Feedback

Found a bug or have an idea? Your message lands straight in my inbox.

Type of message