Microsoft MCP Server for Enterprise は、Microsoft Entra テナント内のユーザー、グループ、アプリ、デバイスなどの情報を、AI エージェントから自然言語で問い合わせるための Microsoft Graph 向け MCP サーバーです。結論から言うと、導入時の最大のポイントは「テナントで有効化が必要」「VS Code とカスタム MCP クライアントの接続設定が必要」「委任されたアクセス許可のみを扱うため、権限設計とログ監視を先に決めるべき」という3点です。Microsoft Learn の公式情報では、この機能はプレビュー段階のサービスとして説明されており、自然言語の要求を Microsoft Graph API 呼び出しに変換する仕組みとして位置付けられています。(Microsoft Learn)
特に Microsoft 365、Microsoft Entra、Microsoft Graph を管理している情報システム部門や、AI エージェントから社内ディレクトリ情報を参照したい開発者は、単に「使えるようになった」と見るのではなく、どのクライアントに、どの MCP スコープを、誰の権限で許可するのかを整理してから展開する必要があります。
Microsoft MCP Server for Enterprise は何が変わるのか
Microsoft MCP Server for Enterprise の大きな変化は、Microsoft Graph の利用体験を「API エンドポイントを調べて実行する」形から、「AI エージェントに自然言語で依頼し、背後で Graph API を呼び出す」形に近づける点です。
たとえば、管理者が「テナント内のユーザー数を確認して」と聞くと、AI エージェントが意図を解釈し、MCP Server が Microsoft Graph の候補クエリを提示し、最終的に GET /users/$count のような API 呼び出しにつなげます。公式ドキュメントでは、microsoft_graph_suggest_queries、microsoft_graph_get、microsoft_graph_list_properties というツールが説明されており、読み取り専用の Graph API 呼び出しを中心に動作することが示されています。(Microsoft Learn)
| 観点 | これまでの典型的な作業 | Microsoft MCP Server for Enterprise 導入後の変化 |
|---|---|---|
| Microsoft Graph の利用 | エンドポイント、権限、クエリを人が調査する | AI エージェントが自然言語の意図から候補 API を探す |
| 管理レポート | PowerShell、Graph Explorer、独自スクリプトで確認する | MCP 対応クライアントから会話形式で確認しやすくなる |
| 開発者の試作 | Graph API の仕様を読みながらリクエストを組む | AI エージェント経由で API 呼び出し例を確認し、コード化しやすくなる |
| ガバナンス | アプリ登録と API 権限の管理が中心 | MCP クライアントごとのスコープ、同意、ログ監視も重要になる |
ただし、これは Microsoft Graph API が不要になるという意味ではありません。MCP Server は自然言語と Graph API の間に入るインターフェイスであり、実行される操作は Microsoft Graph のアクセス許可、ユーザー権限、テナントのセキュリティポリシーの影響を受けます。公式情報でも、現在の対象は Microsoft Entra ID とディレクトリの読み取り専用シナリオ、管理レポートが中心とされています。(Microsoft Learn)
対象になる管理者・開発者
Microsoft MCP Server for Enterprise の影響を受けるのは、主に Microsoft Entra と Microsoft Graph を扱うチームです。
| 対象者 | 確認すべきこと |
|---|---|
| Microsoft Entra 管理者 | テナントで MCP Server を有効化するか、どの管理ロールで作業するか |
| Microsoft 365 管理者 | ユーザー、グループ、ライセンス、ゲストユーザーなどの確認業務に使えるか |
| セキュリティ担当者 | 付与される委任アクセス許可、管理者同意、Graph アクティビティログの監視方針 |
| 開発者 | VS Code またはカスタム MCP クライアントから接続する手順、スコープ設計 |
| ヘルプデスク | 「先月サインインしていないユーザー」などの調査業務を安全に使える範囲 |
一方で、アプリケーション権限だけで完全自動実行するバッチ処理や、ユーザー操作を伴わない app-only ワークフローにはそのまま使えません。公式ドキュメントでは、MCP Server がサポートするのはユーザー対話型シナリオの委任されたアクセス許可のみであり、アプリのみのアクセス許可や app-only ワークフローはサポートされないと説明されています。(Microsoft Learn)
導入前に押さえるべき前提条件
Microsoft MCP Server for Enterprise を使い始めるには、まずテナントで有効化する必要があります。公式の開始手順では、このプロセスにより MCP Server と Visual Studio Code の両方がプロビジョニングされ、その後 MCP クライアントを MCP Server に接続できるとされています。(Microsoft Learn)
実務では、いきなり本番テナント全体で使うよりも、次の観点を事前に確認しておくと安全です。
| 確認項目 | 判断基準 |
|---|---|
| 作業者の管理ロール | Application Administrator または Cloud Application Administrator が割り当てられているか |
| PowerShell 環境 | 管理者モードで実行できる端末か |
| PowerShell モジュール | Microsoft.Entra.Beta 1.0.13 以降を使えるか |
| 管理者同意 | どのクライアントにどの MCP スコープを許可するか決まっているか |
| ログ監視 | Microsoft Graph アクティビティログを確認できる体制があるか |
| 展開範囲 | まずは管理者・開発者の限定利用から始めるか |
特に注意したいのは、MCP Server 自体よりも「MCP クライアントに何を許可するか」です。VS Code から使う場合でも、カスタム MCP クライアントから使う場合でも、付与したスコープに応じて Microsoft Graph 経由で参照できるデータ範囲が変わります。
MCP Server と VS Code をプロビジョニングする手順
公式手順では、テナントごとに一度だけ MCP Server と VS Code のプロビジョニングを実行します。PowerShell を管理者モードで起動し、Microsoft Entra Beta PowerShell モジュールをインストールします。(Microsoft Learn)
Install-Module Microsoft.Entra.Beta -Force -AllowClobber
次に、MCP Server を登録するテナントに認証します。
Connect-Entra -Scopes 'Application.ReadWrite.All', 'Directory.Read.All', 'DelegatedPermissionGrant.ReadWrite.All'
認証後は、作業しているアカウント、テナント、スコープを確認してから進めるのが安全です。
Get-EntraContext
最後に、Microsoft MCP Server for Enterprise をテナントに登録し、Visual Studio Code にアクセス許可を付与します。
Grant-EntraBetaMCPServerPermission -ApplicationName VisualStudioCode
このコマンドは便利ですが、実務では「誰が、どのテナントで、どの権限を付与したのか」を作業記録に残しておくべきです。プレビュー機能の導入では、後から権限や利用状況を棚卸しできる状態にしておくことが、トラブル対応の速さに直結します。
登録後に確認すべきサービスプリンシパル
プロビジョニング後は、Microsoft MCP Server for Enterprise と Visual Studio Code のアプリケーションがテナント内に存在するか確認します。公式ドキュメントでは、Microsoft MCP Server for Enterprise の appId は e8c77dc2-69b3-43f4-bc51-3213c9d915b4、Visual Studio Code の appId は aebc6443-996d-45c2-90f0-388ff96faa56 とされています。(Microsoft Learn)
PowerShell で確認する場合は、次のように Microsoft Graph のサービスプリンシパルを確認します。
Import-Module Microsoft.Graph.Applications
Get-MgServicePrincipal -Property "id,appId,displayName" -Filter "appId in('e8c77dc2-69b3-43f4-bc51-3213c9d915b4','aebc6443-996d-45c2-90f0-388ff96faa56')"
ここで確認したいのは、単に「存在するか」だけではありません。運用上は次の3点を見ます。
| 確認ポイント | 見落とすと起きやすい問題 |
|---|---|
| 対象テナントが正しいか | 検証テナントではなく本番テナントに誤って登録する |
| appId が公式値と一致するか | 似た名前の別アプリを確認してしまう |
| サービスプリンシパルが有効か | クライアントから接続できない、または無効化後に原因調査が難航する |
VS Code から接続して動作確認する
VS Code を使う場合は、Microsoft MCP Server for Enterprise のインストールページを開き、VS Code にインストールして管理者アカウントで認証します。その後、Copilot Chat を Agent mode で開き、「テナント内のユーザー数は?」のようなテナント固有の質問で動作を確認します。公式手順では、応答に呼び出されたツール、実行された Microsoft Graph REST API 呼び出し、自然言語の回答が含まれると説明されています。(Microsoft Learn)
初回確認では、難しい質問ではなく、影響範囲が分かりやすい読み取り系の質問から始めるのが現実的です。
| テスト質問の例 | 確認したいこと |
|---|---|
| テナント内のユーザー数を教えて | MCP.User.Read.All などの基本的な読み取りが機能するか |
| ゲストユーザーの数を確認して | ディレクトリ情報の絞り込みが期待通りか |
| 利用可能なライセンス情報を要約して | 管理レポート用途に使えるか |
| 実行した Graph API を表示して | AI の回答だけでなく、裏側の API 呼び出しを確認できるか |
重要なのは、AI の自然言語回答だけを信じないことです。初期検証では、実行された Microsoft Graph REST API 呼び出しと結果を必ず確認し、既存の PowerShell や管理センターの値と照合してください。
カスタム MCP クライアントを使う場合の設定
独自の MCP クライアントを使う場合は、Microsoft Entra 管理センターでアプリケーションを登録します。公式手順では、アプリケーション名、サポートされているアカウントの種類、プラットフォームとリダイレクト URI を設定し、アプリケーション ID とディレクトリ ID を記録する流れが説明されています。(Microsoft Learn)
アクセス許可では、シナリオに合う委任されたアクセス許可を追加します。たとえば、テナント内のユーザー数を数える用途では MCP.User.Read.All が例として挙げられています。追加した委任アクセス許可には、管理者の同意が必要です。(Microsoft Learn)
カスタム MCP クライアントのスコープは、Microsoft Entra PowerShell で付与・取り消しできます。
Grant-EntraBetaMCPServerPermission -ApplicationId "<MCP_Client_Application_Id>" -Scopes "<Scope1>", "<Scope2>", "<...>"
Revoke-EntraBetaMCPServerPermission -ApplicationId "<MCP_Client_Application_Id>" -Scopes "<Scope1>", "<Scope2>", "<...>"
開発チームが複数の MCP クライアントを作る場合は、用途ごとにアプリ登録を分けるのがおすすめです。たとえば「ヘルプデスク向け読み取り専用クライアント」と「開発者検証用クライアント」を同じアプリ登録にまとめると、後からスコープを絞りにくくなります。
MCP スコープの考え方と権限設計
Microsoft MCP Server for Enterprise のスコープ名は、MCP.{Microsoft Graph scope name} という形式です。公式ドキュメントでは、Microsoft Graph の User.Read.All が MCP Server では MCP.User.Read.All として公開される例が示されています。(Microsoft Learn)
代表的なスコープには、ユーザー、グループ、アプリケーション、デバイス、監査ログ、ポリシー、レポート、ロール管理、サービス正常性などに関する読み取り系のものがあります。すべてを一括で許可するのではなく、利用シーンから逆算して必要最小限に絞るべきです。
| 利用シーン | 検討するスコープの例 | 注意点 |
|---|---|---|
| ユーザー数やゲストユーザー確認 | MCP.User.Read.All | 個人情報に関わるため利用者を限定する |
| グループメンバー確認 | MCP.GroupMember.Read.All | 部門・プロジェクト構成が見える可能性がある |
| アプリ登録の棚卸し | MCP.Application.Read.All | アプリ構成や連携先の情報が見える |
| 監査・レポート確認 | MCP.AuditLog.Read.All、MCP.Reports.Read.All | セキュリティ部門と監視方針を合わせる |
| 条件付きアクセス確認 | MCP.Policy.Read.ConditionalAccess | セキュリティポリシー情報の取り扱いに注意する |
公式手順では、利用可能な MCP スコープを確認する際に oauth2PermissionScopes を参照し、isEnabled が true のスコープに注目するよう説明されています。プレビュー段階ではスコープや仕様が変わる可能性があるため、展開前に最新のスコープ一覧を確認する運用を入れておくと安全です。(Microsoft Learn)
影響範囲:追加ライセンス、クラウド、制限事項
Microsoft MCP Server for Enterprise を有効にするための追加コストや個別ライセンスは不要とされています。ただし、アクセスするデータに応じたライセンスは必要です。たとえば PIM などの情報にアクセスする場合は、関連する Microsoft Entra のライセンス要件を満たす必要があります。(Microsoft Learn)
また、要求はユーザーあたり1分間に100回に制限され、microsoft_graph_get を通じた呼び出しには Microsoft Graph の標準的なスロットリング制限も適用されます。現在のクラウド可用性については、パブリッククラウドのグローバルサービスのみと説明されています。(Microsoft Learn)
| 項目 | 公式情報上の扱い | 実務上の注意 |
|---|---|---|
| 提供状態 | パブリックプレビュー | 本番展開は段階的に行う |
| 操作範囲 | Entra ID とディレクトリの読み取り専用シナリオ中心 | 更新・削除系の自動化と混同しない |
| 権限方式 | 委任されたアクセス許可のみ | app-only のバッチ処理用途には使えない |
| コスト | 有効化自体の追加コストなし | 参照データ側のライセンス要件は別途確認 |
| 制限 | ユーザーあたり1分100回、Graph 制限も適用 | 大量調査や連続実行の設計に注意 |
| クラウド | パブリッククラウドのみ | ソブリンクラウドや特殊環境では事前確認が必要 |
ログ監視と監査で確認すべきこと
MCP Server を業務利用するなら、ログ監視は導入初日から有効にしておくべきです。公式ドキュメントでは、Microsoft MCP Server for Enterprise の使用状況を記録・監視するには、テナントで Microsoft Graph アクティビティログを有効にすると説明されています。MCP Server は Microsoft Graph API を使用するため、MCP クライアントが実行する要求はそれらのログに記録されます。(Microsoft Learn)
MCP Server 固有の使用状況を見たい場合は、Microsoft MCP Server for Enterprise の appId である e8c77dc2-69b3-43f4-bc51-3213c9d915b4 を使ってフィルターできます。公式ドキュメントには、Log Analytics で次のような Kusto クエリ例が示されています。(Microsoft Learn)
MicrosoftGraphActivityLogs
| where TimeGenerated >= ago(30d)
| where AppId == "e8c77dc2-69b3-43f4-bc51-3213c9d915b4"
| project RequestId, TimeGenerated, UserId, RequestMethod, RequestUri, ResponseStatusCode
監査では、次の観点を定期的に確認します。
| 監査項目 | 見るべき内容 |
|---|---|
| UserId | 誰が MCP 経由で Graph API を使ったか |
| RequestUri | どの Graph API が呼び出されたか |
| ResponseStatusCode | エラー、拒否、スロットリングが発生していないか |
| AppId | MCP Server 経由の呼び出しか、他のアプリ経由か |
| 時間帯 | 業務時間外や想定外の大量実行がないか |
AI エージェント経由の操作は、利用者にとっては「質問しただけ」に見えます。しかし実際には Microsoft Graph API が実行されます。そのため、ログ上では API 呼び出しとして追跡し、通常の Graph 利用と同じレベルで監査することが重要です。
無効化する場合の注意点
Microsoft MCP Server for Enterprise は Microsoft 所有のサービスであるため、テナントから削除することはできません。ただし、必要に応じて無効化できます。公式ドキュメントでは、対象のサービスプリンシパルに対して accountEnabled を false にする PATCH リクエストが示されています。(Microsoft Learn)
PATCH https://graph.microsoft.com/v1.0/servicePrincipals(appId='e8c77dc2-69b3-43f4-bc51-3213c9d915b4')
{
"accountEnabled": false
}
無効化は、トラブル時の緊急停止手段として有効です。ただし、VS Code やカスタム MCP クライアント側の設定、付与済みのスコープ、利用者への案内を整理せずに止めると、開発者や管理者の作業が突然中断されます。
停止前には、少なくとも次の順番で確認してください。
| 順番 | 作業 |
|---|---|
| 1 | 利用中の MCP クライアントと利用者を洗い出す |
| 2 | Graph アクティビティログで直近の利用状況を確認する |
| 3 | カスタム MCP クライアントのスコープを必要に応じて取り消す |
| 4 | 業務影響を関係者に共有する |
| 5 | サービスプリンシパルを無効化する |
導入時に失敗しやすいポイント
Microsoft MCP Server for Enterprise の導入では、技術的な手順よりも、権限と運用設計でつまずきやすくなります。
| 失敗しやすいポイント | 回避策 |
|---|---|
| 管理者アカウントでそのまま動作確認してしまう | 検証用の管理者・一般ユーザーを分けてテストする |
| 広いスコープをまとめて付与する | 利用シナリオごとに必要最小限の MCP スコープを選ぶ |
| AI の回答だけで結果を判断する | 実行された Microsoft Graph REST API と結果を確認する |
| ログを有効化せずに展開する | Graph アクティビティログを先に有効化する |
| VS Code とカスタムクライアントを同じ扱いにする | クライアントごとにアプリ登録、同意、監査方法を整理する |
| プレビュー機能を本番標準に組み込む | 仕様変更を前提に、限定展開から始める |
特に「自然言語で聞ける」ことは利便性が高い一方で、利用者が裏側の API 呼び出しを意識しにくくなります。管理者は、使いやすさより先に「誰が何を見られるのか」を決める必要があります。
管理者・開発者向けの展開チェックリスト
最後に、Microsoft MCP Server for Enterprise を導入する前に確認すべき項目を整理します。
| フェーズ | チェック項目 |
|---|---|
| 事前準備 | 対象テナント、作業者ロール、検証ユーザーを決めたか |
| 権限設計 | VS Code とカスタム MCP クライアントに付与するスコープを分けたか |
| プロビジョニング | Microsoft.Entra.Beta 1.0.13 以降で公式手順を実行したか |
| 登録確認 | MCP Server と VS Code の appId を確認したか |
| 動作確認 | Copilot Chat Agent mode またはカスタム MCP クライアントで読み取り系質問を試したか |
| ログ監視 | Graph アクティビティログで MCP Server の appId を追跡できるか |
| 運用 | スコープ追加・取り消し、無効化、問い合わせ対応の手順を決めたか |
Microsoft MCP Server for Enterprise は、Microsoft Graph を AI エージェントから扱いやすくする重要な入口です。ただし、便利な自然言語インターフェイスであっても、実体は Microsoft Graph へのアクセスです。まずは限定した管理者・開発者で検証し、必要な MCP スコープだけを付与し、ログで実行内容を確認できる状態を作ってから、ヘルプデスクや業務部門へ広げるのが現実的な導入手順です。

コメント