Security change on December 1, 2026: TLS 1.2 will become the minimum standard for 365 business Print Agent. Details and system requirements
365 business development
ALbuild

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:

SectionWhat it does
PipelinesShows the status of your Azure DevOps pipelines and lets you queue builds.
ContainersCreates, controls and inspects Business Central containers, with live resource stats.
ArtifactsBrowses the Business Central artifact CDN, downloads artifacts and creates containers from them.
Environment healthA status-bar item summarising Docker, the ALbuild module and Azure DevOps sign-in.
Code coveragePaints covered and uncovered lines directly in the editor gutter.
MCP serverRegisters 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 pwsh child process that pipes a cmdlet to ConvertTo-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-BcContainerApp and Resolve-BcDependencies run in a VS Code task terminal, so the module's live, streamed output is shown. Failures are reduced to a single readable message, mirroring Format-BcErrorMessage.
  • Azure DevOps authentication uses VS Code's built-in microsoft authentication provider to acquire an Azure AD token. No Personal Access Token is required.
  • Pipeline linking is inferred from the git remote (both dev.azure.com and the legacy *.visualstudio.com form). An albuild.json devops block or the albuild.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.json or 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-NAVServerInstance and related).
    • Stream logs.
    • Add a user.
    • Install the Test Toolkit.
    • Publish an app to the container.
    • Generate launch.json for 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.url at 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

  1. Install the extension from the VS Code Marketplace.
  2. Make sure the requirements below are in place.
  3. Open your AL project or repository folder.
  4. Select the ALbuild icon in the Activity Bar.
  5. In Pipelines, choose Sign in to Azure DevOps. In Containers, choose the add button to create your first container.

Requirements

RequirementNotes
businessdev.ALbuild PowerShell moduleThe 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 accessA 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

SettingDefaultDescription
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.defaults8G, hyperv, UserPassword, w1Defaults 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.trustCertificatetrueTrust a container's self-signed certificate for the current user when opening its web client.
albuild.pipelines.pollIntervalSeconds60Auto-refresh interval for pipeline status (0 disables it).
albuild.pipelines.recentRunCount5Number 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.enabledtrueRegister the ALbuild MCP server with VS Code.
albuild.mcp.transportautoauto, 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.agentclaude-codeWhich 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:

JSONCode
{ "country": "de", "artifactType": "Sandbox", "select": "Latest", "devops": { "organization": "your-org", "project": "Your Project", "pipelineId": 42 } }

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.ALbuild or point albuild.module.path at 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 the albuild.json devops block.

  • The MCP server does not appear in agent mode. Check that albuild.mcp.enabled is on and that npx is on your PATH, 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.json from Convert-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.

Last modified on