Agent integration
Use the capability manifest before an agent constructs a BC Atlas command.
bca help --format jsonThe command writes versioned JSON to standard output. It defines command IDs, argument templates, options, output contracts, and exit codes.
Invocation rules
- Pass each argument as a separate array item.
- Do not construct a shell command string.
- Use
export --view <view> --format json,check --format json,architecture --format json, ordocs ... --format jsonfor machine reads. - Check for exit code
0before you parse standard output. - Run
docs setanddocs unsetwith--dry-runfirst. - Pass
--expected-hashwhen you write AL metadata.
Guided setup
bca setup agent --agent claude|copilot|cursor writes a /bca-setup command that lets the agent set up BC Atlas through the CLI: it reads bca setup plan --format json, asks the user, previews with bca setup apply --dry-run --format json, and applies after confirmation. bca setup agent without --agent prints the same instructions for any other agent. See Guided setup.
Source of truth
AL source is authoritative. JSON, Markdown, D2, and SVG files are generated outputs.
Read the generated capability summary for the current command list. Use bca help --format json for the complete machine contract.
MCP server
BC Atlas includes a local MCP server. Install the package, then configure your MCP host to start bca-mcp (or bca mcp; both start the same server).
In VS Code, the BC Atlas extension registers the server for you: agents in the editor (for example GitHub Copilot in agent mode) list BC Atlas among their MCP servers without any configuration.
.mcp.json example
Copy the MCP JSON example to the configuration location for your MCP host.
Architecture tools accept projectRoot separately from path. Set path to the folder that the agent should render and projectRoot to the app or multi-app workspace that it should analyze.
{
"mcpServers": {
"bc-atlas": {
"command": "npx",
"args": ["--yes", "--package", "bc-atlas", "bca-mcp"]
}
}
}This configuration uses npx to get BC Atlas and start its bca-mcp executable.
If BC Atlas is installed globally, use this shorter configuration:
{
"mcpServers": {
"bc-atlas": {
"command": "bca-mcp"
}
}
}For a repository checkout, use an absolute source path:
{
"mcpServers": {
"bc-atlas": {
"command": "node",
"args": ["C:/path/to/BC-Atlas/src/mcp.js"]
}
}
}The server uses stdio. It writes protocol messages to standard output and logs to standard error.
MCP tools
bc_atlas_capabilitiesreads the command contract.bc_atlas_inspectreturns an architecture model.bc_atlas_checkreturns the architecture health report used bybca check.bc_atlas_architecturereturns the target architecture with work items (with thebca refactorcommand for moves), data ownership, and checks.bc_atlas_extraction_planplans extracting one component as an app: blockers,app.json, data moves, and steps.bc_atlas_refactor_surfacesetsAccess = Internalon objects no other component uses and writesexposesto.bca.json;dryRunby default.bc_atlas_refactor_movemoves an object to another component with namespace and using fixes;dryRun(default) returns the diff,dryRun: falsewrites it. See Split a monolith into apps.bc_atlas_reportwrites the Markdown architecture report (bca export --view report).bc_atlas_setup_plandetects the project and returns setup questions with recommendations.bc_atlas_setup_applypreviews (default) or writes.bca.json, Git hooks, and a pipeline.bc_atlas_runruns the tasks configured for a trigger and reports sync status.bc_atlas_update_checkreports whether a newer BC Atlas version exists, with release notes.bc_atlas_generate_diagramwrites D2, JSON, or SVG.bc_atlas_docs_listlists documented scenarios.bc_atlas_docs_showreads one scenario and its source hash.bc_atlas_docs_validatevalidates a documentation corpus.bc_atlas_docs_generatewrites Markdown from AL UI tests.bc_atlas_docs_editpreviews or applies one metadata change.bc_atlas_docs_glossaryreads supported documentation tags.
bc_atlas_docs_edit uses preview mode by default. A real write requires dryRun: false and the latest expectedFileHash.
Test with MCP Inspector
Run the Inspector through npx:
npx @modelcontextprotocol/inspector bca-mcpFor a checkout, use this command:
npx @modelcontextprotocol/inspector node src/mcp.js