Skip to main content
Glama
masoniqbal777

business-central-mcp


개요

속성

언어

TypeScript / Node 20+

npm 패키지

business-central-mcp

BC 버전

BC27, BC28 (와이어 호환)

인증

NavUserPassword (OAuth는 로드맵에 있음)

도구

12

테스트

284개 단위/프로토콜 + 112개 통합

라이선스

MIT

설치

VSCode

VSCode에 설치

배지를 클릭하세요. VSCode가 열리면서 서버 추가를 안내하고, 사용자 mcp.json에 기록합니다.

항목의 env 블록에 BC_BASE_URL, BC_USERNAME, BC_PASSWORD를 설정해야 합니다. 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를 다운로드하세요.

  2. 더블클릭하세요. Claude Desktop이 열리면서 설정 → 확장 프로그램에서 BC URL, 사용자 이름, 비밀번호를 입력하라는 안내가 표시됩니다.

  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

BC 서버 기본 URL, 예: http://your-bc-server/BC

BC_USERNAME

NavUserPassword 사용자 이름

BC_PASSWORD

NavUserPassword 비밀번호

BC_PROFILE

아니요

서버 기본값

프로필 ID, 예: BUSINESS MANAGER. 로드되는 Role Center와 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

호출당 제한 시간(ms). 응답 없는 세션을 종료합니다.

BC_RECONNECT_MAX_RETRIES

아니요

4

세션 종료 후 재연결 시도 횟수.

BC_RECONNECT_BASE_DELAY

아니요

1000

지수 백오프 재연결의 기본 지연 시간(ms).

제공 기능

도구

기능

bc_open_page

ID로 모든 페이지 열기 — 목록, 카드, 문서, Role Center. 페이지를 sections[]로 반환하며 헤더, 라인, FactBox, Role Center 큐 그룹 타일을 포함합니다.

bc_read_data

단일 섹션 새로고침: 필터, 페이지네이션, 슬라이스, 탭/열 프로젝션. bc_open_page와 동일한 Section 형태를 반환합니다.

bc_write_data

필드 값 쓰기; BC가 검증 후 확인된 값을 반영합니다. 섹션 인지형(라인, FactBox, 헤더).

bc_execute_action

헤더 / 라인 / 마법사 작업 실행, 또는 cue 입력을 통한 Role Center 큐 타일 드릴다운.

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

NavigatePage / 마법사 흐름 제어(뒤로 / 다음 / 완료 / 취소)

작동 방식

이 서버는 BC의 내부 WebSocket 프로토콜을 직접 사용합니다 — 브라우저 기반 웹 클라이언트가 사용하는 것과 동일한 프로토콜입니다. 디컴파일된 BC 서버 어셈블리에서 리버스 엔지니어링되었습니다. OData 엔드포인트 없음, SOAP 서비스 없음, Selenium 없음.

세션당 WebSocket 연결 1개. 모든 작업은 프로미스 큐를 통해 직렬화됩니다. 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": [...] }
  ]
}

각 섹션은 고유한 콘텐츠 형태를 가집니다:

  • 카드 스타일 (Card 페이지의 header, factbox, requestPage): fields[] 및 (header의 경우) actions[]

  • 목록 스타일 (Documents의 lines, List 페이지의 header, 반복기 하위 페이지): rows[]totalRowCount

  • 큐 타일 (Role Center에 호스팅된 CardPart): 각 타일의 name, value, groupCaption, synopsis, hasAction을 포함한 cues[]. bc_execute_action { section, cue }로 드릴다운합니다.

bc_read_data는 요청된 sectionId(기본값 "header")에 대한 단일 Section을 반환합니다. FactBox 또는 하위 페이지의 섹션 ID는 bc_open_page 응답에서 가져옵니다.

  • 세션 종료 후 지수 백오프를 통한 자동 재연결

  • 충돌 후 BC의 약 15초 NTLM 인증 슬롯 보류 처리

  • 새 데이터베이스의 라이선스 팝업 자동 닫기

  • 호출 제한 시간이 응답 없는 세션을 종료하고 복구 트리거

  • 세션 중 LogicalModalityViolationException 자동 복구: 모달 스택을 조정하고 투명하게 재시도; BC가 확인 대화 상자를 계속 고정하는 경우 세션 재설정으로 대체

주요 파일

파일

용도

src/stdio-server.ts

npm bin 진입점 — stdio MCP 전송

src/server.ts

HTTP MCP 전송 진입점

src/mcp/

MCP 도구 레지스트리, 스키마, 요청 핸들러

src/operations/

도구별 핸들러 1개 (bc_open_page, bc_read_data 등)

src/services/

페이지, 데이터, 작업, 탐색, 검색 비즈니스 로직

src/protocol/

WebSocket 전송, 와이어 유형, 캡처

src/session/

세션 수명 주기, 모달 스택, 재연결

manifest.json

Claude Desktop 확장 프로그램 매니페스트

scripts/build-dxt.ts

Claude Desktop용 .dxt 아티팩트 빌드

.github/workflows/release.yml

v* 태그 푸시 시 .dxt 빌드 + 첨부

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 참조)

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • MCP server for LeadDelta — manage LinkedIn connections and CRM data via AI assistants.

  • Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.

  • MCP server for AI dialogue using various LLM models via AceDataCloud

View all MCP Connectors

Latest Blog Posts

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/masoniqbal777/Business-Central-Mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server