Microsoft MCP Server for Enterpriseとは?Graph連携の変更点と管理者の確認事項

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エラー、拒否、スロットリングが発生していないか
AppIdMCP 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 クライアントと利用者を洗い出す
2Graph アクティビティログで直近の利用状況を確認する
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 スコープだけを付与し、ログで実行内容を確認できる状態を作ってから、ヘルプデスクや業務部門へ広げるのが現実的な導入手順です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次