business-central-mcp
개요
속성 | 값 |
언어 | TypeScript / Node 20+ |
npm 패키지 | |
BC 버전 | BC27, BC28 (와이어 호환) |
인증 | NavUserPassword (OAuth는 로드맵에 있음) |
도구 | 12 |
테스트 | 284개 단위/프로토콜 + 112개 통합 |
라이선스 | MIT |
설치
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
릴리스에서 최신
.dxt를 다운로드하세요.더블클릭하세요. Claude Desktop이 열리면서 설정 → 확장 프로그램에서 BC URL, 사용자 이름, 비밀번호를 입력하라는 안내가 표시됩니다.
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을 다시 시작하세요.
구성
변수 | 필수 | 기본값 | 설명 |
| 예 | — | BC 서버 기본 URL, 예: |
| 예 | — | NavUserPassword 사용자 이름 |
| 예 | — | NavUserPassword 비밀번호 |
| 아니요 | 서버 기본값 | 프로필 ID, 예: |
| 아니요 |
| 멀티 테넌트 배포 전용. |
| 아니요 |
| 세션 열기 중 BC에 보고되는 버전. |
| 아니요 |
| HTTP 전송 포트(stdio 전송에서는 무시됨). |
| 아니요 |
|
|
| 아니요 |
| 로그 파일 디렉터리. |
| 아니요 |
| 세션 상태 디렉터리. |
| 아니요 |
| 호출당 제한 시간(ms). 응답 없는 세션을 종료합니다. |
| 아니요 |
| 세션 종료 후 재연결 시도 횟수. |
| 아니요 |
| 지수 백오프 재연결의 기본 지연 시간(ms). |
제공 기능
도구 | 기능 |
| ID로 모든 페이지 열기 — 목록, 카드, 문서, Role Center. 페이지를 |
| 단일 섹션 새로고침: 필터, 페이지네이션, 슬라이스, 탭/열 프로젝션. |
| 필드 값 쓰기; BC가 검증 후 확인된 값을 반영합니다. 섹션 인지형(라인, FactBox, 헤더). |
| 헤더 / 라인 / 마법사 작업 실행, 또는 |
| 확인 프롬프트 및 요청 페이지 처리 |
| 행 선택, 레코드 드릴다운, 필드 조회 |
| Tell Me 검색. 결과당 |
| 페이지를 닫고 서버 리소스 해제 |
| 세션 중 다른 회사로 전환 |
| 사용 가능한 회사 검색 |
| 보고서 실행 및 요청 페이지 매개변수 입력 |
| 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 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": [...] }
]
}각 섹션은 고유한 콘텐츠 형태를 가집니다:
카드 스타일 (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가 확인 대화 상자를 계속 고정하는 경우 세션 재설정으로 대체
주요 파일
파일 | 용도 |
| npm |
| HTTP MCP 전송 진입점 |
| MCP 도구 레지스트리, 스키마, 요청 핸들러 |
| 도구별 핸들러 1개 ( |
| 페이지, 데이터, 작업, 탐색, 검색 비즈니스 로직 |
| WebSocket 전송, 와이어 유형, 캡처 |
| 세션 수명 주기, 모달 스택, 재연결 |
| Claude Desktop 확장 프로그램 매니페스트 |
| 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 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
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
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/masoniqbal777/Business-Central-Mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server