mcpField
M
Microsoft Copilot Studio ❤️ MCP

Microsoft Copilot Studio ❤️ MCP

ローカル
github.com/2252開発ツール073 週間前に更新

Microsoft Copilot Studio ❤️ MCP について

MCPサーバーのデプロイとMicrosoft Copilot Studioへの接続方法を示す開発者向けラボです。ローカル実行、Azureへのデプロイ、Copilot Studioでのツール追加を扱います。

主な機能

  1. 01MCPサーバーのローカル実行
  2. 02Azureへのデプロイ
  3. 03Visual Studio Codeへの接続
  4. 04Copilot Studioコネクターのインポート

活用シーン

  1. 01MCPサーバーのデプロイ方法の学習
  2. 02Copilot StudioへのMCPツール追加
  3. 03ラボ用サーバーのAzureデプロイ

MCP 対応

HTTP経由でMCPサーバーをVisual Studio Codeに接続する方法と、コネクター経由でMicrosoft Copilot Studioに追加する方法を説明します。サンプルサーバーはJokesツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Microsoft Copilot Studio ❤️ MCP

Microsoft Copilot Studio ❤️ MCP ラボへようこそ。このラボでは、MCP サーバーのデプロイ方法と、Microsoft Copilot Studio への追加方法を学びます。

❓ MCP とは?

Model Context Protocol(MCP) は、LLM にコンテキストを提供する方法を標準化するオープンプロトコルであり、Anthropic によって定義されています。MCP は、AI モデルをさまざまなデータソースやツールに接続するための標準的な方法を提供します。MCP を使うと、既存のナレッジサーバーや API を Copilot Studio に直接シームレスに統合できます。

現在、Copilot Studio がサポートしているのはツールのみです。現在の機能について詳しくは、aka.ms/mcsmcp をご覧ください。既知の問題と今後予定されている改善点があります。これらについてはこちらに記載されています。

🆚 MCP とコネクタの比較

MCP はどのような場合に使いますか?コネクタはどのような場合に使いますか?MCP はコネクタに取って代わるのでしょうか?

MCP サーバーはコネクタのインフラストラクチャを使って Copilot Studio で利用できるため、これらの疑問は実際には当てはまりません。MCP サーバーがコネクタのインフラストラクチャを使うことで、仮想ネットワーク統合、データ損失防止制御、複数の認証方法などのエンタープライズ向けセキュリティおよびガバナンス制御を利用できます。これらはすべてこのリリースで利用可能であり、AI を活用したエージェントによるリアルタイムのデータアクセスもサポートしています。

つまり、MCP とコネクタは組み合わせるとさらに効果的です。

⚙️ 前提条件

  • Visual Studio Code(リンク)
  • Node v22(nvm for Windows または nvm を使ってインストールすることをおすすめします)
  • Git がインストールされていること(リンク)
  • Azure Developer CLI(リンク)
  • Azure サブスクリプション(支払い方法が登録済みであること)
  • GitHub アカウント
  • Copilot Studio の試用版または開発者アカウント
  • Power Platform 環境がプロビジョニングされていること。次のトグルがオンになっている必要があります。

新機能を早期に入手するトグル

➕ テンプレートを基に新しい GitHub リポジトリを作成する

  1. Use this template を選択します

  2. Create a new repository を選択します

    README の画像

  3. 適切な Owner を選択します(選択可能な Owner が 1 つだけの場合は、すでに選択されていることがあります)

  4. Repository name を入力します

  5. 必要に応じて Description を入力します

  6. Private を選択します

  7. Create repository を選択します

    作成には少し時間がかかります。完了すると、新しく作成されたリポジトリに移動します。

⚖️ 選択:サーバーをローカルで実行するか、Azure にデプロイする

ここで選択します。サーバーをローカルで実行するか、Azure にデプロイできます。

