Skip to main content
Glama
masoniqbal777

business-central-mcp


概要

プロパティ

言語

TypeScript / Node 20+

npmパッケージ

business-central-mcp

BCバージョン

BC27、BC28(ワイヤー互換)

認証

NavUserPassword(OAuthはロードマップに含まれる)

ツール

12

テスト

284 ユニット/プロトコル + 111 統合

ライセンス

MIT

インストール

VSCode

Install in VSCode

バッジをクリックしてください。VSCodeが開き、サーバーの追加を促し、ユーザーのmcp.jsonに書き込みます。

エントリのenvブロックにBC_BASE_URLBC_USERNAMEBC_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. Releasesから最新の.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。ロールセンターの読み込みと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

IDで任意のページを開きます -- リスト、カード、ドキュメント、ロールセンター。ページをsections[]として返し、ヘッダー、明細、FactBox、ロールセンターのキュータイルを含みます。

bc_read_data

単一セクションを更新します: フィルタ、ページング、スライス、タブ/列の投影。bc_open_pageと同じSection形状を返します。

bc_write_data

フィールド値を書き込みます。BCが検証し、確認された値をエコーします。セクション対応(明細、FactBox、ヘッダー)。

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

NavigatePage / ウィザードフローを操作します(戻る/次へ/完了/キャンセル)。

仕組み

このサーバーはBCの内部WebSocketプロトコルを直接話します -- ブラウザベースのWebクライアントが使用するのと同じプロトコルです。逆コンパイルされたBCサーバーアセンブリからリバースエンジニアリングされました。ODataエンドポイントもSOAPサービスもSeleniumもありません。

セッションごとに1つの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": [...] }
  ]
}

各セクションは独自のコンテンツ形状を持ちます:

  • カード型(CardページのheaderfactboxrequestPage): fields[]と(headerの場合は)actions[]

  • リスト型(ドキュメントのlines、リストページのheader、リピーターサブページ): rows[]totalRowCount

  • キュータイル(ロールセンターがホストするCardParts): cues[]で、各タイルのnamevaluegroupCaptionsynopsishasActionbc_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/

ツールごとのハンドラ(bc_open_pagebc_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、initウィザード)

開発

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