ラボ MCS6 - MCP サーバーの利用
このラボでは、Microsoft Copilot Studio で作成したエージェントを MCP(Model Context Protocol)サーバーで拡張する方法を学習します。具体的には、架空の求人候補者リストを管理するためのツールを提供する既存の MCP サーバーを利用します。MCP サーバーは以下の機能を提供します。
- すべての候補者を一覧表示
- 条件で候補者を検索
- 新しい候補者を追加
- 既存候補者情報を更新
- 候補者を削除

Microsoft Copilot Studio でエージェントを構築したい場合は、次のラボを実施してください
MCP について学ぶ
このラボでは MCP の概念を紹介し、Copilot Studio との統合方法を示します。MCP は AI アシスタントが外部データソースやツールに安全に接続できるようにする新しいプロトコルです。詳しくは Model Context Protocol (MCP) for beginners の資料をご覧ください。
このラボで学ぶこと
- 既存の MCP サーバーを構成して接続する方法
- 外部サーバーの MCP ツールとリソースを利用する方法
- MCP サーバーを Copilot Studio エージェントと統合する方法
演習 1 : MCP サーバーのセットアップ
この演習では、人事候補者管理機能を提供する事前構築済み MCP サーバーをセットアップします。サーバーは Microsoft .NET をベースに MCP SDK for C# を使用しています。ここではサーバーをダウンロードして構成し、ローカルで実行できるようにします。
手順 1: MCP サーバーと前提条件の理解
このラボで使用する HR MCP サーバーは次のツールを提供します。
- list_candidates: 候補者一覧を取得
- search_candidates: 名前、メール、スキル、現在の職務で候補者を検索
- add_candidate: 新しい候補者を追加
- update_candidate: メールアドレスで既存候補者を更新
- remove_candidate: メールアドレスで候補者を削除
サーバーは次の候補者情報を管理します。
- 個人情報(名、姓、氏名、メール)
- 職務情報(使用言語、スキル、現在の職務)
開始前に以下を用意してください。
手順 2: MCP サーバーのダウンロードと実行
このラボでは、事前構築済み HR MCP サーバーを使用します。サーバーファイルを こちら からダウンロードしてください。
zip を展開し、対象フォルダーを Visual Studio Code で開きます。サーバーはすでに実装済みで、すぐに実行できます。
プロジェクトの主な構成要素は次のとおりです。
Configuration
: MCP サーバーの構成設定を定義するHRMCPServerConfiguration.cs
Data
: 候補者一覧を保持するcandidates.json
Services
: 候補者一覧を読み込み管理するサービスICandidateService.cs
とCandidateService.cs
Tools
: MCP ツールを定義するHRTools.cs
とツールが使用するデータモデルを定義するModels.cs
DevTunnel_Instructions.MD
: MCP サーバーを dev tunnel で公開する方法Progam.cs
: MCP サーバーを初期化するメインエントリーポイント
Visual Studio Code から新しいターミナルを開くか、別のターミナルを起動し、次のコマンドで依存関係をインストール、ビルド、起動します。
dotnet run
MCP サーバーが起動していることを確認します。ブラウザーで http://localhost:47002/ にアクセスできれば OK です。JSON のエラーメッセージが表示されますが、これは MCP サーバーに到達していることを示しています。
Info
このラボ付属の HR MCP サーバーは製品環境向けではありません。メモリ上の候補者リストを使用し、複数の会話セッション間でデータを保持しません。HTTP で公開された MCP サーバーの基本を学ぶための単純でわかりやすいサンプルとして提供されています。プロフェッショナル開発者の方は、これを出発点としてコンテナーアプリ化や永続ストレージ追加による改良を検討できます。たとえば こちら に Fabian Williams (Microsoft) が実装したより高度なサーバーがあります。
手順 3: dev tunnel の構成
次に、MCP サーバーをパブリック URL で公開する必要があります。ローカル開発マシンでサーバーを実行しているため、リバースプロキシツールを使用して localhost
を公開 URL にマッピングします。ここでは、Microsoft が提供する dev tunnel ツールを使います。
- こちらの手順 に従い dev tunnel をインストール
- 次のコマンドで dev tunnel にログイン
devtunnel user login
- 次のコマンドで dev tunnel をホスト
devtunnel create hr-mcp -a --host-header unchanged
devtunnel port create hr-mcp -p 47002
devtunnel host hr-mcp
コマンドラインに接続情報が表示されます。
「Connect via browser」の URL をコピーして保存します。ブラウザーでその URL にアクセスすると、次のような確認ページが表示される場合があります。
このラボの作業中は、dev tunnel のコマンドと MCP サーバーの両方を起動したままにしてください。再起動が必要な場合は devtunnel host hr-mcp
を再度実行します。
手順 4: MCP サーバーのテスト
ローカル環境で MCP サーバーをテストできるようになりました。簡単のために MCP Inspector を使用します。ターミナルを開き、次のコマンドを実行します。
npx @modelcontextprotocol/inspector
Node.js エンジンが MCP Inspector をダウンロードして起動し、ターミナルには次のような出力が表示されます。
ブラウザーが自動で起動し、次のインターフェイスが表示されます。
MCP Inspector を次の設定で構成します。
- 1️⃣ Transport type: Streamable HTTP
- 2️⃣ URL: dev tunnel の「Connect via browser」で保存した URL
次に 3️⃣ Connect ボタンを選択して MCP サーバーへの接続を開始します。接続に成功すると、緑の丸と Connected メッセージが表示されます。
画面の Tools セクションで 1️⃣ List Tools を選択して MCP サーバーが公開しているツール一覧を取得します。
続いて 2️⃣ list_candidates ツールを選択し、3️⃣ Run tool を選択してツールを実行します。
成功すると Success と緑で表示され、ツール実行結果が表示されます。History セクションでは、MCP サーバーへのすべての呼び出し履歴を確認できます。
これで Microsoft Copilot Studio のエージェントから MCP サーバーを利用する準備が整いました。
演習 2 : Copilot Studio で新しいエージェントを作成
この演習では、演習 1 で構成した MCP サーバーを利用する新しいエージェントを Microsoft Copilot Studio で作成します。
手順 1: 新しいエージェントの作成
ブラウザーで、対象 Microsoft 365 テナントの作業アカウントを使用し https://copilotstudio.microsoft.com にアクセスします。
左ナビゲーションで Copilot Dev Camp 環境(ラボ MCS0 - Setup の 演習 1 で作成)を選択し、Create → Agent の順に選択します。
Skip to configure を選択し、以下の設定で新しいエージェントを定義します。
- Name:
HR Agent with MCP
- Description:
An AI assistant that helps manage HR candidates using MCP server integration
for comprehensive candidate management
- Instructions:
You are a helpful HR assistant that specializes in candidate management. You can help users search
for candidates, check their availability, get detailed candidate information, and add new
candidates to the system.
Always provide clear and helpful information about candidates, including their skills, experience,
contact details, and availability status.
Create を選択してエージェントを作成します。
手順 2: 会話スターターの構成
エージェント作成後、エージェント構成ページが開きます。Suggested prompts セクションに次のプロンプトを追加します。
- Title:
List all candidates
- Prompt:List all the candidates
- Title:
Search candidates
- Prompt:Search for candidates with name [NAME_TO_SEARCH]
- Title:
Add new candidate
- Prompt:Add a candidate with firstname [FIRSTNAME], lastname [LASTNAME], e-mail [EMAIL], role [ROLE], spoken languages [LANGUAGES], and skills [SKILLS]
Save ボタンを選択して変更を保存します。
演習 3 : MCP サーバーと Copilot Studio の統合
この演習では、MCP サーバーと Copilot Studio エージェントの統合を構成します。
手順 1: MCP サーバーで公開されているツールの追加
エージェントの 1️⃣ Tools セクションに移動し、2️⃣ + Add a tool を選択します。
1️⃣ Model Context Protocol グループを選択して、エージェントで利用可能な MCP サーバー一覧を表示します。続いて 2️⃣ + New tool を選択して HR MCP サーバーを追加します。
どの種類のツールを追加するか選択するダイアログが表示されます。執筆時点で Model Context Protocol を選択すると、公式ドキュメント Extend your agent with Model Context Protocol が開き、Power Platform のカスタムコネクターとして MCP サーバーを追加する方法が案内されます。
このラボでは実際に MCP サーバー用のカスタムコネクターを作成します。Custom connector を選択し、以下の手順を進めてください。
新しいブラウザータブで Power Apps のカスタムコネクター管理ページが開きます。1️⃣ + New custom connector → 2️⃣ Import an OpenAPI file を選択します。
このまま保留し、Visual Studio Code に戻って新しいファイルを作成し、次の YAML スキーマを貼り付けます。
swagger: '2.0'
info:
title: HR MCP Server
description: Allows to manage candidates for specific job roles providing tools to list, search, add, update, and remove candidates from a reference list
version: 1.0.0
host: [Connect via browser host name of your dev tunnel]
basePath: /
schemes:
- https
paths:
/:
post:
summary: HR MCP Server
x-ms-agentic-protocol: mcp-streamable-1.0
operationId: InvokeMCP
responses:
'200':
description: Success
host
を dev tunnel のパブリック URL のホスト名に置き換えます。https://
や末尾の /
は含めず、例 3dcwb74w-47002.euw.devtunnels.ms
の形式で指定してください。ファイルを保存し、ブラウザーに戻ります。
コネクター名に HR MCP Server
などを入力し、Import で先ほど作成した OpenAPI ファイルを選択、Continue をクリックします。
コネクター設定ページで Swagger editor を有効にし、OpenAPI 仕様のソースを確認します。
Create connector を選択して作成が完了するのを待ちます。必要に応じてカスタムアイコンを設定し、Update connector で保存できます。
Copilot Studio に戻り Refresh ボタンを選択してツール一覧を更新します。
Model Context Protocol 一覧に HR MCP Server
が表示されます。
HR MCP Server
を選択し、Copilot Studio の標準 UI でサーバーへ接続後、Add and configure を選択します。
MCP サーバーが公開しているすべてのツールがエージェントで利用可能になりました。詳細ウィンドウで確認できます。
手順 2: MCP サーバー統合のテスト
右上の Publish を選択してエージェントを公開します。公開後、統合テストパネルで次のプロンプトを使用してテストします。
List all candidates
エージェントは MCP サーバーの list_candidates
ツールを使用し、HR システム内の候補者一覧を返すはずです。ただし、候補者一覧を取得するにはコネクターへの接続が必要なため、Copilot Studio から Open connection manager が促されます。接続後 Retry を選択してください。
接続が確立すると、HR MCP サーバーから実際の候補者一覧が返されます。
ローカルでの MCP サーバーのデバッグ
開発者の方は、HRTools.cs
にブレークポイントを設定し、Visual Studio Code からデバッガーをアタッチして MCP サーバーをデバッグできます。
エージェントを Microsoft 365 Copilot Chat でも利用できるようにするには、1️⃣ Channels → 2️⃣ Teams and Microsoft 365 Copilot → 3️⃣ Make agent available in Microsoft 365 Copilot にチェック → 4️⃣ Add channel を選択します。チャンネルが有効になるのを待ち、サイドパネルを閉じて再度 Publish してください。
再度 Teams and Microsoft 365 Copilot チャンネルを開き、See agent in Microsoft 365 を選択してエージェントを Microsoft 365 Copilot に追加します。
エージェント追加画面が表示されたら Add → Open を選択し、Microsoft 365 Copilot でエージェントを試します。
エージェントの詳細
Teams and Microsoft 365 Copilot チャンネル設定パネルでは、説明やカスタムアイコンなど追加情報も設定できます。
エージェントの UI に提案プロンプトが表示されます。たとえば次のプロンプトを試してください。
Search for candidate Alice
エージェントは search_candidates
ツールを使用し、検索条件に一致する候補者を 1 名だけ返すはずです。ただし、Microsoft 365 Copilot では再度 MCP サーバーへの接続が必要になるため、接続マネージャーを開くよう案内されます。
接続後、再度プロンプトを実行すると期待どおりの結果が得られます。
次は add_candidate
ツールのような高度なツールを試してみましょう。以下のプロンプトを使用します。
Add a new candidate: John Smith, Software Engineer, skills: React, Node.js,
email: john.smith@email.com, speaks English and Spanish
エージェントは意図を理解し、add_candidate
ツール用の入力パラメーターを抽出して新しい候補者を追加します。MCP サーバーからは簡単な確認応答が返されます。
候補者一覧を再度取得して結果を確認すると、末尾に John Smith
が追加されています。
以下のようなプロンプトでも試してみてください。
Update the candidate with email bob.brown@example.com to speak also French
または:
Add skill "Project Management" to candidate bob.brown@example.com
または:
Remove candidate bob.brown@example.com
エージェントは適切なツールを呼び出し、プロンプトに応じて動作します。
素晴らしい! エージェントは完全に機能し、HR MCP サーバーが公開するすべてのツールを利用できます。
おめでとうございます!
ラボ MCS6 - MCP サーバーの利用 を完了しました!