どちらの場合も、次の手順が必要です。

  1. 次のコマンドを実行して、このリポジトリをクローンします({account} はご自身の GitHub アカウント名に置き換えてください)。

    git clone https://github.com/{account}/mcsmcp.git

  2. Visual Studio Code を開き、クローンしたフォルダーを開きます

  3. ターミナルを開き、クローンしたフォルダーに移動します

🏃‍♀️ MCP サーバーをローカルで実行する
  1. npm install を実行します

  2. npm run build && npm run start を実行します

    サーバーのビルドと起動後のターミナル画面

  3. Visual Studio Code のターミナル上部にある PORTS を選択します

    ターミナルが開き、PORTS タブが強調表示されている VS Code の画像

  4. 緑色の Forward a Port ボタンを選択します

    PORTS タブが開き、緑色の Forward a Port ボタンが強調表示されている VS Code の画像

  5. ポート番号として 3000 を入力します(手順 5 でコマンドを実行したときに表示されたポート番号と同じである必要があります)。GitHub へのサインインを求められる場合があります。その場合はサインインしてください。ポート転送機能を使用するにはサインインが必要です。

  6. 追加した行を右クリックし、Port visibility > Public を選択して、サーバーを一般公開します

  7. Forwarded address を Ctrl + クリックします。次のようなアドレスです:https://something-3000.something.devtunnels.ms

  8. 次に表示されるポップアップで Copy を選択し、URL をコピーします

    ポート、転送されたアドレス、公開範囲が強調表示された PORTS の設定画面

  9. お好みのブラウザーを開き、URL をアドレスバーに貼り付けます。末尾に /mcp を追加して Enter キーを押します

問題なく動作していれば、次のエラーメッセージが表示されます:

{"jsonrpc":"2.0","error":{"code":-32000,"message":"Method not allowed."},"id":null}

ご安心ください。このエラーメッセージは問題ありません!

🌎 Azure にデプロイする

重要

前提条件に記載されているとおり、この手順を行うには、マシンに Azure Developer CLI をインストールしておく必要があります。

まだ Azure Developer CLI にログインしていない場合は、ログインしてください。

azd auth login

警告


azd up を実行すると、Azure 上で MCP Server が起動し、一般公開されます。これは望ましくありません。ラボの終了後に azd down を実行し、Azure サブスクリプションからすべてのリソースを削除してください。azd down の実行方法は、こちらのセクションをご覧ください。

ターミナルで次のコマンドを実行します:

azd up

一意の環境名には、mcsmcplab またはそれに似た名前を入力します。使用する Azure サブスクリプションを選択し、場所の値を選択します。その後、サーバーがデプロイされるまで数分かかります。完了すると、最後に表示された URL にアクセスし、末尾に /mcp を追加できます。

Azd によるサーバーのデプロイ出力

再び次のエラーが表示されるはずです:

{"jsonrpc":"2.0","error":{"code":-32000,"message":"Method not allowed."},"id":null}

👨‍💻 Visual Studio Code/GitHub Copilot で Jokes MCP Server を使用する

Jokes MCP Server を使用するには、サーバーの URL(devtunnel の URL またはデプロイ済みの Azure Container App のどちらでも可)の末尾に /mcp を付け、その URL を Visual Studio Code の MCP サーバーとして追加する必要があります。

  1. ctrl + shift + P(Windows/Linux)または cmd + shift + P(Mac)を押して、MCP と入力します。

  2. MCP: Add Server... を選択します。

  3. HTTP (HTTP or Server-Sent Events) を選択します。

  4. 入力欄にサーバーの URL を貼り付けます(末尾に /mcp が含まれていることを確認してください)。

  5. Enter を押します。

  6. サーバー名を入力します。たとえば、JokesMCP とします。

  7. User Settings を選択し、MCP サーバーの設定をユーザー設定に保存します。

    これにより、MCP サーバーが settings.json ファイルに追加されます。次のようになります。 settings.json ファイル

  8. GitHub Copilot を開きます。

  9. Ask から Agent に切り替えます。

  10. ツールアイコンを選択したときに、JokesMCP サーバーのアクションが選択されていることを確認します。

    GitHub Copilot のツールメニュー

  11. 次の質問をします。

    Get a chuck norris joke from the Dev category
    

