VS Code extension
ALbuild for Visual Studio Code brings the ALbuild toolchain into the editor. It lets you monitor your Azure DevOps pipelines, create and manage Business Central Docker containers, and browse Business Central artifacts without leaving VS Code.
One engine, no drift
The extension is a thin shell over the businessdev.ALbuild PowerShell module, the same engine that powers the CI/CD pipeline tasks. It does not re-implement container or artifact logic, so what you see in the editor matches your builds exactly. NuGet and dependency package management is intentionally out of scope and is handled by the companion ALGet extension.
Overview
The extension adds an ALbuild view to the Activity Bar with three sections, plus three capabilities that live outside that view:
| Section | What it does |
|---|---|
| Pipelines | Shows the status of your Azure DevOps pipelines and lets you queue builds. |
| Containers | Creates, controls and inspects Business Central containers, with live resource stats. |
| Artifacts | Browses the Business Central artifact CDN, downloads artifacts and creates containers from them. |
| Environment health | A status-bar item summarising Docker, the ALbuild module and Azure DevOps sign-in. |
| Code coverage | Paints covered and uncovered lines directly in the editor gutter. |
| MCP server | Registers the ALbuild MCP server with VS Code, so agent mode gets the Business Central tools without a hand-written mcp.json. |
How it works
- Read operations run a
pwshchild process that pipes a cmdlet toConvertTo-Json, and the result is parsed by the extension. This covers container and artifact listings and the environment health probe. - Mutating operations such as
New-BcContainer,Publish-BcContainerAppandResolve-BcDependenciesrun in a VS Code task terminal, so the module's live, streamed output is shown. Failures are reduced to a single readable message, mirroringFormat-BcErrorMessage. - Azure DevOps authentication uses VS Code's built-in
microsoftauthentication provider to acquire an Azure AD token. No Personal Access Token is required. - Pipeline linking is inferred from the git remote (both
dev.azure.comand the legacy*.visualstudio.comform). Analbuild.jsondevopsblock or thealbuild.devops.*settings override the auto-detected values.
Pipelines
The Pipelines view lets you keep track of your builds without opening a browser.
- Status tree. One node per Azure DevOps pipeline, each showing its current state (passed, running, warning, failed or never run), the branch and how long ago it ran.
- Recent runs. Expand a pipeline to see its last runs. Selecting a run opens it in Azure DevOps.
- Queue a build. Start a build for any pipeline and branch from the view title.
- Auto-refresh. Status polls on a configurable interval and can be refreshed on demand.
- Automatic linking. Pipelines are matched to your workspace's git remote, with an override in
albuild.jsonor settings when needed. - Microsoft sign-in. Authentication runs through VS Code, so no Personal Access Token is needed.
Containers
The Containers view provides a full Business Central container workflow, driven by the ALbuild PowerShell module.
- List and control. All of your Business Central containers are listed with their running or stopped status and inline start, stop, restart and remove actions.
- New Container wizard. Guided steps for name, country, artifact version, authentication, memory and isolation, plus an optional license.
- Container detail view with live CPU and memory statistics and one-click actions:
- Open the web client. The container's self-signed certificate is trusted for the current user and removed again when the container is removed.
- Open a container terminal with the Business Central administration cmdlets pre-loaded (
Get-NAVServerInstanceand related). - Stream logs.
- Add a user.
- Install the Test Toolkit.
- Publish an app to the container.
- Generate
launch.jsonfor the AL Language extension.
Artifacts
The Artifacts view browses the Business Central artifact CDN as a catalog.
- Sandbox and OnPrem artifacts grouped by type.
- Filtering by country and version (major, or
major.minor). - Cache indicator. Artifacts already in your local cache are marked as cached.
- Download an artifact, or create a container from it in one step.
AI agents (MCP)
The extension registers the ALbuild MCP server with VS Code through the
official MCP provider API (VS Code 1.101+), so Copilot agent mode and any other MCP client in
the editor pick up the Business Central tools automatically. There is no .vscode/mcp.json to
write and no separate install step.
- Local by default. The server is launched over stdio via
npx @365businessdev/albuild-mcp, reusing this extension's PowerShell and module settings, so the agent drives exactly the same engine your builds do. - Remote when you are not on Windows. Container tools need a Windows host with Docker. On
macOS or Linux, point
albuild.mcp.http.urlat a shared host that runs the server over Streamable HTTP and store its bearer token with ALbuild: Set MCP HTTP Token. The token goes into VS Code's secret storage, never into settings. - Transport
auto(the default) picks HTTP when a URL is configured and stdio otherwise.
Which agent surface do I want?
The MCP server is the right integration for agents inside the editor. For a coding agent working
from a terminal, the albuild CLI is the better fit, and
albuild probe gives it sub-second AL feedback with no container at all.
Code coverage in the editor
After a test run has produced a coverage summary, ALbuild: Show Code Coverage overlays it on your source:
- Covered lines get a green gutter bar and a faint green tint.
- Uncovered lines, meaning executable lines that were never hit, get a red bar and a red tint.
- Both are mirrored in the overview ruler, so you can see the gaps in the scrollbar of a long file.
- A status-bar item shows the overall percentage; ALbuild: Hide Code Coverage clears the overlay.
The data comes from a coverage-summary.json produced by
Convert-BcCodeCoverage. The extension
searches the workspace for one and asks you to pick if there are several, or you can select a file
from anywhere. Because that summary uses the honest source-derived denominator described under
Code coverage, the uncovered lines you see in the gutter are the real
gaps, not an artefact of what Business Central happened to report.
Environment health
A single status-bar item summarises the state of your environment: Docker, the ALbuild module and Azure DevOps sign-in. When something is missing, it offers a one-click fix.
Getting started
- Install the extension from the VS Code Marketplace.
- Make sure the requirements below are in place.
- Open your AL project or repository folder.
- Select the ALbuild icon in the Activity Bar.
- In Pipelines, choose Sign in to Azure DevOps. In Containers, choose the add button to create your first container.
Requirements
| Requirement | Notes |
|---|---|
businessdev.ALbuild PowerShell module | The engine for the container and artifact features. Auto-detected from an open ALbuild repository, or set albuild.module.path. |
PowerShell 7 (pwsh) | Recommended. Falls back to Windows PowerShell. Configure with albuild.powershell.executable. |
| Docker (Windows) | Required for all container operations. |
| Azure DevOps access | A Microsoft account with access to the repository's project, for the Pipelines view. |
Node.js (npx) | Only for the local MCP server. Not needed if you disable MCP or use the HTTP transport. |
Settings
| Setting | Default | Description |
|---|---|---|
albuild.powershell.executable | (auto) | PowerShell executable. Auto-detects pwsh, then powershell. |
albuild.module.path | (empty) | Explicit path to the businessdev.ALbuild module (folder or .psd1). |
albuild.container.defaults | 8G, hyperv, UserPassword, w1 | Defaults pre-filled in the New Container wizard. |
albuild.container.licenseFile | (empty) | Default Business Central license (path or URL) pre-selected in the wizard. Can be overridden or skipped per container. |
albuild.container.trustCertificate | true | Trust a container's self-signed certificate for the current user when opening its web client. |
albuild.pipelines.pollIntervalSeconds | 60 | Auto-refresh interval for pipeline status (0 disables it). |
albuild.pipelines.recentRunCount | 5 | Number of recent runs shown when expanding a pipeline. |
albuild.devops.organization | (empty) | Override the auto-detected Azure DevOps organization. |
albuild.devops.project | (empty) | Override the auto-detected Azure DevOps project. |
albuild.mcp.enabled | true | Register the ALbuild MCP server with VS Code. |
albuild.mcp.transport | auto | auto, stdio or http. auto uses HTTP when albuild.mcp.http.url is set. |
albuild.mcp.command | (empty) | Override the command used to launch the stdio server. |
albuild.mcp.args | ["-y", "@365businessdev/albuild-mcp"] | Arguments for the stdio server. |
albuild.mcp.http.url | (empty) | URL of a shared MCP host, for the Streamable HTTP transport. |
albuild.mcp.agent | claude-code | Which agent profile the server tailors its tool descriptions to. |
Project configuration (albuild.json)
The extension reuses your existing albuild.json keys (country, artifactType, bcVersion, select) and adds an optional devops block to pin the pipeline link per repository:
Code
Commands
All commands are available from the Command Palette under the ALbuild: prefix, for example Sign in to Azure DevOps, Queue Build, New BC Container, Publish App to Container, Generate launch.json, Resolve Dependencies, Download Artifact, Show Code Coverage, Set MCP HTTP Token and Re-check Environment.
Troubleshooting
-
"module was not found". Install
businessdev.ALbuildor pointalbuild.module.pathat it. Opening the ALbuild repository also lets the extension auto-detect it. -
"Docker is not available". Start Docker, then choose Re-check environment in the status bar.
-
No pipelines listed. Confirm that you are signed in and that the workspace has an Azure DevOps git remote, or set the
albuild.devops.*settings or thealbuild.jsondevopsblock. -
The MCP server does not appear in agent mode. Check that
albuild.mcp.enabledis on and thatnpxis on yourPATH, then reload the window. With the HTTP transport, make sure the token is stored via ALbuild: Set MCP HTTP Token; the URL alone is not enough. -
No coverage shown. The overlay needs a
coverage-summary.jsonfromConvert-BcCodeCoverage. A raw Business Central coverage export is not the same file.
All failures are surfaced as a single, readable message. Full detail is available in the ALbuild output channel (View then Output then ALbuild).
Privacy
The extension runs entirely on your machine. It communicates only with your Docker daemon, the Business Central artifact CDN, your Azure DevOps organization, and, if you configure one, the MCP host you point it at. No telemetry is collected.


