Copilot Studio エージェントからMCPサーバーに接続しツールを使用する|モデル コンテキスト プロトコル

Copilot StudioがMCPに対応しているとのことなので、Azure App Service上のMCPサーバーに接続してツールを呼び出してみた。

スポンサーリンク

MCP(モデルコンテキストプロトコル)とは

MCP(モデルコンテキストプロトコル)は、簡単に言うと「AIと外部のツールやデータをつなぐための共通ルール」。

これまでは、AIに新しいツール(検索機能、カレンダーなど)を連携させるたび、開発者は各ツール専用の接続を作る必要があったけど、一度AIをMCPに対応させれば、他のMCP対応ツールとは追加作業なしで簡単に連携することができる。

詳しい解説は他のサイトで非常に丁寧に教えてくれているので、割愛。

公式によるとCopilot Studioは、(プレビューではあるけど)このMCPに対応しているようなので、今回はCopilot StudioのエージェントからMCPサーバーの呼び出しを試してみた。

構築

今回はこちらのGitHubの内容を参考に、MCPサーバーの立ち上げから、Copilot Studioのエージェントから呼び出すところまで試してみる。

手順1:MCPサーバーの立ち上げ

まずは上記GitHubのテンプレートを使用させていただき、自分用にリポジトリを作成。

サンプルのソースにあるツール(ジョークを作るツール)をそのまま使用してもよいけど、せっかくなので新しくツールを作成し、
※2025/5/6時点でCopilot StudioはMCPの「ツール」のみ対応。
MCPServerに登録。
そしたらこのコードをAzureのApp Serviceにデプロイ(フリープランでも問題なく動作)。
※こちらの手順もGitHubのReadmeにとても丁寧に記載してくれている。

ブラウザからサーバーにSSEで接続できれば、サーバーの準備は完了。
MCPフレームワークでは、2025/3/26の時点で「SSE」ではなく「HTTP Stream Transport」が推奨となったが、Copilot Studioでは対応していないようなのでSSEを使用する。

手順2:カスタムコネクタの作成

続いてカスタムコネクタの作成。

Power Apps Studioなどの[カスタムコネクタ]で、[最初から作成]を選択し、
適当な名前を付けて続行。
そしたら[Swaggerエディタ]をONにして、GitHubのassetsにあるconnector.ymlをコピペし、infoとhostを書き換える。
info:
  title: My Jokes MCP Server
  description: Get jokes using MCP server. For instance Lou Oshiba jokes.
  version: "1.0"
host: 【App Serviceのドメイン】
[tags]に「Agentic」と「McpSse」が設定されていることを確認し、[コネクタの作成]でカスタムコネクタの作成は完了。

手順3:Copilot Studioでエージェントの作成

最後にMCPサーバーを呼び出すエージェントを作成する。
※設定の[生成]をONにする必要があるので、言語は英語で作成。
作成したら設定の[生成]をONにする。
そしたら[アクション]タブから[アクションを追加する]を選んで、
[カスタムコネクタ]を選択。
先ほど作成したカスタムコネクタを選び、
説明に「アクションをいつ呼び出すか」を入力し、[アクションの追加]を押す。

以上で構築は完了。

動作確認

コネクタを呼び出すような指示をエージェントに送ると、接続の作成を求められるので、
Connectから接続を作成。
同じメッセージを送信すると、エージェントがMCPサーバーのツールを使用してくれる。

おまけ:ツールの追加も簡単

MCPサーバーとの接続を一度作ってしまえば、このサーバーに登録されているツールの情報をCopilot Studio側で取得してくれるので、ツールを追加するのが非常に簡単。

例えば先ほどのコードにツールを追加し、
再度デプロイ。
Copilot Studio側はどんなときに呼び出すか、を更新してあげるだけで、
エージェントが新しいツールを使ってくれる。

このMCPが主流になってくれれば、今後ツールを作って運用するのがとても楽になりそう。

コメント

タイトルとURLをコピーしました