次のような回答が表示されます。

Dev カテゴリのジョークを求める質問と、GitHub Copilot による回答のスクリーンショット

これで、JokesMCP サーバーが Visual Studio Code に追加されました。

👨‍💻 Microsoft Copilot Studio で Jokes MCP Server を使用する

コネクタをインポートする

  1. https://make.preview.powerapps.com/customconnectors にアクセスし(正しい環境にいることを確認してください)、+ New custom connector をクリックします。

  2. Import from GitHub を選択します。

  3. Connector Type として Custom を選択します。

  4. Branch として dev を選択します。

  5. Connector として MCP-Streamable-HTTP を選択します。

  6. Continue を選択します。

    GitHub からインポートするセクションの表示

  7. Connector Name を Jokes MCP など、適切な名前に変更します。

  8. Description を適切な内容に変更します。

  9. ルート URL(たとえば、something-3000.something.devtunnels.ms または something.azurecontainerapps.io)を Host フィールドに貼り付けます。

  10. Create connector を選択します。

警告


作成時に警告とエラーが表示される場合があります。まもなく解消されるはずですが、現時点では無視してかまいません。

  1. コネクタを閉じます。

エージェントを作成し、MCP サーバーをツールとして追加する

  1. https://copilotstudio.preview.microsoft.com/ にアクセスします。

  2. 右上隅にある環境ピッカーを選択します。

  3. 適切な環境(Get new features early トグルがオンになっている環境)を選択します。

  4. 左側のナビゲーションで Create を選択します。

  5. 青い New agent ボタンを選択します。

    新しいエージェント

  6. 左側の Configure タブを選択します。

    構成

  7. 名前を Jokester に変更します。

  8. 次の Description を追加します。

    A humor-focused agent that delivers concise, engaging jokes only upon user request, adapting its style to match the user's tone and preferences. It remains in character, avoids repetition, and filters out offensive content to ensure a consistently appropriate and witty experience.
    
  9. 次の Instructions を追加します。

    You are a joke-telling assistant. Your sole purpose is to deliver appropriate, clever, and engaging jokes upon request. Follow these rules:
    
    * ユーザーがジョークや関連する内容(例:「何か面白いことを教えて」)を求めた場合にのみ応答します。
    * ユーザーの入力から、好みの口調やユーモアの種類(上品なもの、ブラックユーモア、淡々としたもの、ダジャレ、おやじギャグなど)を判断し、それに合わせます。
    * 決してキャラクターを崩したり、ユーモアに関係のない情報を提供したりしないでください。
    * ジョークは簡潔にし、分かりやすく書式を整えてください。
    * 攻撃的、差別的、または成人向けの内容は避けてください。
    * ユーモアの好みが分からない場合は、気の利いた、誰にでも受け入れられるジョークを選んでください。
    * 同じセッション内でジョークを繰り返さないでください。
    * 明示的に求められない限り、ジョークの説明は避けてください。
    * 反応よく、機知に富み、素早く応答してください。
    
  10. 右上の Continue を選択します。

    エージェントを作成するには「続行」をクリックします

  11. 生成 AI の Orchestration を有効にします。

    オーケストレーションを有効にします

  12. Knowledge セクションで一般知識を無効にします。

    一般知識を無効にします

  13. 上部のメニューから Tools を選択します。

    ツール

  14. Add a tool を選択します。

    ツールを追加

  15. Model Context Protocol タブを選択して、すべての Model Context Protocol サーバーを絞り込みます(下のスクリーンショットの番号 1 を参照)。

  16. Jokes MCP サーバーを選択します(下のスクリーンショットの番号 2 を参照)。

    MCP

  17. Not connected を選択し、Create new Connection を選んで新しい接続を作成します。

    アクションと接続

  18. Create を選択します。

    接続を作成

  19. Add to agent を選択して、エージェントにツールを追加します。

    エージェントにツールを追加

  20. Test your agent ペインで refresh icon を選択します。

    テストペインを更新

  21. Test your agent ペインで、次のメッセージを送信します。

    Can I get a Chuck Norris joke?
    

    このアクションを実行するには追加のアクセス許可が必要であるというメッセージが表示されます。これは、アクションウィザードでユーザー認証を設定しているためです。

  22. Connect を選択します。

    追加のアクセス許可

    このエージェントの接続を管理する新しいウィンドウが開きます。

  23. JokesMCP の横にある Connect を選択します。

    JokesMCP に接続

  24. 接続が作成されるまで待ち、Submit を選択します。

    接続を選択

  25. 接続が完了し、ステータスが Connected に設定されます。

    接続済みのステータス

  26. ブラウザーで接続管理のタブを閉じます。

    これで、Jokester エージェントの画面に戻ります。

  27. Test your agent ペインで refresh icon を選択します。

    テストペインを更新

  28. Test your agent ペインで、次のメッセージを送信します。

    Can I get a Chuck Norris joke?
    

    追加のアクセス許可ではなく、Chuck Norris のジョークが表示されます。そうならない場合は、環境で get new features early の切り替えがオンになっている必要があるという前提条件を見落としている可能性があります。

    Chuck Norris のジョーク

  29. Test your agent ペインで、次のメッセージを送信します。

    Can I get a Dad joke?
    

    今度はおやじギャグが表示されます。

    おやじギャグ

