Bring Your Own MCPサーバー概要(プレビュー)

Important

  • これはプレビュー機能です。
  • プレビュー機能は運用環境での使用を想定しておらず、機能が制限されている可能性があります。 これらの機能は追加使用条件の対象であり、公式リリース前にアクセス可能です。これにより、お客様は早期に利用し、フィードバックを提供することができます。

Bring Your Own(BYO)MCPサーバー機能により、組織はAgent 365にリモートMCPサーバーを登録し、集中管理と監視性を実現できます。

大企業は、さまざまなビジネスワークフローでエージェントを支えるために、内部MCPサーバーを構築・運用することがよくあります。 これらのサーバーは通常、組織のガバナンスの境界外で動作しており、管理者がどのツールが露出されているかを把握できず、ツールの呼び出方法に関するポリシーの強制も行わず、セキュリティやコンプライアンスチーム向けのテレメトリの利用もありません。 BYO MCPサーバーは、登録されたサーバーをAgent 365ツールゲートウェイ経由でルーティングすることでこの問題を解決し、IT管理者がMicrosoft 365 管理センターやセキュリティチームに必要な監視データを管理できるようにします。

Note

BYO MCPサーバーは現在プレビュー中です。 サポート可能なクライアントサーフェスはCopilot Studio、VS Code、Claude Code、GitHub Copilot CLIです。 Azure AI FoundryとM365宣言エージェントはまだサポートされていません。

どのように機能するのか

BYO MCPサーバーは、すべてのリモートMCPサーバーがエージェントに提供される前にレビューと管理を行うため、構造化された開発者から管理者へのフローに従っています。

  1. 開発者はAgent 365 CLIを通じてリモートMCPサーバーを登録し、サーバーURL、認証タイプ、公開ツールを提供します。
  2. IT管理者は Microsoft 365 管理センター内のサーバー詳細と宣言済みツールを確認し、リクエストを承認または拒否します。 承認されると、管理者はサーバーに必要なEntra権限を付与します。
  3. Agentのサーフェス構築は、Copilot StudioやVS Codeなどのサポートクライアントを通じて承認されたMCPサーバーを消費使用し、実際のツール呼び出しに対してエージェントを構築・テストします。
  4. セキュリティチームは、コンプライアンスや異常検出のための高度なハンティングMicrosoft Defenderを通じてのMCPサーバー活動およびツール呼出を監視しています。

このアプローチにより、すべての外部MCP統合はエンドユーザーに提供される前に適切なガバナンスおよびコンプライアンスレビューを経ることを保証します。

Note

BYO MCPサーバーは現在プレビュー中です。 リモートMCPサーバーの新しいバージョンの再公開は現在サポートされていません。

リモート MCP サーバーを登録する

開発者として、Agent 365で自分のリモートMCPサーバーを登録できます。 このセクションでは、CLIを使ってAgent 365でリモートMCPサーバーを登録するために必要な手順を説明し、IT管理者がエージェントビルディングサーフェスでの使用を確認・承認できるようにします。

Developer prerequisites

リモートMCPサーバーを登録する前に、以下の前提条件を確認してください。

  • Agent 365のCLIをインストールするか、最新バージョンにアップデートしてください。 このフローを機能させるには、バージョン1.165-preview以上が必要です。
  • Agent 365のサービスプリンシパルがテナント内でプロビジョニングされていることを確認してください。 appid ea9ffc3e-8a23-4a7d-836d-234d7c7565c1に関連付けられたサービスプリンシパルが見つからない場合は、そのサービスプリンシパルはテナント向けにプロビジョニングされていません。 入居者のエージェント365のためにサービスプリンシパルを設定するには、以下をご覧ください:
  • インターネットからアクセス可能な公開アクセス可能なMCPサーバーエンドポイントです。
  • サーバーはサポートされている認証タイプのいずれかで設定されています:
    • NoAuth
    • APIKey (ヘッダーまたはクエリ)
    • ExternalOAuth
    • EntraOAuth

