bc-source-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BC_SOURCE_REPO_URL | No | URL du repo upstream -- override si vous avez un fork | StefanMaron/MSDyn365BC.Sandbox.Code.History |
| BC_SOURCE_CACHE_DIR | No | Cache local (partial clone + worktrees + SQLite). ~2-5 Go selon les versions indexees. | ~/.bc-source-mcp/ |
| BC_SOURCE_LOG_LEVEL | No | trace/debug/info/warn/error/fatal | info |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| bc_list_branchesA | Lists all branches available in the upstream BC sources repository (Stefan Maron mirror). Each branch corresponds to a (localization, version) pair, e.g. "w1-26", "fr-27-vNext". By default, meta/internal branches (main, base, core, serena) are filtered out. Set include_meta=true to include them. |
| bc_list_versionsA | Lists the Business Central major versions for which sources are available in this MCP. Set include_vnext=true to also list the preview/-vNext variants. |
| bc_list_localizationsA | Lists the country/region codes available as branches in the upstream repository, with their human-readable names. "w1" is the worldwide base. |
| bc_find_object_across_branchesA | Searches for an AL object (by type and exact name) across all branches that have already been indexed in this MCP instance. Use this to compare presence/path of an object across versions or localizations. Does not trigger indexing — call bc_list_apps on a branch first if you want to include it. |
| bc_list_appsA | Lists top-level application folders in a given branch (e.g. "Base Application", "System Application", "Business Foundation"). If the branch has not been indexed yet, this triggers a first-time fetch + sparse-checkout + indexing (can take 1-5 minutes the first time). |
| bc_list_objectsA | Lists AL objects in a branch, with optional filters by type, app, and name pattern. Use "*" as wildcard in name_pattern (translated to SQL LIKE %). Triggers indexing on first use of a branch. |
| bc_get_objectA | Returns the AL source of a specific object (table, page, codeunit, report, enum, query, xmlport, or any extension). Identifies the object by branch + type + name (case-insensitive on type, exact on name). Triggers indexing on first use of a branch. Use line_start/line_end to fetch only a slice (1-indexed, inclusive) — useful for large objects (~100k lines). Use include_source=false to skip the source and get only metadata (size, total_lines). |
| bc_get_event_publishersA | Lists all event publishers ([IntegrationEvent], [BusinessEvent], [InternalEvent]) defined inside a specific AL object. Returns the event name, kind, full procedure signature, attribute, and source line. Useful for finding events to subscribe to. |
| bc_get_procedureA | Returns the signature, body, attributes, and modifier of a named procedure within an AL object. Useful when you only need a single procedure rather than the full object source. |
| bc_search_codeA | Searches AL source code in a branch using regular expressions (ripgrep). Returns matching lines with optional context. Filter by object_type (file suffix, e.g. "table" → "*.Table.al") or by app (top-level folder). Triggers indexing on first use of a branch (for the worktree). |
| bc_search_ftsA | Token-based full-text search across indexed AL sources using SQLite FTS5. Faster than bc_search_code (no disk re-scan) and supports cross-branch queries. Use FTS5 syntax: bare terms ("Customer Posting"), phrases (""Sales Header""), boolean (term1 AND term2), prefixes (Cust*). Returns ranked snippets with matched tokens wrapped in <<...>>. For regex patterns, prefer bc_search_code. |
| bc_refreshA | Re-fetches a branch from upstream and re-indexes it. If branch is omitted, refreshes every already-indexed branch sequentially. |
| bc_cache_statusA | Reports the total disk usage of the bc-source-mcp cache, the number of indexed branches, their object counts, and last fetch/index dates. |
| bc_prune_cacheA | Removes worktrees and index entries for branches not matching the keep filters. Pass keep_branches (explicit allowlist) or keep_versions/keep_localizations to retain only certain version/loc combinations. The partial-clone Git repo itself is never deleted. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/glachana/bc-source-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server