Skip to main content
Glama
luisMDev

Business Central MCP Server

by luisMDev

Business Central MCP Server

License: MIT

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 fields

  • BC_List_Items: Fetches a list of entities with optional filtering and pagination

  • BC_Get_Items_By_Field: Searches for entities based on a specific field value

  • BC_Create_Item: Creates a new entity record in Business Central

  • BC_Update_Item: Updates an existing entity record

  • BC_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:

  • Employees

  • Customers

  • Items

  • Vendors

  • SalesOrders

  • Payments

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

  1. Create API credentials for Business Central

  2. Configure your Business Central environment and company information

  3. Set up the required environment variables

Environment Variables

The server requires these environment variables:

Quickstart

Installation

pip install -e .

Or install from PyPI once published:

pip install mcp-business-central-server

Using uv:

uv pip install mcp-business-central-server

Claude 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.txt and pyproject.toml

Local Development

  1. Clone the repository

  2. Create a virtual environment:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  3. Install development dependencies:

    pip install -e .
  4. Create a .env file 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-company
  5. Run 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_server

License

This project is licensed under the MIT License - see the LICENSE file for details.

Copyright (c) 2025 sofias tech

Available Tools

6 tools
BC_Create_ItemC

Create a new item in Business Central.

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceYes
item_dataYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceYes
item_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceYes
fieldYes
valueYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceYes
filterNo
topNo
skipNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceYes
item_idYes
item_dataYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 6 tool updatesv0.1.2
    • First observedBC_Create_Item
    • First observedBC_Delete_Item
    • First observedBC_Get_Items_By_Field
    • First observedBC_Get_Schema
    • First observedBC_List_Items
    • First observedBC_Update_Item

TDQS

B3.1/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct action on items (create, delete, get by field, get schema, list, update), with no overlap in purpose.

Naming Consistency4/5

All tools use a consistent BC_verb_noun pattern in snake_case, though mixing 'Get' and 'List' for item retrieval is a minor inconsistency.

Tool Count5/5

Six tools cover the essential CRUD operations plus schema and filtered lookup, which is well-scoped for an item management server.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables 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.
    -
  • A
    license
    A
    quality
    D
    maintenance
    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.
    6
    8 npm
    8
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables MCP clients to access and manage Microsoft Dynamics 365 Business Central entities, such as creating sales orders, via a modern async MCP server.
    MIT