Microsoft MCP Server for Enterprise
⚠️ Если Visual Studio Code выводит ошибку
Error getting token from server metadata: Error: Cannot force new registration for a non-dynamic authentication provider., измените значение"microsoft-authentication.implementation"с"msal"на"msal-no-broker"в ваших настройках.
Обзор
Основанный на открытом Model Context Protocol, публичная версия Microsoft MCP Server for Enterprise позволяет AI-агентам получить доступ к данным Microsoft Entra, преобразуя запросы на естественном языке в вызовы Microsoft Graph API.
Разработчики и IT-администраторы используют его для запроса данных Microsoft Entra в своих рабочих процессах, управляемых AI.
Полная документация: Обзор Microsoft MCP Server for Enterprise
Provisioning MCP Server (один раз на арендатора)
Чтобы настроить MCP Server для вашего арендатора:
Provision the MCP Server. В Graph Explorer, отправьте:
POST https://graph.microsoft.com/v1.0/servicePrincipals
Body: { "appId": "e8c77dc2-69b3-43f4-bc51-3213c9d915b4" }
Register a new app, представляющий MCP Client.
Укажите соответствующий Redirect URI (также называемый Reply URL) в зависимости от клиента. Например:
Claude Desktop требует https://claude.ai/api/mcp/auth_callback,
ChatGPT генерирует другой URI для каждого клиента по формату: https://chatgpt.com/connector/oauth/<random_chars>,
Microsoft Foundry генерирует другой Redirect URI для каждого коннектора по формату: https://<random_chars>.<region>.azurecontainerapps.io/rest/oauth2-credential/callback
Тип Redirect URI имеет значение в Microsoft Entra. Если добавить URI в раздел Web, Entra рассматривает приложение как Confidential client. Используйте его для приложений, работающих на сервере и умеющих защищать учетные данные (например, Copilot Studio). При входе Entra ожидает аутентификацию таким приложением с помощью
client_secretили сертификатнойclient_assertion.
Если добавить URI в раздел Mobile and desktop applications или другую публичную клиентскую платформу, Entra считает приложение Public client. Используйте его для настольных приложений, CLI или устройств, которые не могут хранить секрет (например, ChatGPT или Claude). Обычно такие приложения используют flow с authorization code и PKCE вместо client secret.
Ассоциируйте разрешения MCP (MCP.<Microsoft_Graph_Scope>) между MCP Server и MCP Client
Таблица сведений
| Свойство | Значение | Примечания |
|---|---|---|
| MCP Endpoint | https://mcp.svc.cloud.microsoft/enterprise | Настройте в вашем агенте или mcp.json |
| MCP Server App Id | e8c77dc2-69b3-43f4-bc51-3213c9d915b4 | Используется для provisioning и телеметрии |
| MCP Client App Id | Требуется для настройки вашего агента | |
| Token URL | https://login.microsoftonline.com/organizations/oauth2/v2.0/token | Требуется в некоторых конфигурациях агентов |
| Token endpoint auth method | client_secret_post | Требуется в некоторых конфигурациях агентов |
| Auth URL | https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize | Требуется в некоторых конфигурациях агентов |
| Refresh URL | https://login.microsoftonline.com/organizations/oauth2/v2.0/token | Требуется в некоторых конфигурациях агентов |
| Scopes | api://e8c77dc2-69b3-43f4-bc51-3213c9d915b4/.default | Требуется в некоторых конфигурациях агентов |
Инструменты
Этот MCP Server использует Retrieval-Augmented Generation (RAG) и few-shot prompting для генерации полноценных запросов к Microsoft Graph, вместо того чтобы предоставлять отдельный инструмент на каждую операцию Graph.
Он предоставляет три инструмента:
-
microsoft_graph_suggest_queries: находит релевантные вызовы Microsoft Graph API на основе намерений пользователя. -
microsoft_graph_get: выполняет только чтение вызовов Microsoft Graph API, учитывая роли пользователя и области MCP Client. -
microsoft_graph_list_properties: получает свойства конкретных сущностей Microsoft Graph, чтобы помочь модели AI
Текущий диапазон и возможности
Для Public Preview мы поддерживаем read-only сценарии IT в корпоративной среде в Microsoft Entra identity и операциях директории (пользователь, группа, приложение, управление устройствами и административные действия).
MCP Server обрабатывает запросы типа:
-
Безопасность: методы аутентификации/прочность, Conditional Access, Security Defaults.
-
Привилегированный доступ: кто имеет какие директории роли, как назначались (прямой доступ vs через группу), и статус PIM.
-
Риск приложений: какие Apps / Service Principals существуют, кто владет ими, какие разрешения/SSO используются, и какие принадлежат без владельца или внешним.
-
Управление доступом: кто имеет доступ к чему (пользователи, группы, пакеты); решения по обзору, автоматизация joiner/mover/leaver.
-
Готовность устройств: статус управляемости/соответствия, состояние присоединения, распределение ОС/версий, устаревшие или неактивные устройства.
-
Происхождение и расследование: сквозная телеметрия (sign‑in, audit, provisioning, network), оповещения о здоровье и SLA/availability.
-
Оптимизация расходов и гигиены: подсчет лицензий/использование, неиспользуемые или устаревшие приложения/группы, конфигурация домена и контакты.
Поддерживаемые клиенты и конфигурации
Microsoft MCP Server for Enterprise работает с любым MCP‑совместимым клиентом, который поддерживает последние стандарты.
Примечания:
- Dynamic Client Registration (DCR) не поддерживается, но в будущих релизах планируем добавить поддержку OAuth Client ID Metadata Documents (CIMD).
- ChatGPT, Claude и другие 3P‑агенты требуют пользовательского client Id: зарегистрируйте собственное MCP Client приложение в вашем арендаторе, назначьте необходимые MCP.* scope и сконфигурируйте Redirect URI соответствующим образом.
Платформы агентов Microsoft
Клиенты MCP сторонних производителей
Эти клиенты требуют зарегистрированного в вашем арендаторе MCP Client приложения. См. раздел [Authorization and permissions] для предоставления необходимых scopes MCP.* вашему приложению.
ChatGPT Перейдите в Settings, Apps, Create App, и заполните диалог:
Поместите App ID зарегистрированного приложения в красное поле.
Claude Перейдите в Customize, Connectors, нажмите " + ", Add Custom Connector, и заполните диалог:
Поместите App ID зарегистрированного приложения в красное поле.
Visual Studio Code и GitHub Copilot CLI
Visual Studio Code и GitHub Copilot CLI используют один и тот же MCP Client App Id для Visual Studio Code, поэтому настройка едина.
GitHub Copilot CLI также может использовать пользовательский App Id (см. вариант 2).
Требования
Эти шаги настраивают MCP Client для Visual Studio Code в вашем арендаторе и предоставляют MCP‑разрешения.
Они требуются для Visual Studio Code и для GitHub Copilot CLI, когда используется приложение Id по умолчанию (Option 1 ниже). Пропустите их, если настраиваете GitHub Copilot CLI с использованием пользовательского oauthClientId (Option 2 ниже).
Установите PowerShell модуль Microsoft.Entra.Beta (версия 1.0.13 или новее, требуется PowerShell 7):
Install-Module Microsoft.Entra.Beta -Force -AllowClobber
Подключите Microsoft Entra ID к вашему арендатора:
Connect-Entra -Scopes 'Application.ReadWrite.All', 'DelegatedPermissionGrant.ReadWrite.All'
Предоставьте все MCP-разрешения приложению MCP Client в Visual Studio Code (также используется GitHub Copilot CLI, если сконфигурирован с использованием идентификатора приложения по умолчанию):
Grant-EntraBetaMCPServerPermission -ApplicationName VisualStudioCode
Подробнее о Grant-EntraBetaMCPServerPermission. Для подробной помощи по установке смотрите инструкции по установке.
Если модули Microsoft Graph PowerShell SDK конфликтуют с Microsoft.Entra.Beta, выполните следующие команды и повторите шаг 1:
Install-Module Uninstall-Graph
Uninstall-Graph -All
Visual Studio Code
-
Нажмите Install Microsoft MCP Server for Enterprise для запуска страницы установки MCP.
-
Нажмите кнопку Install в VS Code и войдите в систему под учетной записью из указанного арендатора.
-
Если Visual Studio Code выводит ошибку
Error getting token from server metadata: Error: Cannot force new registration for a non-dynamic authentication provider., измените"microsoft-authentication.implementation"с"msal"на"msal-no-broker"в ваших настройках:
GitHub Copilot CLI GitHub Copilot CLI может подключиться как с использованием идентификатора приложения по умолчанию для Visual Studio Code, так и с пользовательским MCP Client Id, зарегистрированным в вашем арендаторе.
Вариант 1. По умолчанию (использует идентификатор приложения Visual Studio Code)
Выполните вышеуказанные требования.
Добавьте MCP server в Copilot CLI. Это можно сделать интерактивно с помощью /mcp add:
/mcp add
Вариант 2. Пользовательский MCP Client Id
Зарегистрируйте собственное MCP Client приложение в вашем арендаторе и предоставьте ему необходимые MCP.* scopes (см. раздел Authorization and permissions).
Установите Redirect URI для "Mobile and desktop applications" как
http://127.0.0.1:51001
Укажите ваш App Id через oauthClientId и oauthPublicClient как true в файле конфигурации ~/.copilot/mcp-config.json:
"mcp-enterprise": {
"type": "http",
"url": "https://mcp.svc.cloud.microsoft/enterprise",
"headers": {},
"tools": [ "*" ],
"oauthClientId": "<REGISTERED_APP_CLIENT_ID>",
"oauthPublicClient": true
}
В любом случае войдите в систему с учетной записьей из provisioned tenant, когда будет запрошено.
Дополнительную информацию см. в документации GitHub Copilot CLI: GitHub Copilot CLI documentation.
Authorization and permissions
The MCP Server for Enterprise использует Microsoft Graph API для доступа к данным вашего Microsoft Entra tenant только через delegated permissions и предоставляет ограниченный набор разрешений, доступных через Microsoft Graph.
Чтобы увидеть разрешения, предоставляемые 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-Object
Если вы хотите использовать собственное Registered Application, используйте следующие команды для управления scope, предоставляемыми вашему MCP Client:
" -Scopes "", "", "" Revoke-EntraBetaMCPServerPermission -ApplicationId "" -Scopes "", "", ""
Grant-EntraBetaMCPServerPermission -ApplicationId "<MCP_Client_Application_Id>" -Scopes "<Scope1>", "<Scope2>", "<...>"
Revoke-EntraBetaMCPServerPermission -ApplicationId "<MCP_Client_Application_Id>" -Scopes "<Scope1>", "<Scope2>", "<...>"
Подробнее: Manage MCP Server for Enterprise permissions
Преимущества
-
Удаленный MCP Server: легкая настройка и соответствие стандартам, развёрнут в тех же регионах, что и Microsoft Graph.
-
Администраторы ИТ под контролем: клиентам MCP требуются конкретные scopes MCP.* (зеркальные scopes Microsoft Graph) для доступа к данным арендатора.
-
Упрощенная архитектура: 3 инструмента покрывают весь рабочий процесс вместо одного инструмента на каждую операцию API.
-
Высокое качество генерации запросов: генерирует точные запросы на основе более 500 реальных примеров через RAG (Retrieval-Augmented Generation).
-
Полная аудируемость: все операции MCP выполняются под одним App ID с определенным User Agent.
-
Дополнительная лицензия не требуется: существующие лицензии на Microsoft Entra и Microsoft Graph API применимы.
Доступность, дорожная карта и обратная связь
Microsoft MCP Server for Enterprise доступен только в публичном облаке (глобальная служба), поддержка суверенных облаков планируется в будущих релизах.
Мы будем продолжать расширять функциональность за пределы текущих сценариев Microsoft Entra, однако API M365 будут охвачены Agent 365.
Поддержка операций записи планируется в будущих релизах.
Пожалуйста, делитесь идеями или проблемами через нашу форму обратной связи: Submit feedback.
Лицензирование и использование
-
MCP Server for Enterprise не требует дополнительных затрат или отдельной лицензии.
-
Вам нужны соответствующие лицензии на данные, к которым вы получаете доступ (например, лицензия Microsoft Entra ID Governance или лицензия Microsoft Entra ID P2 для данных Privileged Identity Management (PIM)).
-
Любой запрос к этому MCP серверу ограничен до 100 запросов в минуту на пользователя. Запросы к
microsoft_graph_getтакже подлежат ограничениям по Throttling Microsoft Graph.
Логи
Для мониторинга использования включите Microsoft Graph activity logs в вашем арендаторе. Система регистрирует все вызовы API, выполненные через MCP сервер.
Фильтр по использованию MCP Server:
Используйте Application (Client ID) для Microsoft MCP Server for Enterprise: e8c77dc2-69b3-43f4-bc51-3213c9d915b4.
Следующий запрос Kusto извлекает эти логи:
= ago(30d)
| where AppId == "e8c77dc2-69b3-43f4-bc51-3213c9d915b4"
| project RequestId, TimeGenerated, UserId, RequestMethod, RequestUri, ResponseStatusCode
Поддержка и справочные материалы
Для документации, устранения проблем и обратной связи обращайтесь к официальной документации Microsoft Learn и каналам поддержки.
Безопасность и соответствие
Все операции соответствуют разрешениям Microsoft Graph и политикам безопасности.
Обеспечьте соответствие вашим организационным, регуляторным и контрактным требованиям при интеграции MCP Server.
Без гарантий/ограничения по ответственности
Это программное обеспечение предоставляется "как есть" без каких‑либо гарантий или условий. Microsoft не несёт ответственности за любые повреждения, возникшие в результате использования, неправильного использования или некорректной конфигурации данного ПО.