VS Code extension for Business Central AL development, providing AI-powered tools via built-in MCP (Model Context Protocol) servers that work directly with GitHub Copilot Chat.
This extension is a growing toolkit. More modules will be added in future releases.
Installation
Install the .vsix from the Releases page, or install directly from the Visual Studio Code Marketplace once published.
No extra configuration is needed. The MCP server registers automatically when the extension activates.
Modules
AL Symbols Reader
Reads AL symbols from .app files in your Business Central .alpackages folder and exposes them as MCP tools to GitHub Copilot Chat.
When you open an AL project, the extension automatically detects any .alpackages folder in the workspace and registers it as an AL symbols source.
| Tool |
Description |
al_list_packages |
List all loaded .app packages with name, publisher, and version |
al_search_objects |
Search objects by name across all packages (filter by type/package) |
al_get_object |
Get full details of an object — fields, methods, keys, properties |
al_get_table_fields |
Get all fields and keys of a specific table |
al_get_object_methods |
Get public methods of a codeunit, page, table, etc. |
al_get_enum_values |
Get all values of an enum type |
al_reload_packages |
Reload symbols after running AL: Download Symbols |
Commands
| Command |
Description |
BCILITY: Reload AL Packages |
Re-syncs workspace .alpackages paths and signals Copilot to refresh MCP tools |
How it works
.app files are NAVX-format archives: a small NAVX header followed by a standard ZIP.
Inside the ZIP, SymbolReference.json contains the full symbol tree for the package (tables, pages, codeunits, enums, etc.) — the same data the AL Language Server uses for IntelliSense.
Symbols are loaded and indexed in memory on first use. Run al_reload_packages in Copilot Chat or use the command palette after downloading new symbols.
AL ID Manager
Coordinates object IDs across your team by tracking which IDs are already used and suggesting the next available one inline as you write AL code.
When you type an object ID position in an AL file (e.g. after table, page, codeunit, a field ID, or an enum value ID), the extension queries a shared backend and suggests the next free ID via IntelliSense completion. This prevents duplicate IDs when multiple developers work on the same app.
Requirements
A running instance of the BCILITY Object ID backend service is required. Configure its URL in VS Code settings.
Features
- Next ID completion — Suggests the next available object ID, table field ID, or enum value ID inline while writing AL code.
- Respects
app.json ID ranges — Completions stay within the idRanges configured in your app.json.
Commands
| Command |
Description |
BCILITY: Object Manager - Re-sync Object IDs |
Scans all local .al files and pushes the current object state to the backend, replacing any previously tracked IDs. |
BCILITY: Object Manager - Range Stats |
Displays a breakdown of used and available IDs per configured range for each object type. |
Requirements
- VS Code 1.99 or later (or VS Code Insiders)
- GitHub Copilot Chat extension
- Node.js 18 or later (used to run the bundled MCP server)