Business Central MCP Server
Enables MCP clients to access and manage Microsoft Dynamics 365 Business Central entities, such as creating sales orders, via a modern async MCP server.
README
Business Central MCP Server
A modern MCP server designed for effortless integration with Microsoft Dynamics 365 Business Central, allowing MCP clients to easily access and manage any entity within your Business Central environment. Developed by Tan Tran.
Features
- Async interface to Business Central resources via Model Context Protocol (MCP)
- Optimized HTTP request handling
- Tools for managing sales orders and more
Project Structure
main.py # Entrypoint for the MCP server
requirements.txt # Python dependencies
src/
business_central_client.py
modes.py
sale_order_tools.py
# ...other tool modules
LICENSE
README.md
Setup
- Cài đặt Poetry (nếu chưa có):
curl -sSL https://install.python-poetry.org | python3 -
- Đăng ký ứng dụng trong Azure Portal (Microsoft Entra ID) để lấy Client ID, Tenant ID, và Client Secret (xem docs/enabling-api.md).
- Cấp quyền API cho app (Business Central, Application permissions, ...).
- Copy
.env.examplethành.envvà điền thông tin cấu hình:
BC_API_URL=https://api.businesscentral.dynamics.com/v2.0/<environment>
BC_TENANT_ID=<your-tenant-id>
BC_CLIENT_ID=<your-client-id>
BC_CLIENT_SECRET=<your-client-secret>
BC_COMPANY=<company-name>
BC_SCOPE=https://api.businesscentral.dynamics.com/.default
ENABLE_RESOURCE_TOOLS=true # Enable or disable resource tools registration (true/false)
- Cài dependencies bằng Poetry:
poetry install
- (Tùy chọn) Nếu muốn vào môi trường ảo Poetry:
poetry shell
- Chạy server:
poetry run python main.py
Environment Variables
BC_API_URL: Business Central API base URLBC_TENANT_ID: Azure AD tenant IDBC_CLIENT_ID: Application (client) IDBC_CLIENT_SECRET: Client secretBC_COMPANY: Your Business Central company nameBC_SCOPE: OAuth2 scope (default: https://api.businesscentral.dynamics.com/.default)ENABLE_RESOURCE_TOOLS: Enable or disable resource tools registration (true/false). If set tofalse, resource endpoints will not be registered.
Tool Registration
Tools are registered in main.py:
from src.tools.sales_order_tools import register_sales_order_tools
register_sales_order_tools(mcp)
Add new tools by creating modules in src/ and registering them in main.py.
Development
- All business logic is in
src/. - Add new tools by creating new modules in
src/and registering them inmain.py.
Sales Order Support
Create Sales Order (Tool: create_sales_order)
This server supports creating new sales orders in Business Central via the MCP tool create_sales_order.
Input parameters:
customer_number(str): Customer number in Business Centralitems(list of str): List of item IDs to add to the orderquantities(list of float): List of quantities for each item (must match length ofitems)order_date(str, optional): Order date in formatYYYY-MM-DD
Example tool call:
{
"tool": "create_sales_order",
"arguments": {
"customer_number": "10000",
"items": ["ITEM001", "ITEM002"],
"quantities": [2, 5],
"order_date": "2025-07-28"
}
}
- The tool will create a sales order header and add lines for each item/quantity pair.
- Returns the created sales order object if successful.
See docs/sale-order.md for API details and field mapping.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Copyright (c) 2025 Tan Tran (me@tantran.dev, www.tantran.dev)
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases