Skip to main content
Glama
bcdocker
by olederkach

bcdocker

MCP server and CLI for Business Central Docker container management. Run via npx -- no install needed.

npx bcdocker list              # list containers
npx bcdocker create            # create a BC sandbox
npx bcdocker test bcsandbox    # run AL tests

Quick start

As MCP server (AI assistants)

Zero-install -- add to your IDE config and your AI can manage BC containers directly:

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "bcd": {
      "command": "npx",
      "args": ["-y", "bcdocker", "mcp"]
    }
  }
}

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "bcd": {
      "command": "npx",
      "args": ["-y", "bcdocker", "mcp"]
    }
  }
}

VS Code / Copilot (.vscode/mcp.json):

{
  "servers": {
    "bcd": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "bcdocker", "mcp"]
    }
  }
}

Once configured, ask your AI assistant things like:

  • "List my BC containers"

  • "Create a new BC sandbox with version 26.0"

  • "Show me the apps in bcsandbox"

  • "Run tests in my container"

  • "Compile and publish my AL project"

As CLI

Via npx (no install):

npx bcdocker list
npx bcdocker info bcsandbox
npx bcdocker create --name bcsandbox --type sandbox --bc-version 26.0 --country w1 --bypass-cdn
npx bcdocker start bcsandbox
npx bcdocker stop bcsandbox
npx bcdocker apps bcsandbox --publisher Microsoft
npx bcdocker test bcsandbox --codeunit 50100

Global install (puts bcd on your PATH):

npm i -g bcdocker
bcd list
bcd create --name mybc --bc-version 26.0
bcd test mybc

Related MCP server: Microsoft Business Central MCP Server

Prerequisites

  • Node.js 18+

  • Windows PowerShell 5.1 (BC management cmdlets require it)

  • Docker Desktop in Windows containers mode

The npm package bundles the PowerShell module in ps/. Override with BCD_MODULE_PATH if needed.

CLI commands

Command

Description

list / ls

List all BC containers with status

info <container>

Show version, status, and endpoints

create

Create a new BC container (5-30 min)

remove <container>

Remove a container

start <container>

Start a stopped container

stop <container>

Stop a running container

restart <container>

Restart a container

open <container>

Open BC Web Client in browser

apps <container>

List apps (optional --publisher)

install <container> <appFile>

Install a .app file

uninstall <container> <app> <publisher>

Uninstall an app

publish <container> <folder>

Compile and publish an AL project

test [container]

Run AL tests (optional --codeunit, --function, --app)

toolkit <container>

Import test toolkit (--full for all)

license <container> <file>

Import a license file

MCP tools

The same 15 operations exposed as MCP tools for AI assistants:

list-containers container-info create-container remove-container start-container stop-container restart-container open-webclient list-apps install-app uninstall-app publish-project run-tests import-test-toolkit import-license

Naming

Term

What it is

bcdocker

This npm package and GitHub repo.

bcd

The CLI command after global install (npm i -g bcdocker).

bcdocker-toolkit

The PowerShell + Windows UI repo (module BCDocker). Different repo.

  • bcdocker-toolkit -- PowerShell module and Windows UI for Business Central Docker containers

Migrating from 1.x to 2.0

Breaking changes in 2.0:

  • MCP server invocation: add "mcp" arg to your MCP client config. The previous config "args": ["-y", "bcdocker"] ran the CLI (which showed help instead of starting the MCP server). New: "args": ["-y", "bcdocker", "mcp"].

  • bcd create flags: the --version flag (which actually meant "artifact type") is replaced by --type sandbox|onprem and -v, --bc-version <version>. Previously bcd create --version sandbox → now bcd create --type sandbox. A specific BC version like 28.0 now works: bcd create --bc-version 28.0.

  • MCP create-container schema: the version field is split into type (enum: sandbox, onprem) and bcVersion (string, e.g. "28.0" or empty for latest).

  • MCP tool responses: handlers now surface stderr and non-zero exit codes as Failed:\n... text instead of returning the confident fallback message. AI clients will get actionable failure details instead of spurious "complete" messages.

License

MIT

Available Tools

15 tools
container-infoA

Get detailed info about a BC container: version, status, and service endpoints

Inputs: containerName (required).

create-containerB

Create a new Business Central Docker container with test toolkit. Long-running (5-30 min).

Inputs: containerName, type, bcVersion, country, +7 more.

import-licenseB

Import a license file into a BC container

Inputs: containerName (required), licenseFile (required).

import-test-toolkitB

Import the BC Test Toolkit (libraries only or full framework) into a container

Inputs: containerName (required), librariesOnly, userName, password.

install-appB

Publish and install a .app file into a BC container

Inputs: containerName (required), appFile (required), userName, password.

list-appsA

List all apps installed in a BC container, optionally filtered by publisher

Inputs: containerName (required), publisher.

list-containersA

List all Business Central Docker containers with their running status

Inputs: no named parameters.

open-webclientB

Open the BC Web Client URL for a container. Returns the URL.

Inputs: containerName (required).

publish-projectB

Compile and publish an AL project folder into a BC container

Inputs: containerName (required), projectFolder (required), userName, password.

remove-containerB

Remove a Business Central Docker container

Inputs: containerName (required).

restart-containerB

Restart a BC Docker container

Inputs: containerName (required).

run-testsA

Run AL tests in a BC container. Can run all tests, a specific codeunit, or compile-and-run from a project folder.

Inputs: containerName, testCodeunitId, testFunctionName, appProjectFolder, +2 more.

start-containerB

Start a stopped BC Docker container

Inputs: containerName (required).

stop-containerA

Stop a running BC Docker container

Inputs: containerName (required).

uninstall-appB

Uninstall an app from a BC container by name. Automatically handles dependency order.

Inputs: containerName (required), appName (required), appPublisher (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 15 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: container lifecycle management, app operations, testing, licensing, and info retrieval. No overlapping functionality between any two tools.

    Naming Consistency5/5

    All tool names follow a consistent pattern of lowercase-with-hyphens and predominantly verb_noun structure (e.g., create-container, list-apps). The sole noun-only name 'container-info' still fits the hyphenated convention.

    Tool Count5/5

    15 tools cover the essential operations for Business Central Docker containers without bloat. Each tool serves a distinct and necessary function, from creation to teardown and app management.

    Completeness4/5

    The tool set covers the full lifecycle of containers and apps, plus testing and licensing. Minor gaps exist, such as missing log retrieval or configuration modification, but core workflows are well-supported.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Model Context Protocol (MCP) server for Microsoft Dynamics 365 Business Central. Provides AI assistants with direct access to Business Central data through properly formatted API v2.0 calls.
      6
      1,934 npm
      10
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      MCP server for Microsoft Dynamics 365 Business Central that enables AI assistants to query and manage Business Central data via full CRUD operations.
      6
      1,934 npm
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      MCP server for Microsoft Dynamics 365 Business Central, enabling AI assistants to perform CRUD operations, query data, and retrieve schemas via Business Central API v2.0.
      6
      1,934 npm
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      MCP server that provides AI assistants direct access to Microsoft Dynamics 365 Business Central using its native WebSocket protocol, enabling page navigation, data operations, actions, and report execution without OData or browser automation.
      14
      472 npm
      MIT