Agent 365 CLI をインストールする

Agent 365 CLIをインストールするには、「 Install the Agent 365 CLI」の指示に従ってください。

MCPサーバーを登録してください

Agent 365のCLIをインストールし、MCPサーバーエンドポイントが公開アクセス可能で、対応される認証タイプで設定されていることを確認すると、Agent 365でMCPサーバーを登録する準備が整います。 IT管理者はエージェント構築サーフェスでの使用をレビューし承認できます。

Agent 365でMCPサーバーを登録する方法はいくつかあります:

  • CLIによる手動登録:CLIから a365 develop-mcp register-external-mcp-server コマンドを実行し、サーバーの詳細、認証タイプ、MCPサーバーが公開するツールを手動で入力してください。

Important

このセクションの例では、架空のドメインとして zava.com を使い、例として一般的なサーバー名やツール名を用いています。 これらの値を実際のサーバーURL、名前、ツール識別子に置き換えてください。

  • JSONファイルによる登録: a365 develop-mcp register-external-mcp-server -f <path-to-file.json> を使ってMCPサーバーを登録するには、コマンドラインで個別に指定するのではなく、サーバーの詳細、認証タイプ、ツール定義を一つのファイルにまとめたJSONファイルを提供します。

以下のセクションの例を参照し、異なる認証タイプのためにCLIを使ってエージェント365にMCPサーバーを登録する方法をご参照ください。

NoAuth

認証不要のMCPサーバーの場合:

a365 develop-mcp register-external-mcp-server \
--server-name "ZavaServer" \
--server-url "https://mcp.zava.com/mcp" \
--publisher "Contoso" \
--description "My external MCP server for document search" \
--auth-type "NoAuth" \
--tools "tool1,tool2"
{
  "serverName": "ext_DocsSearch",
  "serverUrl": "https://docs.contoso.com/api/mcp",
  "authType": "NoAuth",
  "description": "Documentation search MCP Server for Contoso developer docs.",
  "publisherName": "Contoso",
  "tools": [
    {
      "name": "search_docs",
      "description": "Search Contoso developer documentation and code samples."
    }
  ],
  "remoteScopes": null,
  "externalOAuth": null,
  "apiKey": null
}

APIKey (Query Parameter)

APIキーをクエリパラメータとして渡すサーバーの場合:

a365 develop-mcp register-external-mcp-server \
--server-name "ZavaServer" \
--server-url "https://mcp.zava.com/mcp" \
--publisher "Contoso" \
--description "My external MCP server for document search" \
--auth-type APIKey \
--api-key-location Query \
--api-key-name apiKey \
--tools "tool1,tool2"
{
  "serverName": "ext_MarketData",
  "serverUrl": "https://api.contoso.com/market/mcp",
  "authType": "APIKey",
  "description": "Real-time stock market data and search from Contoso Market Services.",
  "publisherName": "Contoso",
  "tools": [
    {
      "name": "stock-market-data",
      "description": "Get real-time stock market data and financial information."
    },
    {
      "name": "real-time-search",
      "description": "Search the web for real-time information and news."
    }
  ],
  "remoteScopes": null,
  "externalOAuth": null,
  "apiKey": {
    "location": "Query",
    "name": "apiKey"
  }
}

APIKey (Header)

リクエストヘッダーでAPIキーを渡すサーバーの場合:

a365 develop-mcp register-external-mcp-server \
--server-name "ZavaServer" \
--server-url "https://mcp.zava.com/mcp" \
--publisher "Contoso" \
--description "My external MCP server for document search" \
--auth-type APIKey \
--api-key-location Header \
--api-key-name token \
--tools "tool1,tool2"
{
  "serverName": "ext_InternalTools",
  "serverUrl": "https://tools.contoso.com/mcp",
  "authType": "APIKey",
  "description": "Contoso internal tools MCP Server with API key authentication.",
  "publisherName": "Contoso",
  "tools": [
    {
      "name": "tool1",
      "description": "First tool exposed by the server."
    },
    {
      "name": "tool2",
      "description": "Second tool exposed by the server."
    }
  ],
  "remoteScopes": null,
  "externalOAuth": null,
  "apiKey": {
    "location": "Header",
    "name": "X-API-Key"
  }
}

