business-central-mcp-server
business-central-mcp-server
Сервер MCP, который предоставляет данные Dynamics 365 Business Central (online) MCP-клиенту (Claude Code, Claude Desktop и т. д.) — среды, компании и любые сущности, доступные через стандартный API v2.0 или пользовательский AL API.
Он взаимодействует с api.businesscentral.dynamics.com, используя токен Entra для той же аудитории. При делегированной аутентификации (interactive / cli / azure-powershell) не требуется регистрация приложения и согласие администратора — он работает от имени вошедшего пользователя, ограниченного наборами разрешений Business Central этого пользователя.
Tools
Read (always on)
Tool | Purpose |
| Список сред BC (production + песочницы) в клиенте. |
| Список компаний (юридических лиц) в среде; идентификаторы используются инструментами сущностей. |
| Список наборов сущностей на маршруте API (customers, items, salesInvoices, ...). |
| OData-запрос по набору сущностей — |
| Одна запись по идентификатору (GUID), включая её |
Пользовательские API, опубликованные из расширений AL, доступны везде через api_route: "{publisher}/{group}/{version}".
Exporting documents
Business Central предоставляет сгенерированные документы и загруженные файлы как потоки мультимедиа OData, а не как поля JSON. export_file получает эти байты и записывает их на диск; инструмент возвращает путь, размер и SHA-256, а не содержимое, поэтому большой PDF никогда не попадает в контекст модели. Он только читает из BC, но поскольку записывает в локальную файловую систему, он регистрируется в уровне write — установите BC_MCP_MODE=write, чтобы использовать его.
Сначала проверьте ссылку на мультимедиа, затем скачайте её:
// get_entity — confirm the invoice has a renderable PDF
{ "entity_set": "salesInvoices", "record_id": "<guid>", "sub_path": "pdfDocument" }
// export_file — write the bytes out
{
"entity_set": "salesInvoices",
"record_id": "<guid>",
"sub_path": "pdfDocument/pdfDocumentContent",
"output_path": "./exports"
}Полезные пути к мультимедиа: pdfDocument/pdfDocumentContent для salesInvoices, salesCreditMemos и purchaseInvoices; content для attachments; picture для items и employees.
output_path может быть файлом или каталогом — каталог (или завершающий разделитель) означает, что имя файла формируется из записи и определенного типа содержимого. Если его полностью опустить, используется BC_EXPORT_DIR, затем рабочая директория. Существующие файлы никогда не перезаписываются, если не передать overwrite: true, а загрузки, превышающие max_bytes (по умолчанию 64 МиБ), отклоняются до записи чего-либо.
Write (BC_MCP_MODE=write)
Tool | Purpose |
| Вставить запись (customer, item, sales order, ...). |
| Обновить поля записи, конкурентность с |
| Вызвать связанное действие — |
| Скачать документ (PDF счета, вложение, изображение) в локальный файл. |
Каждый вызов записи регистрируется в stderr с отметкой времени, инструментом, целью и идентификатором вызывающего. Эти операции изменяют реальные данные ERP — публикация документа создает записи главной книги, которые нельзя просто удалить. Укажите BC_DEFAULT_ENVIRONMENT на песочницу при экспериментах.
Destructive (BC_MCP_MODE=write and BC_MCP_ALLOW_DELETE=true)
Tool | Purpose |
| Безвозвратно удалить запись. Двухэтапный процесс: dry_run → confirm_token → apply. |
Деструктивный уровень отключен по умолчанию. При включении каждый вызов сначала является планом: dry_run=true (по умолчанию) возвращает запись, которая будет удалена, плюс одноразовый confirm_token; только второй вызов с dry_run=false и этим токеном выполняет удаление, защищенное If-Match etag.
Related MCP server: Microsoft Business Central MCP Server
Install in Claude Desktop
Скачайте business-central-mcp-server-<version>.mcpb из последнего релиза и откройте его. Это вся установка — не нужно клонировать репозиторий, выполнять npm install или иметь Node на вашей машине. Claude Desktop поставляется со своей средой выполнения Node, а пакет содержит свои зависимости.
Диалог установки собирает:
Field | Required | Notes |
Entra tenant ID | yes | GUID клиента, в котором находится ваш Business Central. |
Export folder | yes | Куда |
Sign-in method | no | По умолчанию |
Server mode | no |
|
Allow record deletion | no | Выключено по умолчанию. Требует режима записи; игнорируется без него. |
Default environment | no | Пропустить передачу |
Default company ID | no | Пропустить передачу |
Client ID / secret | no | Только для входа через субъект-службу. Секрет хранится в диспетчере учетных данных ОС. |
Token scope / API base | no | Только для суверенных облаков или встроенных развертываний ISV. |
При входе по умолчанию interactive оставьте идентификатор клиента и секрет пустыми. Сервер использует публичный клиент Azure CLI, открывает ваш браузер и действует от имени вошедшего пользователя с наборами разрешений Business Central этого пользователя. Не требуется регистрация приложения и согласие администратора.
Запрос браузера появляется при каждом перезапуске Claude Desktop. Токены хранятся только в памяти; их сохранение потребовало бы нативного модуля кэша учетных данных и отдельного пакета для каждой платформы.
Building the bundle yourself
npm ci
npm run build:mcpb # writes dist/business-central-mcp-server-<version>.mcpb
npm run verify:mcpb # unpacks it and boots the server the way Desktop wouldbuild:mcpb отказывается создавать пакет, если версия манифеста не совпадает с package.json, или если объявленный список инструментов не совпадает с тем, что сервер фактически регистрирует.
Setup (Claude Code and other MCP clients)
cd business-central-mcp-server
npm installЗарегистрируйте его в вашем MCP-клиенте. Пример записи в .claude.json (делегированная аутентификация, только чтение):
{
"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"
}
}
}
}Чтобы разрешить создание/обновление записей и вызов связанных действий, установите "BC_MCP_MODE": "write". Чтобы также разрешить удаление, добавьте "BC_MCP_ALLOW_DELETE": "true".
Установите BC_DEFAULT_COMPANY_ID в значение из list_companies, если вы работаете в одной компании и хотите опускать company_id при каждом вызове.
Установите BC_EXPORT_DIR, чтобы выбрать, куда export_file записывает файлы, когда вызов опускает output_path.
См. .env.example для полного списка переменных окружения, включая все поддерживаемые режимы аутентификации.
Auth notes
Делегированная (рекомендуется):
interactive,device-code,cliилиazure-powershell. Регистрация приложения не требуется; вызывающий действует от имени вошедшего пользователя, ограниченного наборами разрешений BC и доступом к компаниям этого пользователя.Субъект-служба: неинтерактивный, но субъект-служба должна быть зарегистрирована как приложение Entra внутри Business Central (страница приложений Entra, с назначенными наборами разрешений), прежде чем плоскость данных примет его.
list_environmentsиспользует API обнаружения центра администрирования, который дополнительно требует доступа к центру администрирования BC. Остальные инструменты работают без него, если передавать имена сред напрямую.
Requirements
Удостоверение Entra с лицензией на Business Central в целевом клиенте.
Node.js >= 20, если вы запускаете из исходного кода. Пакет Claude Desktop не требует этого; Desktop предоставляет среду выполнения.
License
MIT — см. 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 Connectors
Provide seamless access to Appfolio Property Manager Reporting API through a standardized MCP serv…
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Authenticated, user-scoped MCP connectors for 30+ business systems.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables MCP clients to interact with Microsoft Dynamics 365 Business Central entities, providing tools to get schemas, list, create, update, and delete records.6MIT
- 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.6308MIT
- 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
- AlicenseAqualityCmaintenanceMCP server for Microsoft Dynamics 365 Business Central that enables AI assistants to query and manage Business Central data via full CRUD operations.630MIT
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