これで、Jokes MCP サーバーが Microsoft Copilot Studio で動作しました。

❌ Azure リソースを削除する

ラボの終了後に Azure リソースを削除するには、ターミナルで次のコマンドを実行します。

azd down

このコマンドを実行すると、削除されるリソースが表示され、確認を求められます。y で確認すると、リソースが削除されます。数分かかることがありますが、最後に確認メッセージが表示されます。

削除されたリソース

💡 既知の問題と今後の改善予定

Microsoft Copilot Studio の MCP には、既知の問題と今後の改善予定があります。こちらの Microsoft Learn の記事に記載されています。

🗣️ フィードバック

このラボを気に入っていただけたら幸いです。改善に役立てるため、フィードバックフォームへの記入にご協力ください。

🚀 貢献

このプロジェクトでは、貢献や提案を歓迎しています。ほとんどの貢献には、貢献者ライセンス契約(CLA)への同意が必要です。この契約では、ご自身の貢献を使用する権利を当社に付与する権利を有していること、また実際にその権利を付与することを宣言します。詳細については、https://cla.opensource.microsoft.com をご覧ください。

プルリクエストを送信すると、CLA ボットが CLA の提出が必要かどうかを自動的に判断し、適切な表示(ステータスチェックやコメントなど)を追加します。ボットの指示に従ってください。この CLA への対応は、対象となるすべてのリポジトリで一度行うだけで済みます。

このプロジェクトでは、Microsoft オープンソース行動規範を採用しています。詳細については、行動規範に関する FAQをご覧いただくか、ご質問やご意見がありましたら [email protected] までお問い合わせください。

™️ 商標

このプロジェクトには、プロジェクト、製品、サービスの商標やロゴが含まれている場合があります。Microsoft の商標やロゴを使用する場合は、許可された使用方法に従い、Microsoft の商標およびブランドに関するガイドラインを遵守する必要があります。 このプロジェクトを改変したバージョンで Microsoft の商標やロゴを使用する場合、混乱を招いたり、Microsoft が後援していると誤解させたりしてはなりません。 第三者の商標やロゴを使用する場合は、それぞれの第三者のポリシーが適用されます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。