ExternalOAuth

外部OAuthプロバイダーを通じて認証するサーバーの場合:

a365 develop-mcp register-external-mcp-server \
--server-name "ZavaServer" \
--server-url "https://zava.com/mcp" \
--publisher "Contoso" \
--description "My external MCP server for document search" \
--auth-type ExternalOAuth \
--idp-authorization-url "https://idp.zava.com/o/oauth2/v2/auth" \
--idp-token-url "https://idp.zava.com/oauth2/token" \
--idp-scopes "https://api.zava.com/read" \
--idp-client-id "<your-client-id>" \
--idp-client-secret "<your-client-secret>" \
--remote-scopes "https://api.zava.com/read" \
--tools "tool1,tool2"

{
  "serverName": "ext_Analytics",
  "serverUrl": "https://analytics.contoso.com/mcp",
  "authType": "ExternalOAuth",
  "description": "Contoso Analytics MCP Server for dataset and query operations.",
  "publisherName": "Contoso",
  "tools": [
    {
      "name": "list_datasets",
      "description": "List all available analytics datasets."
    }
  ],
  "remoteScopes": "https://analytics.contoso.com/.default",
  "externalOAuth": {
    "authorizationUrl": "https://auth.contoso.com/oauth2/authorize",
    "tokenUrl": "https://auth.contoso.com/oauth2/token",
    "scopes": "https://analytics.contoso.com/.default",
    "clientId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "clientSecret": "<your-client-secret>"
  },
  "apiKey": null
}

EntraOAuth

Microsoft Entra IDで認証するサーバーの場合:

a365 develop-mcp register-external-mcp-server \
--server-name "ZavaServer" \
--server-url "https://mcp.zava.com/mcp" \
--publisher "Contoso" \
--description "My external MCP server for document search" \
--auth-type EntraOAuth \
--remote-scopes "https://api.zava.com/.default" \
--tools "tool1,tool2"
{
  "serverName": "ext_OrgDirectory",
  "serverUrl": "https://directory.contoso.com/mcp",
  "authType": "EntraOAuth",
  "description": "Contoso organization directory MCP Server secured with Entra OAuth.",
  "publisherName": "Contoso",
  "tools": [
    {
      "name": "list_users",
      "description": "List users in the organization directory."
    },
    {
      "name": "get_user_profile",
      "description": "Get the profile of a specific user by ID or UPN."
    }
  ],
  "remoteScopes": "api://contoso-directory/.default",
  "externalOAuth": null,
  "apiKey": null
}

登録が成功したら、Microsoft 365 管理センターでMCPサーバーを管理者審査のために提出してください。

MCPサーバー登録申請のレビュー

開発者がリモートMCPサーバーを登録すると、そのサーバーはMicrosoft 365 管理 Centerに表示され、レビューと承認を受けます。 Microsoft 365 管理 Centerでエージェントツールを管理する権限を持つ管理者として、これらのリクエストをレビュー、承認、または拒否し、組織内で利用可能なMCPサーバーを管理できます。

MCPサーバー登録リクエストの審査および承認について詳しくは、>のエージェントツール管理を参照してください。

Admin prerequisites

審査および承認プロセスを完了するには、以下の2つの要件を満たす必要があります。

  • Microsoft 365 管理センターのツールページにアクセスし、エージェントツールの管理やMCPサーバー登録リクエストの確認が必要です。
  • 入居者全員の同意を与える能力が必要です。

2つの役割は両方の要件を満たしています。

Important

権限が最も少ないロールを使用し、管理者権限を持つユーザー数を制限しましょう。 「Microsoft Entra ID のタスク別の最小特権ロール」を参照してください。

