Built for Microsoft Dynamics 365 Business Central teams

AL code governance, powered by AI.

BCForge enforces your AL coding standards on every pull request, manages BC object ID ranges across your portfolio, and connects AI assistants directly to your workspace rules and data via MCP.

CustomerMgt.al
1codeunit 50100 "Customer Manager"
2{
3 procedure PostSalesDocument(DocNo : Code[20])
4 var
5 UserGuid : Guid;
6 begin
7 UserGuid := 'HARDCODED-GUID-001' // BCF-E001Hardcoded GUID
8 SLEEP(500); // BCF-E003Forbidden: SLEEP
9 SalesHeader.Init();

Rule Check

2 violations · merge blocked

Range Check

No ID conflicts

Trusted by AL development teams across the Business Central ecosystem

Microsoft PartnersISV DevelopersBC ConsultanciesMulti-tenant ISVsEnterprise AL Teams

10+

Built-in AL rules

7

AI providers

3

CI/CD integrations

∞

Custom rules

AL Rule Engine

Enforce your coding standards on every pull request

Define rules once. BCForge enforces them on every PR — inline annotations pinned to the exact violating line, merge blocked until resolved.

  • Forbidden functions: SLEEP, COMMIT, MESSAGE in async code
  • Hardcoded GUIDs, strings, and magic numbers detected automatically
  • Naming conventions for procedures, fields, and variables
  • Missing error handling and documentation checks
  • 10+ built-in rules — plus unlimited configurable custom rules
PR #42 · CustomerMgt.al
5 begin
6 SalesHeader.Init();
7 UserGuid := 'HARDCODED-GUID'BCF-E001 · Hardcoded GUID
8 SLEEP(500);BCF-E003 · Forbidden: SLEEP
9 PostSalesDoc(SalesHeader);
10 end;

Rule Check

2 violations · merge blocked

Range Check

No ID conflicts

Ask AI · rule prompt

Forbid the use of SLEEP and COMMIT in any codeunit that runs on the web service or API pages, and add a descriptive error message.

Model: gpt-4o-mini Generate rule

Rule generated

No SLEEP / COMMIT in API contextsError

Forbids SLEEP() and COMMIT() in codeunits exposed via web service or API pages. Use async patterns or background sessions instead.

ForbiddenFunctionBCF-0009

Tokens used: 1,204 prompt + 118 completion = 1,322 total

AI-Assisted Rule Creation

Describe a rule in plain English. Let AI write it.

Not sure how to encode a coding standard? Describe it in natural language, choose a model, and BCForge generates a fully configured, ready-to-enable rule.

  • Supports OpenAI, Anthropic, Google, Groq, Mistral, Azure OpenAI, and Ollama
  • Bring your own API key — costs stay with your account, not BCForge
  • Transparent token usage shown after every generation
  • AI reasoning explains every decision in the generated rule
  • Works with local models — Ollama + Gemma, Llama, or any compatible model
ID Range Manager

Zero-conflict object, field, and enum ID management

Track every object ID, field ID, and enum value ID across your entire portfolio. Detect overlapping ranges and duplicate assignments before they cause production issues.

  • Scans app.json and AL source across all repositories automatically
  • Detects range overlaps AND duplicate field / enum value IDs
  • Allocate next available object IDs directly from VS Code
  • Conflict badges on the Extensions Browser highlight affected apps
  • Field IDs and enum value IDs tracked per tableextension / enumextension

ID Range Overview

1 conflict detected
Core Extensions50100–50299 · 48 objects
Warehouse Module50300–50499 · 22 objects
Finance Suite50200–50399 · 31 objects

⚠ Overlaps with Core Extensions (50200–50299)

HR Module55000–55199 · 7 objects

14

Registered apps

28

ID ranges

1

Conflicts found

.vscode/mcp.json
{
"servers": {
"bcforge": {
"url": "https://bcforge.net/api/mcp",
"headers": { "Authorization": "Bearer sk-…" }
}
}
}
GitHub Copilot Chat
What ID ranges are available in my workspace?
Your workspace has 3 registered apps. Core Extensions owns 50100–50299 with 48 objects used, leaving 152 IDs free. The next available object ID is 50148. Finance Suite and Warehouse Module are also registered — no overlaps detected.
MCP Server

Give your AI assistant full context of your AL workspace

One JSON snippet. Your AI coding assistant instantly knows your rules, ID ranges, extensions, and snippets — and generates code that stays in bounds.

  • Works with GitHub Copilot, Cursor, Claude, and any MCP-compatible client
  • Exposes rules, ranges, extensions, and snippet libraries as queryable tools
  • Per-tool access control — admins decide exactly what AI can see
  • Workspace-scoped tokens — revoke access anytime

Everything else included

A complete platform — from your first AL rule to enterprise-scale enforcement.

GitHub & Azure DevOps

GitHub App, GitHub Action, and Azure DevOps Task — inline PR annotations pinned to the exact violating line. No YAML pipelines to configure.

Native CI/CD checks

Extensions Browser

Every BC extension with objects, ID ranges, field ID and enum value counts, dependencies, BC version, and resource exposure policy. Conflict badges highlight affected apps.

Full app visibility

VS Code Extension

Browse rules, view your ID allocation, get the next available object ID, access snippets, and run checks — without leaving Visual Studio Code.

Editor-native

CI Runs History

Every CI check run is recorded — rule violations, range conflicts, source, commit SHA, and pass/fail result. Searchable and filterable.

Full audit trail

Code Snippets Library

Build a team library of reusable AL code patterns. Search, copy, and insert snippets from VS Code. AI assistants can query the library via MCP.

Shared AL patterns

Multi-tenant Workspaces

Separate workspaces, separate rules, one login. Ideal for consultancies and ISVs managing multiple BC apps and clients.

One platform, every client

How it works

How BCForge helps you

Built to simplify your AL development process and keep everything easy to manage — from day one.

01

Create your organisation

Sign up, name your organisation, and add your first workspace. Connect team members and set roles — the whole setup takes under two minutes.

02

Connect your CI/CD

Install the GitHub App for zero-config PR checks, add the GitHub Action or Azure DevOps Task for pipeline-based enforcement — or use all three together.

03

Define rules, ranges & snippets

Configure AL lint rules, register your BC app ID ranges, and build a shared snippets library. BCForge enforces everything on every PR from that moment on.

04

Supercharge with AI

Add the BCForge MCP server to VS Code, Cursor, or Claude. Your AI assistant instantly becomes aware of your rules, ID ranges, extensions, and snippets.

Pricing

Pricing details

Start for free. Upgrade when you need more workspaces or enforcement at scale.

Starter

Perfect for solo AL developers

$0/month
Get started free
  • 1 workspace
  • 1 GitHub repository
  • Up to 10 rules
  • ID range management
  • Email support
Most popular

Pro

Built for small BC teams

$29/month
Start free trial
  • Unlimited workspaces
  • Up to 10 repositories
  • Unlimited rules
  • ID range conflict detection
  • VS Code extension
  • Team member roles
  • Priority support

Enterprise

Designed for large BC portfolios

Custom
Contact us
  • Everything in Pro
  • Unlimited repositories
  • SSO / SAML
  • Custom rule policies
  • Dedicated support
  • SLA guarantee

FAQ

Frequently asked questions

Quick answers to help you understand how BCForge powers your AL development workflow.

What is BCForge?

BCForge is a governance platform for Microsoft Dynamics 365 Business Central AL development teams. It enforces coding standards on every PR, manages BC object ID ranges across your portfolio, and connects AI assistants to your workspace data via the Model Context Protocol (MCP).

Which CI/CD systems does BCForge support?

BCForge supports GitHub (via a native GitHub App with zero configuration), GitHub Actions (via a reusable workflow YAML), and Azure DevOps (via a marketplace Task). You can use one or all three simultaneously — each source is tracked separately in the CI runs history.

How does ID range management work?

BCForge scans app.json files and all .al source files across your repositories to discover the ranges and individual IDs each extension uses. When a PR introduces an object ID that overlaps with another app's range, the check fails immediately before merge. Beyond object IDs, BCForge also tracks field IDs inside tableextensions and enum value IDs inside enumextensions — if two extensions claim the same field or enum value ID on the same base object, VS Code raises a BCF0004 or BCF0005 error inline and the Extensions Browser marks the app with a conflict badge.

How does the MCP server work?

BCForge exposes an MCP-compatible server at bcforge.net/api/mcp. Add a .vscode/mcp.json file to your AL project (the snippet is generated in workspace settings) and Copilot, Cursor, or Claude can immediately query your active rules, ID ranges, extensions, and snippets. Each tool can be enabled or disabled per workspace by an admin.

Can I manage multiple clients or products?

Yes. BCForge is built for multi-tenant use. You can create separate workspaces for each client or product, each with their own rules, ID ranges, and snippet libraries, all under one organisation account.

Is there a free plan?

Yes — the Starter plan is free forever and includes one workspace, one repository, and up to 10 configurable rules. No credit card required to get started.

Take control of your AL code quality

Join BCForge and get a complete overview of your rules, ID ranges, CI checks, and extensions — all from one powerful platform built for Business Central teams. Field ID and enum value conflict detection, MCP support, and BC license validation included.