Model 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.
- ✅ Correct API URLs: Uses proper
/companies(id)/resourceformat (no ODataV4 segment) - ✅ Zero Installation: Run with
npx- no pre-installation required - ✅ Azure CLI Auth: Leverages existing Azure CLI authentication
- ✅ Clean Tool Names: No prefixes, just
get_schema,list_items, etc. - ✅ Full CRUD: Create, read, update, and delete Business Central records
No installation needed! Configure in Claude Desktop or Claude Code:
{
"mcpServers": {
"business-central": {
"type": "stdio",
"command": "cmd",
"args": ["/c", "npx", "-y", "@knowall-ai/mcp-business-central"],
"env": {
"BC_URL_SERVER": "https://api.businesscentral.dynamics.com/v2.0/{tenant-id}/{environment}/api/v2.0",
"BC_COMPANY": "Your Company Name",
"BC_AUTH_TYPE": "azure_cli"
}
}
}
}Note for Windows: Use cmd with /c as shown above for proper npx execution.
Install via Smithery:
npx -y @smithery/cli install @knowall-ai/mcp-business-central --client claudegit clone https://github.com/knowall-ai/mcp-business-central.git
cd mcp-business-central
npm install
npm run build
node build/index.js| Variable | Required | Description | Example |
|---|---|---|---|
BC_URL_SERVER |
Yes | Business Central API base URL | https://api.businesscentral.dynamics.com/v2.0/{tenant}/Production/api/v2.0 |
BC_COMPANY |
Yes | Company display name | KnowAll Ltd |
BC_AUTH_TYPE |
No | Authentication type (default: azure_cli) |
azure_cli |
- Tenant ID: Find in Azure Portal → Azure Active Directory → Overview
- Environment: Usually
ProductionorSandbox - Company Name: The display name shown in Business Central
Example URL format:
https://api.businesscentral.dynamics.com/v2.0/00000000-0000-0000-0000-000000000000/Production/api/v2.0
- Azure CLI: Must be installed and authenticated
- Install: https://docs.microsoft.com/cli/azure/install-azure-cli
- Login:
az login - Get token:
az account get-access-token --resource https://api.businesscentral.dynamics.com
Get OData metadata for a Business Central resource.
Parameters:
resource(string, required): Resource name (e.g.,customers,contacts,salesOpportunities)
Example:
{
"resource": "customers"
}List items with optional filtering and pagination.
Parameters:
resource(string, required): Resource namefilter(string, optional): OData filter expressiontop(number, optional): Maximum number of items to returnskip(number, optional): Number of items to skip for pagination
Example:
{
"resource": "customers",
"filter": "displayName eq 'Contoso'",
"top": 10
}Get items matching a specific field value.
Parameters:
resource(string, required): Resource namefield(string, required): Field name to filter byvalue(string, required): Value to match
Example:
{
"resource": "contacts",
"field": "companyName",
"value": "Contoso Ltd"
}Create a new item in Business Central.
Parameters:
resource(string, required): Resource nameitem_data(object, required): Item data to create
Example:
{
"resource": "contacts",
"item_data": {
"displayName": "John Doe",
"companyName": "Contoso Ltd",
"email": "[email protected]"
}
}Update an existing item.
Parameters:
resource(string, required): Resource nameitem_id(string, required): Item ID (GUID)item_data(object, required): Fields to update
Example:
{
"resource": "customers",
"item_id": "1366066e-7688-f011-b9d1-6045bde9b95f",
"item_data": {
"displayName": "Updated Name"
}
}Delete an item from Business Central.
Parameters:
resource(string, required): Resource nameitem_id(string, required): Item ID (GUID)
Example:
{
"resource": "contacts",
"item_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6"
}companies- Company informationcustomers- Customer recordscontacts- Contact recordssalesOpportunities- Sales opportunitiessalesQuotes- Sales quotessalesOrders- Sales orderssalesInvoices- Sales invoicesitems- Product/service itemsvendors- Vendor records
- Ensure Azure CLI is logged in:
az login - Verify you have access to Business Central in your tenant
- Test token retrieval:
az account get-access-token --resource https://api.businesscentral.dynamics.com
- Check company name matches exactly (case-sensitive)
- Verify company exists: Access Business Central web UI
- Ensure URL includes correct tenant ID and environment
- Check resource name spelling (e.g.,
customersnotcustomer) - Some resources may not be available in your Business Central version
- Use
get_schemato explore available resources
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode for development
npm run devMIT
Issues and pull requests welcome at https://github.com/knowall-ai/mcp-business-central
- MCP Specification: modelcontextprotocol.io