Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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) |
Head section
| Option | Summary |
|---|---|
--LogLevel <level> |
Specifies logging level as provided value. |
--mcp-stdio |
(Model Context Protocol (MCP)) Starts DAB as an MCP server that uses standard input and output (STDIO) instead of HTTP. Requires mcp.enabled: true in config. |
--no-https-redirect |
Disables automatic HTTP→HTTPS redirection |
--verbose |
Sets logging level to Informational |
--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
--mcp-stdio
Note
This option is a Model Context Protocol (MCP) feature available in release 1.7 and later. 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 server that uses standard input and output 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 stdin and stdout by 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 that communicates over standard input and output, your MCP client must launch DAB as a child process and pipe stdin and 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 and output transport for SQL MCP Server.
--verbose
Sets the logging level to Informational. This is a convenience flag equivalent to --LogLevel Information.
Example
dab start \
--verbose
--help
Display the help screen.
Example
dab start --help
--version
Display version information.
Example
dab start --version