Microsoft MCP Server for Enterprise の使用を開始するには、テナントで有効にする必要があります。 このプロセスでは現在、MCP サーバーと Visual Studio Code の両方がプロビジョニングされています。 プロビジョニング後、MCP サーバーに接続するように MCP クライアントを構成できます。
この記事では、MCP サーバーをプロビジョニングし、MICROSOFT MCP Server for Enterprise に接続するように VS Code クライアントとカスタム MCP クライアントの両方を構成する方法について説明します。
MCP サーバーと VS Code をプロビジョニングする (テナントごとに 1 回のみ必要)
管理者モードで PowerShell を起動し、Microsoft.Entra をインストールします。Beta PowerShell モジュール (バージョン 1.0.13 以降):
Install-Module Microsoft.Entra.Beta -Force -AllowClobber
MCP サーバーを登録するテナントに対して認証します。 必要なアクセス許可に同意するには、 アプリケーション管理者 または クラウド アプリケーション管理者 ロールを割り当てる必要があります。
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
MCP サーバーの登録を確認する
Microsoft Graph、Microsoft Entra PowerShell、またはMicrosoft Entra ポータルを使用して、両方のアプリケーションが存在することを確認します。
| 名前 |
グローバルに一意の appId (クライアント ID) |
| Microsoft MCP Server for Enterprise |
e8c77dc2-69b3-43f4-bc51-3213c9d915b4 |
| Visual Studio Code |
aebc6443-996d-45c2-90f0-388ff96faa56 |
GET https://graph.microsoft.com/v1.0/servicePrincipals?$select=id,appId,displayName&$filter=appId in('e8c77dc2-69b3-43f4-bc51-3213c9d915b4','aebc6443-996d-45c2-90f0-388ff96faa56')
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.ServicePrincipals.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Select = new string []{ "id","appId","displayName" };
requestConfiguration.QueryParameters.Filter = "appId in('e8c77dc2-69b3-43f4-bc51-3213c9d915b4','aebc6443-996d-45c2-90f0-388ff96faa56')";
});
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphserviceprincipals "github.com/microsoftgraph/msgraph-sdk-go/serviceprincipals"
//other-imports
)
requestFilter := "appId in('e8c77dc2-69b3-43f4-bc51-3213c9d915b4','aebc6443-996d-45c2-90f0-388ff96faa56')"
requestParameters := &graphserviceprincipals.ServicePrincipalsRequestBuilderGetQueryParameters{
Select: [] string {"id","appId","displayName"},
Filter: &requestFilter,
}
configuration := &graphserviceprincipals.ServicePrincipalsRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
servicePrincipals, err := graphClient.ServicePrincipals().Get(context.Background(), configuration)
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
ServicePrincipalCollectionResponse result = graphClient.servicePrincipals().get(requestConfiguration -> {
requestConfiguration.queryParameters.select = new String []{"id", "appId", "displayName"};
requestConfiguration.queryParameters.filter = "appId in('e8c77dc2-69b3-43f4-bc51-3213c9d915b4','aebc6443-996d-45c2-90f0-388ff96faa56')";
});
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
let servicePrincipals = await client.api('/servicePrincipals')
.filter('appId in(\'e8c77dc2-69b3-43f4-bc51-3213c9d915b4\',\'aebc6443-996d-45c2-90f0-388ff96faa56\')')
.select('id,appId,displayName')
.get();
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\ServicePrincipals\ServicePrincipalsRequestBuilderGetRequestConfiguration;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestConfiguration = new ServicePrincipalsRequestBuilderGetRequestConfiguration();
$queryParameters = ServicePrincipalsRequestBuilderGetRequestConfiguration::createQueryParameters();
$queryParameters->select = ["id","appId","displayName"];
$queryParameters->filter = "appId in('e8c77dc2-69b3-43f4-bc51-3213c9d915b4','aebc6443-996d-45c2-90f0-388ff96faa56')";
$requestConfiguration->queryParameters = $queryParameters;
$result = $graphServiceClient->servicePrincipals()->get($requestConfiguration)->wait();
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
Import-Module Microsoft.Graph.Applications
Get-MgServicePrincipal -Property "id,appId,displayName" -Filter "appId in('e8c77dc2-69b3-43f4-bc51-3213c9d915b4','aebc6443-996d-45c2-90f0-388ff96faa56')"
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.service_principals.service_principals_request_builder import ServicePrincipalsRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
query_params = ServicePrincipalsRequestBuilder.ServicePrincipalsRequestBuilderGetQueryParameters(
select = ["id","appId","displayName"],
filter = "appId in('e8c77dc2-69b3-43f4-bc51-3213c9d915b4','aebc6443-996d-45c2-90f0-388ff96faa56')",
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
result = await graph_client.service_principals.get(request_configuration = request_configuration)
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
MCP クライアントに付与されたアクセス許可を確認する
各 MCP クライアントに付与された Microsoft MCP Server のアクセス許可を検証します。
GET https://graph.microsoft.com/v1.0/oauth2PermissionGrants?$select=id,clientId,resourceId,scope&$filter=clientId eq '{mcp-client-servicePrincipal}' and resourceId eq '{mcp-server-servicePrincipal}'
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Oauth2PermissionGrants.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Select = new string []{ "id","clientId","resourceId","scope" };
requestConfiguration.QueryParameters.Filter = "clientId eq '{mcp-client-servicePrincipal}' and resourceId eq '{mcp-server-servicePrincipal}'";
});
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphoauth2permissiongrants "github.com/microsoftgraph/msgraph-sdk-go/oauth2permissiongrants"
//other-imports
)
requestFilter := "clientId eq '{mcp-client-servicePrincipal}' and resourceId eq '{mcp-server-servicePrincipal}'"
requestParameters := &graphoauth2permissiongrants.Oauth2PermissionGrantsRequestBuilderGetQueryParameters{
Select: [] string {"id","clientId","resourceId","scope"},
Filter: &requestFilter,
}
configuration := &graphoauth2permissiongrants.Oauth2PermissionGrantsRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
oauth2PermissionGrants, err := graphClient.Oauth2PermissionGrants().Get(context.Background(), configuration)
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
OAuth2PermissionGrantCollectionResponse result = graphClient.oauth2PermissionGrants().get(requestConfiguration -> {
requestConfiguration.queryParameters.select = new String []{"id", "clientId", "resourceId", "scope"};
requestConfiguration.queryParameters.filter = "clientId eq '{mcp-client-servicePrincipal}' and resourceId eq '{mcp-server-servicePrincipal}'";
});
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
let oauth2PermissionGrants = await client.api('/oauth2PermissionGrants')
.filter('clientId eq \'{mcp-client-servicePrincipal}\' and resourceId eq \'{mcp-server-servicePrincipal}\'')
.select('id,clientId,resourceId,scope')
.get();
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Oauth2PermissionGrants\Oauth2PermissionGrantsRequestBuilderGetRequestConfiguration;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestConfiguration = new Oauth2PermissionGrantsRequestBuilderGetRequestConfiguration();
$queryParameters = Oauth2PermissionGrantsRequestBuilderGetRequestConfiguration::createQueryParameters();
$queryParameters->select = ["id","clientId","resourceId","scope"];
$queryParameters->filter = "clientId eq '{mcp-client-servicePrincipal}' and resourceId eq '{mcp-server-servicePrincipal}'";
$requestConfiguration->queryParameters = $queryParameters;
$result = $graphServiceClient->oauth2PermissionGrants()->get($requestConfiguration)->wait();
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
Import-Module Microsoft.Graph.Identity.SignIns
Get-MgOauth2PermissionGrant -Property "id,clientId,resourceId,scope" -Filter "clientId eq '{mcp-client-servicePrincipal}' and resourceId eq '{mcp-server-servicePrincipal}'"
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.oauth2_permission_grants.oauth2_permission_grants_request_builder import Oauth2PermissionGrantsRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
query_params = Oauth2PermissionGrantsRequestBuilder.Oauth2PermissionGrantsRequestBuilderGetQueryParameters(
select = ["id","clientId","resourceId","scope"],
filter = "clientId eq '{mcp-client-servicePrincipal}' and resourceId eq '{mcp-server-servicePrincipal}'",
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
result = await graph_client.oauth2_permission_grants.get(request_configuration = request_configuration)
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
MCP クライアントを MCP サーバーに接続する
- [ Microsoft MCP Server for Enterprise のインストール ] をクリックして、VS Code の MCP インストール ページを開きます。
- [VS Code での インストール ] を選択し、管理者アカウントで認証します。
-
エージェント モードでCopilot Chatを開き、テナント固有の質問 ("テナント内のユーザーの数" など) を確認します。
- MCP サーバーの応答を確認します。これには次のものが含まれます。
- 意図を理解するために呼び出されたツール。
- 実行された Microsoft Graph REST API 呼び出し。
- テナント データを要約した自然言語の回答。
- アプリケーションを登録できるアカウントでMicrosoft Entra 管理センターにサインインします (アプリケーション管理者またはクラウド アプリケーション管理者ロールで十分です)。
- アプリケーションを登録し、次の設定を検討します。
- アプリケーション名。
- サポートされているアカウントの種類 (シングル テナント)。
- MCP クライアントのプラットフォームとリダイレクト URI。
- 後で構成するために 、アプリケーション (クライアント) ID と ディレクトリ (テナント) ID の両方を記録します。
- アクセス許可を付与するには:
- [ 委任されたアクセス許可 ] を選択し、シナリオに一致するスコープを追加します (たとえば、テナント内のユーザーをカウントする
MCP.User.Read.All を追加します)。
- 追加した委任されたアクセス許可に対して管理者の同意を付与します。
- MCP クライアントをテストして、Microsoft MCP Server for Enterprise に接続し、必要な操作を完了できることを確認します。
Microsoft Entra PowerShell を使用して、カスタム MCP クライアントのスコープを管理します。
Grant-EntraBetaMCPServerPermission -ApplicationId "<MCP_Client_Application_Id>" -Scopes "<Scope1>", "<Scope2>", "<...>"
Revoke-EntraBetaMCPServerPermission -ApplicationId "<MCP_Client_Application_Id>" -Scopes "<Scope1>", "<Scope2>", "<...>"
サポートされている MCP サーバー スコープを表示する
MCP サーバーでは、ユーザー対話型のシナリオで委任されたアクセス許可のみがサポートされます。 アプリのみのアクセス許可またはアプリ専用ワークフローはサポートされていません。 次のいずれかのオプション (少なくとも DelegatedPermissionGrant.Read.All 委任されたアクセス許可が必要) を使用して、使用可能な MCP スコープを検査し、 isEnabled が trueされているスコープに焦点を当てます。
GET https://graph.microsoft.com/v1.0/servicePrincipals(appId='e8c77dc2-69b3-43f4-bc51-3213c9d915b4')/oauth2PermissionScopes
MCP サーバー スコープの一覧
MCP スコープの名前付けは、パターン MCP.{microsoft-graph-scope-name}に従います。 たとえば、 User.Read.All Microsoft Graph スコープは、MCP サーバーで MCP.User.Read.All として公開されます。 各スコープで許可される内容を理解するには、 Microsoft Graph のアクセス許可リファレンスを参照してください。
- Mcp。AccessReview.Read.All
- Mcp。AdministrativeUnit.Read.All
- Mcp。Application.Read.All
- Mcp。AuditLog.Read.All
- Mcp。AuthenticationContext.Read.All
- Mcp。Device.Read.All
- Mcp。DirectoryRecommendations.Read.All
- Mcp。Domain.Read.All
- Mcp。EntitlementManagement.Read.All
- Mcp。GroupMember.Read.All
- Mcp。HealthMonitoringAlert.Read.All
- Mcp。IdentityRiskEvent.Read.All
- Mcp。IdentityRiskyServicePrincipal.Read.All
- Mcp。IdentityRiskyUser.Read.All
- Mcp。LicenseAssignment.Read.All
- Mcp。LifecycleWorkflows.Read.All
- Mcp。LifecycleWorkflows-CustomExt.Read.All
- Mcp。LifecycleWorkflows-Reports.Read.All
- Mcp。LifecycleWorkflows-Workflow.Read.All
- Mcp。LifecycleWorkflows-Workflow.ReadBasic.All
- Mcp。NetworkAccess.Read.All
- Mcp。NetworkAccess-Reports.Read.All
- Mcp。Organization.Read.All
- Mcp。Policy.Read.All
- Mcp。Policy.Read.ConditionalAccess
- Mcp。ProvisioningLog.Read.All
- Mcp。Reports.Read.All
- Mcp。RoleAssignmentSchedule.Read.Directory
- Mcp。RoleEligibilitySchedule.Read.Directory
- Mcp。RoleManagement.Read.Directory
- Mcp。Synchronization.Read.All
- Mcp。User.Read.All
- Mcp。UserAuthenticationMethod.Read.All
- Mcp。GroupSettings.Read.All
MCP Server for Enterprise を無効にする
MCP Server for Enterprise は Microsoft 所有のサービスであるため、テナントから削除することはできません。 ただし、必要に応じて無効にすることができます。
PATCH https://graph.microsoft.com/v1.0/servicePrincipals(appId='e8c77dc2-69b3-43f4-bc51-3213c9d915b4')
{
"accountEnabled": false
}