Skip to main content
Glama
business-central-mcp

business-central-mcp


Обзор

Свойство

Значение

Язык

TypeScript / Node 20+

npm-пакет

business-central-mcp

Версии BC

BC27, BC28 (совместимы на уровне протокола)

Аутентификация

NavUserPassword (OAuth в планах)

Инструменты

12

Тесты

284 модульных/протокольных + 111 интеграционных

Лицензия

MIT

Related MCP server: Microsoft Business Central MCP Server

Установка

VSCode

Install in 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

  1. Скачайте последний .dxt из Releases.

  2. Дважды щёлкните по файлу. Claude Desktop откроет Настройки → Расширения и запросит URL BC, имя пользователя и пароль.

  3. Перезапустите Claude Desktop.

Отредактируйте claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.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.

Конфигурация

Переменная

Обязательно

По умолчанию

Описание

BC_BASE_URL

Да

—

Базовый URL сервера BC, например http://your-bc-server/BC

BC_USERNAME

Да

—

Имя пользователя NavUserPassword

BC_PASSWORD

Да

—

Пароль NavUserPassword

BC_PROFILE

Нет

серверный

Идентификатор профиля, например BUSINESS MANAGER. Влияет на загружаемый ролевой центр и индексируемые страницы в Tell Me.

BC_TENANT_ID

Нет

default

Только для мультитенантных развертываний.

BC_CLIENT_VERSION

Нет

27.0.0.0

Версия, сообщаемая BC при открытии сеанса.

PORT

Нет

3000

Порт HTTP-транспорта (транспорт stdio игнорирует это).

LOG_LEVEL

Нет

info

debug / info / warn / error.

LOG_DIR

Нет

./logs

Каталог для файлов журнала.

STATE_DIR

Нет

./.state

Каталог для состояния сеанса.

BC_INVOKE_TIMEOUT

Нет

30000

Тайм-аут одного вызова в мс. Завершает зависшие сеансы.

BC_RECONNECT_MAX_RETRIES

Нет

4

Попытки переподключения после завершения сеанса.

BC_RECONNECT_BASE_DELAY

Нет

1000

Базовая задержка (мс) для экспоненциальной задержки при переподключении.

Что умеет?

Инструмент

Что делает

bc_open_page

Открывает любую страницу по идентификатору — списки, карточки, документы, ролевые центры. Возвращает страницу в виде sections[] с заголовком, строками, фактбоксами и плитками ролевого центра.

bc_read_data

Обновляет один раздел: фильтрация, постраничный вывод, нарезка, проекция вкладок/столбцов. Возвращает ту же форму Section, что и bc_open_page.

bc_write_data

Записывает значения полей; BC проверяет и возвращает подтверждённые значения. Работает с учётом раздела (строки, фактбоксы, заголовок).

bc_execute_action

Выполняет действия заголовка / строки / мастера, а также детализацию по плиткам ролевого центра через ввод cue.

bc_respond_dialog

Обрабатывает запросы подтверждения и страницы запросов

bc_navigate

Выбор строк, детализация по записям, поиск по полям

bc_search_pages

Поиск Tell Me. Возвращает { name, objectType, runTarget, departmentPath, category, score } для каждого результата.

bc_close_page

Закрывает страницу и освобождает ресурсы сервера

bc_switch_company

Переключается на другую компанию в рамках сеанса

bc_list_companies

Показывает доступные компании

bc_run_report

Выполняет отчёты и заполняет параметры страницы запроса

bc_wizard_navigate

Управляет навигацией по страницам-мастерам (назад / далее / готово / отмена)

Как это работает

Этот сервер напрямую использует внутренний протокол 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 Server

bc_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 выполняется сброс сеанса

Ключевые файлы

Файл

Назначение

src/stdio-server.ts

Точка входа npm bin — транспорт MCP через stdio

src/server.ts

Точка входа HTTP-транспорта MCP

src/mcp/

Реестр инструментов MCP, схемы, обработчик запросов

src/operations/

По одному обработчику на инструмент (bc_open_page, bc_read_data и т. д.)

src/services/

Бизнес-логика страниц, данных, действий, навигации, поиска

src/protocol/

Транспорт WebSocket, типы проводов, захваты

src/session/

Жизненный цикл сеанса, модальный стек, переподключение

manifest.json

Манифест расширения Claude Desktop

scripts/build-dxt.ts

Сборка артефакта .dxt для Claude Desktop

.github/workflows/release.yml

Сборка и прикрепление .dxt при пуше тегов v*

ROADMAP.md

Отложенные задачи (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)

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    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
    24 npm
    10
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Microsoft Dynamics 365 Business Central that enables AI assistants to query and manage Business Central data via full CRUD operations.
    6
    24 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Gives 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.
    14
    1,539 npm
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP 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.
    6
    24 npm
    MIT