business-central-mcp
Обзор
Свойство | Значение |
Язык | TypeScript / Node 20+ |
npm-пакет | |
Версии BC | BC27, BC28 (совместимы на уровне протокола) |
Аутентификация | NavUserPassword (OAuth в планах) |
Инструменты | 12 |
Тесты | 284 модульных/протокольных + 111 интеграционных |
Лицензия | MIT |
Related MCP server: Microsoft Business Central MCP Server
Установка
VSCode
Нажмите на значок. VSCode откроется, предложит добавить сервер и запишет изменения в ваш пользовательский mcp.json.
Вам всё равно потребуется задать BC_BASE_URL, BC_USERNAME и BC_PASSWORD в блоке env записи. VSCode откроет файл для редактирования.
Рабочая область: создайте .vscode/mcp.json:
{
"servers": {
"business-central": {
"command": "npx",
"args": ["-y", "business-central-mcp"],
"env": {
"BC_BASE_URL": "http://your-bc-server/BC",
"BC_USERNAME": "your-user",
"BC_PASSWORD": "your-password"
}
}
}
}Claude Code
claude mcp add business-central \
-e BC_BASE_URL=http://your-bc-server/BC \
-e BC_USERNAME=you \
-e BC_PASSWORD=secret \
-- npx -y business-central-mcpОграничьте его текущим проектом с помощью --scope project. Параметры области см. в claude mcp --help.
Claude Desktop
Скачайте последний
.dxtиз Releases.Дважды щёлкните по файлу. Claude Desktop откроет Настройки → Расширения и запросит URL BC, имя пользователя и пароль.
Перезапустите Claude Desktop.
Отредактируйте claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"business-central": {
"command": "npx",
"args": ["-y", "business-central-mcp"],
"env": {
"BC_BASE_URL": "http://your-bc-server/BC",
"BC_USERNAME": "your-user",
"BC_PASSWORD": "your-password"
}
}
}
}Перезапустите Claude Desktop.
Конфигурация
Переменная | Обязательно | По умолчанию | Описание |
| Да | — | Базовый URL сервера BC, например |
| Да | — | Имя пользователя NavUserPassword |
| Да | — | Пароль NavUserPassword |
| Нет | серверный | Идентификатор профиля, например |
| Нет |
| Только для мультитенантных развертываний. |
| Нет |
| Версия, сообщаемая BC при открытии сеанса. |
| Нет |
| Порт HTTP-транспорта (транспорт stdio игнорирует это). |
| Нет |
|
|
| Нет |
| Каталог для файлов журнала. |
| Нет |
| Каталог для состояния сеанса. |
| Нет |
| Тайм-аут одного вызова в мс. Завершает зависшие сеансы. |
| Нет |
| Попытки переподключения после завершения сеанса. |
| Нет |
| Базовая задержка (мс) для экспоненциальной задержки при переподключении. |
Что умеет?
Инструмент | Что делает |
| Открывает любую страницу по идентификатору — списки, карточки, документы, ролевые центры. Возвращает страницу в виде |
| Обновляет один раздел: фильтрация, постраничный вывод, нарезка, проекция вкладок/столбцов. Возвращает ту же форму |
| Записывает значения полей; BC проверяет и возвращает подтверждённые значения. Работает с учётом раздела (строки, фактбоксы, заголовок). |
| Выполняет действия заголовка / строки / мастера, а также детализацию по плиткам ролевого центра через ввод |
| Обрабатывает запросы подтверждения и страницы запросов |
| Выбор строк, детализация по записям, поиск по полям |
| Поиск Tell Me. Возвращает |
| Закрывает страницу и освобождает ресурсы сервера |
| Переключается на другую компанию в рамках сеанса |
| Показывает доступные компании |
| Выполняет отчёты и заполняет параметры страницы запроса |
| Управляет навигацией по страницам-мастерам (назад / далее / готово / отмена) |
Как это работает
Этот сервер напрямую использует внутренний протокол WebSocket BC — тот же, что использует веб-клиент. Он был восстановлен из декомпилированных сборок сервера BC. Никаких конечных точек OData, служб SOAP или Selenium.
Одно подключение WebSocket на сеанс. Все операции сериализуются через очередь промисов. BC27 и BC28 совместимы на уровне протокола.
LLM (Claude / Copilot / etc.)
|
v MCP (stdio or HTTP)
business-central-mcp
|
v WebSocket + JSON-RPC
BC Web Service Tier (BC27 / BC28)
|
v internal calls
BC Serverbc_open_page возвращает страницу в виде плоского списка разделов:
{
"pageContextId": "session:page:21:abc",
"pageType": "Card",
"caption": "Customer Card",
"isModal": false,
"sections": [
{ "sectionId": "header", "kind": "header", "fields": [...], "actions": [...] },
{ "sectionId": "factbox:Customer Statistics", "kind": "factbox", "fields": [...] }
]
}Каждый раздел имеет собственную структуру содержимого:
Карточный стиль (
headerна страницах карточек,factbox,requestPage):fields[]и (дляheader)actions[]Стиль списка (
linesв документах,headerна страницах списков, вложенные страницы повторителей):rows[]иtotalRowCountПлитки ролевого центра (CardPart, размещённые в ролевом центре):
cues[]сname,value,groupCaption,synopsis,hasActionкаждой плитки. Детализация черезbc_execute_action { section, cue }.
bc_read_data возвращает один Section для запрошенного sectionId (по умолчанию "header"). Идентификатор раздела для FactBox или вложенной страницы берётся из ответа bc_open_page.
Автоматическое переподключение с экспоненциальной задержкой после завершения сеанса
Обрабатывает удержание NTLM-слота BC в течение ~15 секунд после сбоев
Автоматически закрывает всплывающие окна лицензий на новых базах данных
Тайм-аут вызова завершает зависшие сеансы и запускает восстановление
Автовосстановление после
LogicalModalityViolationExceptionв середине сеанса: согласует модальный стек и прозрачно повторяет попытку; при залипании диалога подтверждения BC выполняется сброс сеанса
Ключевые файлы
Файл | Назначение |
| Точка входа npm |
| Точка входа HTTP-транспорта MCP |
| Реестр инструментов MCP, схемы, обработчик запросов |
| По одному обработчику на инструмент ( |
| Бизнес-логика страниц, данных, действий, навигации, поиска |
| Транспорт WebSocket, типы проводов, захваты |
| Жизненный цикл сеанса, модальный стек, переподключение |
| Манифест расширения Claude Desktop |
| Сборка артефакта |
| Сборка и прикрепление |
| Отложенные задачи (OAuth, Cursor, мастер инициализации) |
Разработка
git clone https://github.com/SShadowS/business-central-mcp
cd business-central-mcp
npm install
npm run start:stdio-direct # Run from source
npm test # 284 unit + protocol tests
npm run test:integration # 111 integration tests against real BC (requires running BC server)Дорожная карта
OAuth, поддержка Cursor, интерактивный мастер init и несколько пробелов в протоколе.
Полный список и приоритеты см. в ROADMAP.md.
Автор: Torben Leth (sshadows@sshadows.dk) Лицензия: MIT (см. LICENSE)
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
MCP server that lets your AI assistant build and deploy apps, hosting each one at a live URL.
MCP server for LeadDelta — manage LinkedIn connections and CRM data via AI assistants.
Related MCP Servers
- AlicenseAqualityCmaintenanceModel 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.624 npm10MIT
- AlicenseAqualityDmaintenanceMCP server for Microsoft Dynamics 365 Business Central that enables AI assistants to query and manage Business Central data via full CRUD operations.624 npmMIT
- AlicenseAqualityDmaintenanceGives AI assistants direct access to Microsoft Dynamics 365 Business Central via the native WebSocket protocol, replacing OData, APIs, and browser automation. Enables page navigation, data reading/writing, actions, searches, and report execution.141,539 npmMIT
- AlicenseBqualityDmaintenanceMCP server for Microsoft Dynamics 365 Business Central, enabling AI assistants to perform CRUD operations, query data, and retrieve schemas via Business Central API v2.0.624 npmMIT