Microsoft 365 管理センターの管理者役割と権限について詳しく知りたい方は、以下をご覧ください:

Microsoft 365 管理センターでレビューと承認を

  1. Microsoft 365 管理 センターに移動します。
  2. エージェント>を選択してからリクエストタブを選択してください。
  3. 保留中のリクエストには各サーバーごとに以下の詳細が表示されます:
    • Server name
    • Publisher
    • Requested by
    • Requested date
  4. サーバー情報と宣言されたツールを確認して、正確性とコンプライアンスを確認します。
  5. [ 承認] を選択 して、組織のレジストリでサーバーを使用できるようにするか、[ 拒否] を 選択して要求を拒否します。
  6. 承認後、MCPサーバーに必要なMicrosoft Entra権限に同意します。 サーバーは、同意が与えられた後にのみエージェントビルディングサーフェスが利用可能になります。

Note

承認され同意が得られた後、テナント内のすべてのMicrosoft Copilot Studio環境にMCPサーバーが表示されるまでに最大30分かかることがあります。

主要なガバナンス管理

以下の表は主要なガバナンス管理をまとめたものです。

Control Description
Approval/Rejection 管理者は各BYO MCPサーバーを明示的に承認または拒否し、使用前に決定します。
Server-Level Block 管理者は承認されたサーバーをいつでもブロックできます。ブロックされたサーバーは実行時に強制されます。
Tools Snapshot 管理者は各MCPサーバーが公開している宣言済みツールを透過性のために確認できます。
Runtime Enforcement ブロックされたMCPサーバーは、どのクライアントサーフェスでも実行時に呼び出すことはできません。

承認されたMCPサーバーを使用してください

MicrosoftがMCPサーバーを承認し、Microsoft Entraが同意を与えると、サポートされたエージェント構築サーフェス全体で使用できるようになります。 以下のクライアントサーフェスは現在、プレビュー段階で承認されたBYO MCPサーバーの呼び出しをサポートしています:

Client Status
Copilot Studio ✅ サポートされています
VS Code ✅ サポートされています
Claude Code ✅ サポートされています
GitHub Copilot CLI(コマンドラインインターフェース) ✅ サポートされています

Copilot Studioのユーザーとして、承認されたBYO MCPサーバーを呼び出すために以下の手順を踏みます。

  1. 環境でCopilot Studioに切り替えてください。
  2. 新しいカスタムエージェントを作成するか(既存のものを開設する)、
  3. ツールセクションに行き、MCPサーバーを選択してください。
  4. レジストリからMCPサーバーを選択します。
  5. エージェントをテストするために、MCPサーバーを呼び出しるプロンプトを入力してください。

Note

初回接続設定:初回呼び出し時に一度きり接続設定を完了するよう促されることがあります。 提供されたURLに従って必要な接続を作成し、APIキーをAPIベースのサーバーに入力するなどを行ってください。 終わったらエージェントの元に戻り、プロンプトをやり直してください。 呼び出しに成功すると、MCPサーバーが正しいツール出力で応答するのが見えます。

Claude Code、VS Code、GitHub Copilot CLIから承認されたBYO MCPサーバーを呼び出す方法については、Work IQ MCPの概要の「Set Work IQ MCP Servers for coding agentsセクションで学びましょう。

MCPサーバーの活動を監視・観察すること

組織のセキュリティチームの一員として、Microsoft Defender Advanced Huntingを使ってMCPサーバーの呼び出しを追跡・分析してください。 このプロセスにより、どのエージェントがどのMCPサーバーを呼び出しているか、いつ呼び出しが発生するか、その他異常または不正な使用パターンを検出するのに役立つ関連メタデータを把握できます。

サンプルKQLクエリ — Defender Advanced Hunting:

CloudAppEvents
| where ActionType in ( "ExecuteToolByGateway")
| where RawEventData contains "tool name"

このクエリはエージェント名、MCPサーバー名、呼び出しメタデータなどの詳細を返します。

Agent 365のツールを管理してMicrosoft 365 管理センター