business-central-mcp-server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@business-central-mcp-servershow me recent sales invoices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
business-central-mcp-server
An MCP server that exposes Dynamics 365 Business Central (online) data to an MCP client (Claude Code, Claude Desktop, etc.) — environments, companies, and any entity reachable through the standard v2.0 API or a custom AL API.
It talks to api.businesscentral.dynamics.com using an Entra token for that
same audience. With delegated auth (interactive / cli / azure-powershell)
it needs no app registration and no admin consent — it operates as the
signed-in user, constrained by that user's Business Central permission sets.
Tools
Read (always on)
Tool | Purpose |
| List BC environments (production + sandboxes) in the tenant. |
| List companies (legal entities) in an environment; ids feed the entity tools. |
| List the entity sets on an API route (customers, items, salesInvoices, ...). |
| OData query over an entity set — |
| Single record by id (GUID), including its |
Custom APIs published from AL extensions are reachable everywhere via
api_route: "{publisher}/{group}/{version}".
Write (BC_MCP_MODE=write)
Tool | Purpose |
| Insert a record (customer, item, sales order, ...). |
| PATCH fields on a record, |
| Call a bound action — |
Every write call is audit-logged to stderr with timestamp, tool, target, and
caller identity. These mutate real ERP data — posting a document creates
ledger entries that cannot simply be deleted. Point BC_DEFAULT_ENVIRONMENT
at a sandbox while experimenting.
Destructive (BC_MCP_MODE=write and BC_MCP_ALLOW_DELETE=true)
Tool | Purpose |
| Permanently delete a record. Two-step dry_run → confirm_token → apply. |
The destructive tier is off by default. When enabled, each call is a plan
first: dry_run=true (the default) returns the record that would be removed
plus a single-use confirm_token; only a second call with dry_run=false and
that token performs the delete, guarded by an If-Match etag.
Related MCP server: Business Central MCP Server
Setup
cd business-central-mcp-server
npm installRegister it with your MCP client. Example .claude.json entry (delegated auth,
read-only):
{
"mcpServers": {
"business-central": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/business-central-mcp-server/index.js"],
"env": {
"AZURE_TENANT_ID": "<your-entra-tenant-id>",
"BC_AUTH_MODE": "interactive",
"BC_MCP_MODE": "read",
"BC_DEFAULT_ENVIRONMENT": "Production"
}
}
}
}To allow creating/updating records and invoking bound actions, set
"BC_MCP_MODE": "write". To also allow deletion, add
"BC_MCP_ALLOW_DELETE": "true".
Set BC_DEFAULT_COMPANY_ID to a value from list_companies if you work in a
single company and want to omit company_id on every call.
See .env.example for the full list of environment variables,
including all supported auth modes.
Auth notes
Delegated (recommended):
interactive,device-code,cli, orazure-powershell. No app registration needed; the caller acts as the signed-in user, limited by that user's BC permission sets and company access.Service principal: non-interactive, but the SP must be registered as an Entra application inside Business Central (Entra Applications page, with permission sets assigned) before the data plane will accept it.
list_environmentsuses the admin-center discovery API, which additionally requires BC admin-center access. The other tools work without it if you pass environment names directly.
Requirements
Node.js >= 20
An Entra identity licensed for Business Central in the target tenant.
License
MIT — see LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceProvides a secure gateway to the Dynamics 365 F\&O OData API, enabling LLMs and MCP clients to query and manage entities such as customers, system users, and more.1MIT
- AlicenseBqualityDmaintenanceEnables MCP clients to interact with Microsoft Dynamics 365 Business Central entities, providing tools to get schemas, list, create, update, and delete records.6MIT
- AlicenseAqualityCmaintenanceModel Context Protocol (MCP) server for Microsoft Dynamics 365 Business Central. Provides AI assistants with direct access to Business Central data through properly formatted API v2.0 calls.6228MIT
- Alicense-qualityDmaintenanceEnables MCP clients to access and manage Microsoft Dynamics 365 Business Central entities, such as creating sales orders, via a modern async MCP server.MIT
Related MCP Connectors
Provide seamless access to Appfolio Property Manager Reporting API through a standardized MCP serv…
Search, document and execute authenticated API calls across 500+ apps via one MCP server
34 production API tools over one hosted MCP endpoint.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/user-vik/business-central-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server