Edit

Share via


start command

Start the Data API builder runtime with an existing configuration file.

Syntax

dab start [options]

Quick glance

Option Summary
-c, --config Use a specific config file (defaults to dab-config.json or environment-specific file if present)
--LogLevel <level> Specifies logging level as provided value.
--mcp-stdio (Model Context Protocol (MCP)) Starts DAB as an MCP standard input/output (stdio) server instead of an HTTP server. Requires mcp.enabled: true in config.
--no-https-redirect Disables automatic HTTP→HTTPS redirection
--verbose Sets log level to Information
--help Display the help screen.
--version Display version information.

-c, --config

Path to config file. Defaults to dab-config.json unless dab-config.<DAB_ENVIRONMENT>.json exists, where DAB_ENVIRONMENT is an environment variable.

Example

dab start \
  --config ./settings/dab-config.json

--LogLevel <level>

Specifies logging level as provided value. For possible values, see Log levels.

Example

dab start \
  --LogLevel Warning

--no-https-redirect

Disables automatic HTTP→HTTPS redirection.

Example

dab start \
  --no-https-redirect

--verbose

Sets the minimum log level to Information.

Example

dab start \
  --verbose

--mcp-stdio

Note

This option is a Model Context Protocol (MCP) feature which was introduced in release 1.7. It requires "mcp": { "enabled": true } in the runtime section of your dab-config.json. For full MCP configuration details, see SQL MCP Server overview.

Starts Data API builder as an MCP standard input/output (stdio) server instead of binding to an HTTP port. In this mode, DAB communicates with an MCP client (such as GitHub Copilot, Visual Studio (VS) Code, or any MCP-compatible AI agent) entirely over standard input/output (stdin/stdout) using the Model Context Protocol. No HTTP server or network port is exposed.

This flag also accepts an optional positional role:<role-name> argument that specifies the DAB permission role under which all MCP tool calls execute. The role must match a name defined in the permissions section of your entity configuration. If omitted, the role defaults to anonymous.

When --mcp-stdio is active, the following behaviors are applied automatically regardless of your config file settings:

  • Encoding: Console input/output is forced to UTF-8 without a byte order mark (BOM) for clean JSON-over-standard input/output communication.
  • Authentication: The authentication provider is forced to Simulator mode, enabling the specified role without requiring a real JSON Web Token (JWT) or identity provider.
  • No HTTP host: DAB doesn't bind to any Transmission Control Protocol (TCP) port. The MCP server runs entirely over stdin/stdout.

Important

The role:<name> prefix is required. If the role name doesn't match a role defined in your entity permissions, MCP tool calls are denied.

Required config

MCP must be enabled in your dab-config.json before using --mcp-stdio:

"runtime": {
  "mcp": {
    "enabled": true,
    "path": "/mcp",
    "dml-tools": {
      "create-record": true,
      "read-records": true,
      "update-record": true,
      "delete-record": true
    }
  }
}

Example

# Default anonymous role
dab start \
  --mcp-stdio \
  --config ./dab-config.json

# Specific role
dab start \
  --mcp-stdio role:authenticated \
  --config ./dab-config.json

# With logging
dab start \
  --mcp-stdio role:api-reader \
  --config ./dab-config.json \
  --LogLevel Information

MCP client configuration

Because DAB runs as a subprocess communicating over standard input/output (stdio), your MCP client must launch DAB as a child process and pipe its stdin/stdout. A typical MCP client configuration for Visual Studio (VS) Code or a compatible agent looks like:

{
  "servers": {
    "my-database": {
      "type": "stdio",
      "command": "dab",
      "args": [
        "start",
        "--mcp-stdio",
        "role:anonymous",
        "--config",
        "./dab-config.json"
      ]
    }
  }
}

For a complete walkthrough, see standard input/output (stdio) transport for SQL MCP Server.


--help

Display the help screen.

Example

dab start --help

--version

Display version information.

Example

dab start --version