D365BC MCPサーバーのセットアップ


2025 Release Wave 2 で Business CentralのMCPサーバー機能がリリースされて半年ほど経ちました。そろそろ色々と安定してきたみたいなので動かしてみたいと思います。昨秋時点では有償環境でしか設定できなという情報がありましたが、今回確認したところ設定完了できました。フリートライアルライセンスだとエージェントの公開はできないのですが、動作の確認はできました。

1. Business Central側のセットアップ

設定する環境ですが、Business Centralのバージョン27.5でJPリージョンの環境を使います。

メニュー検索で”Copilot & agent capabilities”画面を開きます。

デフォルトで以下のように設定されていました。
一つ目のトグルはCopilot機能を利用するに際して他のリージョンにデータの移動させる許可です。具体的にはプロンプトやBCデータを日本リージョンからUS等の他リージョンに行き来させる事を許可しています。デフォルトの通り、Onにしておきます。
二つ目のトグルは回答精度を高めるためにBingサーチを使うので、他のリージョンにデータを移動させる許可です。デフォルトの通り、Onにしておきます。
その下の明細部分はプレビュー機能とGA済の機能の一覧です。使わせたくない機能は個別にOffにできますが、今回は調査なのでデフォルトの通りすべて”Active”のままにしておきます。なお、この一覧で請求対象かどうかがわかります。”Payable Agent(買掛管理エージェント)”、”Custome Agent(カスタムエージェント)”、”Sales Order Agent(販売管理エージェント)”の3つ以外は追加課金されません。

次に”Feature Management”画面を開きます。

MCPサーバーの機能がEnabledになっていることを確認します。Enabledになっていない場合はEnabledに設定を変更します。

次にユーザーの権限を設定します。検索機能でユーザー一覧画面を開きます。

設定するユーザーを開きます。

権限セット”MCP – ADMIN”を追加します。(今回使用しているユーザーは”Super”が付いているので、今回のケースでは多分いらないと思いますが。)

最後にMCPサーバーの画面を開きます。

初期状態ではMCPサーバーが一つも存在しません。”+New”をクリック。

新規登録画面が開きます。

名前とDescriptionを入力し、Available Toolsセクションで公開対象のページとアクセス権を設定します。とりあえず、ページをいくつか追加してみます。Object IDの横の3点リーダー(”…”)をクリック。

一覧が表示されます。どのような情報を取得するかをこのリストページから指定します。
取得可能な一覧をExcelに出力したいのですが、この画面からはExcelに出力できません。こういうときはCtrl+Alt+F1でページ検査モードを開き、ページ番号とフィルタ条件を確認します。

別画面でURLにページ番号を指定して直接ページを開き、同じフィルタ条件を指定し、Open in Excelで出力します。

Excelへの出力内容を見てみます。とりあえず個数は79個であることがわかります。結構ありますね。別の機会にじっくり眺めてみることにして、設定を進めます。

ページ選択画面に戻ります。全部指定してもよいのですが、Agentは目的別に絞ったほうが精度があがりそうなので、今回のAgentは受注関連の問合せ回答Agentにするというシナリオを想定して、以下の3つのページを指定することにします。

このように明細部の”Available Tools”セクションに指定した3つのページが指定されました。問合せQA用のAgentというシナリオにするので、”Allow Read”のみチェックOnしておきます。受注伝票を更新するようなAgentであればCreateやModigyにチェックすることになりますが、今回は一つ目のAgentでQA用のAgentなので”Read”のみ可能としておきます。

ヘッダー部分に目を向けます。”Dynamic Tool Mode”はCopilot Studioから見つけやすくするためのスイッチなのでOnにします。”Discover Additional Objects”はここで指定したページ以外も参照するかどうかのスイッチだそうです。(Offにした方が挙動が明確になるのでOffにしたほうが検証としては良かったかも。。)
最後に”Active”をOnにして一覧画面へ戻ります。

一覧にMCP Serverが登録されました。

2. Copilot Studio側のセットアップ

続いてCopilot Studioをセットアップします。https://copilotstudio.microsoft.com にアクセス。
今回は”Microsoft Copilot Studio バイラル試験版”というフリートライアルライセンスを使用します。初回はこのようにリージョン設定を聞かれます。Business Centralの環境のリージョンをJPにしているので、ここでは同じリージョンのJapanを選び無料試用版を開始します。(リージョンが異なると認識されない可能性がある、とのこと。実機検証はしてないですが。)

