Enterprisemcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Enterprisemcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
⚠️ If Visual Studio Code displays the errorError getting token from server metadata: Error: Cannot force new registration for a non-dynamic authentication provider., change"microsoft-authentication.implementation"from"msal"to"msal-no-broker"in your Settings.
Built on the open Model Context Protocol, the public preview of Microsoft MCP Server for Enterprise lets AI agents access Microsoft Entra data by converting natural language queries into Microsoft Graph API calls. Developers and IT administrators use it to query Microsoft Entra data from their AI-powered workflows.
Full Documentation: Overview of Microsoft MCP Server for Enterprise
To set up the MCP Server for your tenant:
POST https://graph.microsoft.com/v1.0/servicePrincipals Body: { "appId": "e8c77dc2-69b3-43f4-bc51-3213c9d915b4" }
Set the appropriate Redirect URI (also called Reply URL) depending on the client. For example: Claude Desktop needs https://claude.ai/api/mcp/auth_callback, ChatGPT generates a different one for each client using the format: https://chatgpt.com/connector/oauth/<random_chars>, Microsoft Foundry generates a different Redirect URI for each connector using the format: https://<random_chars>.<region>.azurecontainerapps.io/rest/oauth2-credential/callback
Redirect URI type matters in Microsoft Entra. If you add the URI under Web, Entra treats the app as a confidential client. Use that for apps that run on a server and can protect credentials (like Copilot Studio). At sign-in, Entra expects that app to authenticate with aclient_secretor a certificate-basedclient_assertion.
If you add the URI under Mobile and desktop applications or another public-client platform, Entra treats the app as a public client. Use that for desktop, CLI, or device apps that cannot keep a secret (like ChatGPT or Claude). These apps usually use the authorization code flow with PKCE instead of a client secret.
MCP.<Microsoft_Graph_Scope>) between the MCP Server and the MCP ClientAssociate MCP Client Permissions
| Property | Value | Notes |
|---|---|---|
| MCP Endpoint | https://mcp.svc.cloud.microsoft/enterprise | Configure in your agent or mcp.json |
| MCP Server App Id | e8c77dc2-69b3-43f4-bc51-3213c9d915b4 | Used for provisioning and telemetry |
| MCP Client App Id | \< The one you registered in your tenant \> | Required to configure your agent |
| Token URL | https://login.microsoftonline.com/organizations/oauth2/v2.0/token | Required in some agents config |
| Token endpoint auth method | client_secret_post | Required in some agents config |
| Auth URL | https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize | Required in some agents config |
| Refresh URL | https://login.microsoftonline.com/organizations/oauth2/v2.0/token | Required in some agents config |
| Scopes | api://e8c77dc2-69b3-43f4-bc51-3213c9d915b4/.default | Required in some agents config |
This MCP Server uses Retrieval-Augmented Generation (RAG) and few-shot prompting to generate complete Microsoft Graph queries rather than exposing a separate tool per Graph operation. It exposes three tools:
For Public Preview, we support read-only enterprise IT scenarios in Microsoft Entra identity and directory operations (user, group, application, device management, and administrative actions).
The MCP Server handles queries such as:
The Microsoft MCP Server for Enterprise works with any MCP-compatible client that supports the latest standard.
⚠️ Notes:
>
- Dynamic Client Registration (DCR) is not supported, but we are working to support OAuth Client ID Metadata Documents (CIMD) in a future release. - ChatGPT, Claude, and other 3P Agents require a custom client Id: register your own MCP Client application in your tenant, assign the required MCP.* scopes, and configure the redirect URIs accordingly.
These clients require a custom MCP Client application registered in your tenant. See Authorization and permissions to grant the required MCP.* scopes to your app.
<details> <summary><b>ChatGPT</b></summary>
Go to Settings, Apps, Create App, and fill the dialog:
ChatGPT Configuration
Put the App ID of the Registered app in the red box.
</details>
<details> <summary><b>Claude</b></summary>
Go to Customize, Connectors, click "+", Add Custom Connector, and fill the dialog:
Claude Configuration
Put the App ID of the Registered app in the red box.
</details>
Visual Studio Code and GitHub Copilot CLI share the same Visual Studio Code MCP Client app Id, so they use the same setup. GitHub Copilot CLI can also use a custom client Id (see Option 2).
#### Prerequisites
These steps provision the Visual Studio Code MCP Client application in your tenant and grant it the MCP permissions. They're required for Visual Studio Code and for GitHub Copilot CLI when it uses the default application Id (Option 1 below). Skip them if you're configuring GitHub Copilot CLI with a custom oauthClientId instead (Option 2 below).
Install-Module Microsoft.Entra.Beta -Force -AllowClobber Connect-Entra -Scopes 'Application.ReadWrite.All', 'DelegatedPermissionGrant.ReadWrite.All' Grant-EntraBetaMCPServerPermission -ApplicationName VisualStudioCodeLearn more about Grant-EntraBetaMCPServerPermission. For detailed installation help, see the installation instructions.
If the Microsoft Graph PowerShell SDK modules conflict with Microsoft.Entra.Beta, run the following and retry from step 1:
Install-Module Uninstall-Graph
Uninstall-Graph -All<details> <summary><b>Visual Studio Code</b></summary>
Error getting token from server metadata: Error: Cannot force new registration for a non-dynamic authentication provider., change "microsoft-authentication.implementation" from "msal" to "msal-no-broker" in your Settings:alt text
</details>
<details> <summary><b>GitHub Copilot CLI</b></summary>
GitHub Copilot CLI can connect using either the default Visual Studio Code MCP Client app Id or a custom MCP Client app Id you register in your tenant.
Option 1. Default (uses the Visual Studio Code app Id)
/mcp add: /mcp addGitHub Copilot CLI Configuration
Option 2. Custom MCP Client app Id
MCP.* scopes (see Authorization and permissions).http://127.0.0.1:51001 as Redirect URI for "Mobile and desktop applications"oauthClientId and oauthPublicClient to true in ~/.copilot/mcp-config.json: "mcp-enterprise": {
"type": "http",
"url": "https://mcp.svc.cloud.microsoft/enterprise",
"headers": {},
"tools": [ "*" ],
"oauthClientId": "<REGISTERED_APP_CLIENT_ID>",
"oauthPublicClient": true
}In either case, sign in with your account from the provisioned tenant when prompted.
For more information, see the GitHub Copilot CLI documentation.
</details>
The MCP Server for Enterprise uses Microsoft Graph API to access data in your Microsoft Entra tenant using delegated permissions only, and provides a reduced set of permissions exposed by Microsoft Graph. Use the following cmdlet to list the permissions provided by the MCP Server for Enterprise:
(Get-EntraBetaServicePrincipal -Property "PublishedPermissionScopes" -Filter "AppId eq 'e8c77dc2-69b3-43f4-bc51-3213c9d915b4'").PublishedPermissionScopes | Where-Object { $_.IsEnabled -eq $true -and $_.AdditionalProperties["isPrivate"] -ne $true } | Select-Object Value, AdminConsentDisplayName | Sort-ObjectIf you'd like to use your own Registered Application, use the following cmdlets to to manage scopes granted to your MCP Client Application:
Grant-EntraBetaMCPServerPermission -ApplicationId "<MCP_Client_Application_Id>" -Scopes "<Scope1>", "<Scope2>", "<...>"
Revoke-EntraBetaMCPServerPermission -ApplicationId "<MCP_Client_Application_Id>" -Scopes "<Scope1>", "<Scope2>", "<...>"Learn more: Manage MCP Server for Enterprise permissions
The Microsoft MCP Server for Enterprise is available only in the public cloud (global service), with support for sovereign clouds planned for a future release. We will continue expanding beyond the current Microsoft Entra scenarios, but M365 APIs will be covered by Agent 365. Support for write operations is planned for a future release. Please share suggestions or issues through our feedback form: Submit feedback.
microsoft_graph_get are also subject to Microsoft Graph Throttling limits.To monitor usage, enable Microsoft Graph activity logs in your tenant. The system logs all API calls made through the MCP server.
Filter for MCP Server usage:
Use the Application (Client ID) of the Microsoft MCP Server for Enterprise: e8c77dc2-69b3-43f4-bc51-3213c9d915b4.
The following Kusto query retrieves these logs:
MicrosoftGraphActivityLogs
| where TimeGenerated >= ago(30d)
| where AppId == "e8c77dc2-69b3-43f4-bc51-3213c9d915b4"
| project RequestId, TimeGenerated, UserId, RequestMethod, RequestUri, ResponseStatusCodeFor documentation, troubleshooting, and feedback, refer to the official Microsoft Learn documentation and support channels.
All operations respect Microsoft Graph permissions and security policies. Ensure compliance with your organizational, regulatory, and contractual requirements when integrating the MCP Server.
This software is provided "as is" without warranties or conditions of any kind, either express or implied. Microsoft isn't liable for any damages that result from use, misuse, or misconfiguration of this software.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.