Business Central MCP Server
Click on "Deploy 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 the schema for Customers"
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
A lightweight MCP Server for seamless integration with Microsoft Dynamics 365 Business Central, enabling MCP clients to interact with any entity in your Business Central environment. Developed by sofias tech.
Features
This server provides a clean interface to Business Central resources through the Model Context Protocol (MCP), with optimized HTTP request handling for improved performance.
Tools
The server implements the following tools:
BC_Get_Schema: Retrieves the schema of any Business Central entity including available fieldsBC_List_Items: Fetches a list of entities with optional filtering and paginationBC_Get_Items_By_Field: Searches for entities based on a specific field valueBC_Create_Item: Creates a new entity record in Business CentralBC_Update_Item: Updates an existing entity recordBC_Delete_Item: Removes an entity record from Business Central
Related MCP server: MCP Dataverse Server
Working with Business Central Entities
This server can work with any entity (table) in Business Central. When using the tools, you must provide the exact entity name as it appears in Business Central. For example:
EmployeesCustomersItemsVendorsSalesOrdersPayments
The entity name is case-sensitive and must match exactly what Business Central exposes through its API.
Architecture
The server is built with resource efficiency in mind:
Clear separation between resource management and tool implementation
Simple and maintainable codebase with minimal code duplication
Direct HTTP request handling using requests library
Setup
Create API credentials for Business Central
Configure your Business Central environment and company information
Set up the required environment variables
Environment Variables
The server requires these environment variables:
BC_URL_SERVER: Your Business Central API server URL (e.g., "https://api.businesscentral.dynamics.com/v2.0/tenant/api/v2.0")BC_USER: Your Business Central API usernameBC_PASS: Your Business Central API passwordBC_COMPANY: The name of your Business Central company
Quickstart
Installation
pip install -e .Or install from PyPI once published:
pip install mcp-business-central-serverUsing uv:
uv pip install mcp-business-central-serverClaude Desktop Integration
To integrate with Claude Desktop, update the configuration file:
On Windows: %APPDATA%/Claude/claude_desktop_config.json
On macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
Standard Integration
"mcpServers": {
"businesscentral": {
"command": "mcp-business-central-server",
"env": {
"BC_URL_SERVER": "your-bc-api-url",
"BC_USER": "your-bc-username",
"BC_PASS": "your-bc-password",
"BC_COMPANY": "your-bc-company"
}
}
}Using uvx
"mcpServers": {
"businesscentral": {
"command": "uvx",
"args": [
"mcp-business-central-server"
],
"env": {
"BC_URL_SERVER": "your-bc-api-url",
"BC_USER": "your-bc-username",
"BC_PASS": "your-bc-password",
"BC_COMPANY": "your-bc-company"
}
}
}Development
Requirements
Python 3.10+
Dependencies listed in
requirements.txtandpyproject.toml
Local Development
Clone the repository
Create a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activateInstall development dependencies:
pip install -e .Create a
.envfile with your Business Central credentials:BC_URL_SERVER=your-bc-api-url BC_USER=your-bc-username BC_PASS=your-bc-password BC_COMPANY=your-bc-companyRun the server:
python -m mcp_bc_server
Debugging
For debugging the MCP server, you can use the MCP Inspector:
npx @modelcontextprotocol/inspector -- python -m mcp_bc_serverLicense
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2025 sofias tech
Available Tools
6 toolsBC_Create_ItemC
Create a new item in Business Central.
| Name | Required | Description | Default |
|---|---|---|---|
| resource | Yes | ||
| item_data | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. The description only states 'create', implying a write operation, but fails to disclose any side effects, validation behavior, permission requirements, or error conditions, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 6-word sentence, which is concise but overly minimal. It lacks any structuring like bullet points or sections to convey needed details, resulting in under-specification rather than efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 required params, nested object, no annotations) and an output schema present, the description is severely incomplete. It fails to cover parameter formats, valid values, or usage context, leaving the agent with insufficient information to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no explanation of the parameters. The agent is given no information about what 'resource' refers to (e.g., endpoint, type) or what 'item_data' should contain, making correct parameter usage nearly impossible.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action 'create' and the resource 'item in Business Central', making the core purpose understandable. However, it does not distinguish itself from sibling tools like BC_Update_Item or BC_List_Items, which limits clarity for an agent choosing between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, common use cases, or exclusions, leaving the agent without context on appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
BC_Delete_ItemC
Delete an item from Business Central.
| Name | Required | Description | Default |
|---|---|---|---|
| resource | Yes | ||
| item_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only conveys a delete action without clarifying permanence, permissions, side effects, or return behavior. Minimal behavioral disclosure for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence), which is concise but at the expense of providing necessary context. It could be longer to cover essential details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description omits return value info and does not cover parameter semantics or usage context. Incomplete for a tool with two required params and no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage and description does not explain the 'resource' parameter meaning or expected format. 'item_id' is clear but 'resource' is ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Delete an item from Business Central') with a specific verb and resource, distinguishing it from siblings like create, list, and update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., when to delete vs. update or archive). Missing explicit context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
BC_Get_Items_By_FieldC
Get items matching a field value.
| Name | Required | Description | Default |
|---|---|---|---|
| resource | Yes | ||
| field | Yes | ||
| value | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits such as authentication requirements, rate limits, error handling (e.g., what happens if no items match), or whether the operation is read-only. Without annotations, the description carries full responsibility but provides minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at one sentence, which is efficient. However, it could be slightly expanded to include parameter hints or usage context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity and presence of an output schema, the description is insufficient for an agent to fully understand the tool's behavioral context. Missing details on parameter relationships, required permissions, and potential edge cases detract from completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters. While parameter names (resource, field, value) are somewhat self-explanatory, the description adds no additional meaning or constraints, leaving the agent to infer semantics from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves items based on a field value, distinguishing it from BC_List_Items which likely lists all items. However, it does not explicitly mention the resource parameter, which could add clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like BC_List_Items. An agent would not know if this is preferred for filtered queries or if BC_List_Items should be used for broader access.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
BC_Get_SchemaC
Get schema information for a Business Central resource.
| Name | Required | Description | Default |
|---|---|---|---|
| resource | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the basic action and does not mention idempotency, caching, error behavior, or any side effects, leaving the agent uninformed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it is too short to provide necessary details. It is not verbose, but under-specification reduces its effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, return values need not be described. However, the tool has one required parameter and the description fails to explain what 'resource' refers to, leaving the agent without enough context to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one required parameter (resource) with 0% description coverage. The description does not explain what values are valid or how to specify the resource, providing no semantic help beyond the schema's basic label.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves schema information for a Business Central resource, using a specific verb and resource. However, it does not differentiate itself from sibling tools, though the distinct purpose is implied by the tool name and sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or typical use cases. The agent receives no help in deciding between this and other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
BC_List_ItemsC
Get items from Business Central with filtering and pagination.
| Name | Required | Description | Default |
|---|---|---|---|
| resource | Yes | ||
| filter | No | ||
| top | No | ||
| skip | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description only hints at filtering and pagination behavior without detailing return structure, rate limits, or default behavior (e.g., whether it returns all items if no filter).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but omits essential details that could be added without significantly increasing length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, no parameter descriptions, an output schema not explained, and no usage guidelines, the description is incomplete for effective tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description only vaguely mentions 'filtering and pagination', failing to explain the 'resource' parameter values, filter syntax, or semantics of 'top' and 'skip'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves items from Business Central with filtering and pagination, distinguishing it from sibling tools that create, delete, update, or retrieve single items by field.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for listing with filtering/pagination but does not explicitly differentiate from BC_Get_Items_By_Field or specify when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
BC_Update_ItemC
Update an existing item in Business Central.
| Name | Required | Description | Default |
|---|---|---|---|
| resource | Yes | ||
| item_id | Yes | ||
| item_data | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only indicates mutation ('update') without disclosing behavioral details such as partial updates, idempotency, or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it is too minimal to be considered well-structured for effective use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and being a mutation tool, the description lacks essential context about invocation, parameter structure, and behavioral traits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning to parameters like 'resource' or 'item_data,' which are opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Update an existing item in Business Central,' which is a specific verb-resource pairing that distinguishes it from siblings like create, delete, and list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.1.2- First observed
BC_Create_Item - First observed
BC_Delete_Item - First observed
BC_Get_Items_By_Field - First observed
BC_Get_Schema - First observed
BC_List_Items - First observed
BC_Update_Item
TDQS
Scored across 6 tools
Each tool targets a distinct action on items (create, delete, get by field, get schema, list, update), with no overlap in purpose.
All tools use a consistent BC_verb_noun pattern in snake_case, though mixing 'Get' and 'List' for item retrieval is a minor inconsistency.
Six tools cover the essential CRUD operations plus schema and filtered lookup, which is well-scoped for an item management server.
Basic CRUD is covered, but there is no explicit get-by-id tool (though BC_Get_Items_By_Field could serve that purpose), leaving a minor gap.
Maintenance
Related MCP Connectors
Build multi-tenant apps over MCP. Schemas, CRUD, deploys — access control enforced server-side.
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
List, read, edit, and deploy your GenMB AI-generated apps from any MCP client.
- n3tz AtlasOAuthai.n3tz
Governed company knowledge over MCP. Access by contract for authorized tenants.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI clients to interact with Microsoft Dynamics 365 Business Central through MCP, providing access to customers, items, sales orders, and allowing creation of new records via natural language.2-
- FlicenseNot gradedqualityCmaintenanceEnables CRUD operations and schema exploration on Microsoft Dataverse databases using service principal authentication. It allows users to query records with OData filters, manage table entries, and retrieve metadata through a standardized MCP interface.-
- AlicenseAqualityDmaintenanceModel 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.68 npm8MIT
- AlicenseNot gradedqualityDmaintenanceEnables MCP clients to access and manage Microsoft Dynamics 365 Business Central entities, such as creating sales orders, via a modern async MCP server.MIT