Copilot Studioのホーム画面が開きました。

サイドメニューから”エージェント”を選択。(後で気づいたのですが、、Dataverseの環境はDefaultではなくて専用の環境を作るべきだったかも。)

エージェントの一覧画面が開きます。当然、Business Centralのエージェントはまだ存在しないので、”+空のエージェントを作成する”をクリック。

新規作成するエージェントの名前を指定します。エージェント設定のセクションがデフォルトで非表示だったので開いてみます。内容は変更せず、そのまま作成します。(ソリューションは”CDS Default ソリューション”なのね。Dataverseではなく。)

エージェントが作成されました。単に作成されただけで、まだBusiness Centralとはつながっていません。つなげるためには”ツール”から設定していきます。

”+ツールを追加する”をクリック。

ExcelとかTeamsとかいろいろなコネクタが見えますが、コネクタではなくて”モデルコンテキストプロトコル”タブからBusiness CentralのMCPサーバーを探します。

キーワード検索で”Business Central”を指定すると出てくる”Business Central”をクリック。

Business Central環境を見に行くための接続を指定します。初期状態では孫z内しないので”新しい接続をせく生する”をクリックします。(この辺、Power AppsとかPower Automateとかで接続を作成するのと似ています。)

指定した接続を使ってBusiness CentralのMCPサーバーを設定していきます。”追加と構成”をクリック。

Business CentralのMCPサーバーというツールが追加されました。画面の全体像はこんな感じです。

”入力”のセクションには値を設定する必要があります。

EnvironmentにはSandboxなりProductionなりの環境名を指定します。MCP Server Configurationには先ほど作成したBusiness CentralのMCPサーバー名を指定します。CompanyはMCPサーバーを設定したCompany名を指定します。3つとも指定したら保存。

保存が完了しました。

MCPサーバーやCompanyを指定する際、設定したい値がリストに表示されない場合は”更新”を押します。

すると選択肢が更新されます。

設定はいったん完了です。

3. テスト

Copilot Studioの画面でテストができます。右側の枠でテストができます。(テストの領域が表示されていない場合は右上の”テスト”ボタンを押すと表示されます。)
試しに”得意先は何社登録されているか?”を聞いてみます。

対象のBusiness Central環境の対象会社には5社登録されています。(想定結果)

なお、初回のじっこうじには以下のような許可を求められるので”許可”をクリックします。

回答が返ってきました。違う、そうじゃない。
Companyの数ではなくて、Customerの数をきいたんですけどね。ということで質問しなおします。

ダメですね。完全にアホの子です。。モデルがGPT-4なのが原因な気がしたので、GPT-5 Chatに切り替えてみます。

プルダウンで切り替えるだけで保存(っぽい)処理が走ります。ついでにInstructions(指示)も明記してみます。(Microsoft公式の英語をそのままコピペ)

改めて質問しなおします。直前の会話結果から回答を作るとまた間違えそうなので、いったん忘れてから回答するように伝えます。

エラーになりました。。脱獄を疑われていますw
”会話履歴を忘れろ”という指示がよくなかったようです。

改めて質問。

今度はちゃんと5社の得意先、と帰ってきました。素晴らしい!
得意先の名前順にソートしてリストするよう指示します。

ちゃんとソートされています。素晴らしい!
番号順にソートするよう伝えます。

ちゃんとソートされています。素晴らしい!
名称ソートも番号順ソートも、いずれもBusiness Centarlで直接的に持っているデータなので出来て当然といえば当然な気がして、少しひねってみます。
東京との距離順にソートするように伝えます。

思考ロジックを説明しながら演算し始めます。いい感じです。

ちゃんと結果が返ってきました。素晴らしい!

BCの住所情報から東京までの距離を出せるのはすごいですね。この辺は生成AIらしいアウトプットだと思います。生成AIがなかった世界では、東京までの距離を問われる可能性がある、ということを言語化して要件として定義し、距離測定ロジックを実装する必要がありました。まあまあ面倒くさいロジックですし、そもそもそんなことを問われる可能性を言語化して要件定義できるのか?という気がします。かなり可能性がひろがったな、と感じます。

次回は、今回作成したAgentを公開してBCへn問い合わせを実施してみようと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です