README
🚀 企业版 Microsoft MCP 服务器
企业版 Microsoft MCP 服务器基于开放的 Model Context Protocol 构建,其公开预览版允许 AI 代理通过将自然语言查询转换为 Microsoft Graph API 调用,来访问 Microsoft Entra 数据。该服务器使开发者和 IT 管理员能够将组织数据管理集成到 AI 驱动的工作流中。
🚀 快速开始
要开始使用企业版 Microsoft MCP 服务器,请按照以下步骤操作:
-
确保 Microsoft Graph PowerShell SDK 模块与 Microsoft.Entra.Beta 模块不冲突。如果已安装 Microsoft.Graph 模块,请考虑先卸载它们:
Install-Module Uninstall-Graph Uninstall-Graph -All -
安装 Microsoft.Entra.Beta PowerShell 模块(版本 1.0.13 或更高):
Install-Module Microsoft.Entra.Beta -Force -AllowClobber -
将 Microsoft Entra ID 连接到你要注册 MCP 服务器的租户:
Connect-Entra -Scopes 'Application.ReadWrite.All', 'DelegatedPermissionGrant.ReadWrite.All' -
在你的租户中注册企业版 MCP 服务器,并向 Visual Studio Code 授予所有权限:
Grant-EntraBetaMCPServerPermission -ApplicationName VisualStudioCode -
如果你在上述任何步骤中遇到问题,请参考详细的 安装说明。
-
点击 安装企业版 Microsoft MCP 服务器 以启动 VS Code 的 MCP 安装页面。
-
在 VS Code 中点击“安装”按钮,然后使用上述租户的管理员账户登录。
-
打开 Copilot Chat 并询问有关你的租户的问题。
✨ 主要特性
工具特性
此 MCP 服务器与众不同,它并非为每个 Microsoft Graph 操作提供单独的工具,而是应用检索增强生成 (RAG) 和少样本提示来生成完整的 Microsoft Graph 查询。它仅公开三个工具来实现可靠且有依据的工作流:
microsoft_graph_suggest_queries:根据用户意图查找相关的 Microsoft Graph API 调用。microsoft_graph_get:执行只读的 Microsoft Graph API 调用,同时遵循用户角色和 MCP 客户端范围。microsoft_graph_list_properties:检索特定 Microsoft Graph 实体的属性,以帮助 AI 模型。
功能范围
在公开预览阶段,我们专注于支持以 Microsoft Entra 身份和目录操作(用户、组、应用程序、设备管理和管理操作)为中心的只读企业 IT 场景。
具体而言,MCP 服务器可以处理与以下方面相关的查询:
- 安全态势:身份验证方法/强度、条件访问、安全默认值。
- 特权访问:哪些人拥有哪些目录角色,如何分配(直接分配还是通过组分配)以及 PIM 状态。
- 应用程序风险:存在哪些应用程序/服务主体,谁是它们的所有者,它们使用哪些权限/单点登录,哪些是无所有者或外部的。
- 访问治理:哪些人可以访问哪些资源(用户、组、包);审核决策,自动化入职/调动/离职流程。
- 设备就绪状态:托管/合规状态、加入状态、操作系统/版本分布以及陈旧或非活动设备。
- 来源和调查:端到端遥测(登录、审核、预配、网络)、健康警报以及 SLA/可用性。
- 优化支出和清理:许可证数量/使用情况、未使用或陈旧的应用程序/组、域配置和联系人。
客户端支持
企业版 Microsoft MCP 服务器旨在与任何支持最新标准的 MCP 兼容客户端配合使用。
⚠️ 重要提示
- 不支持动态客户端注册 (DCR),但我们正在努力在未来版本中支持 OAuth 客户端 ID 元数据文档 (CIMD)。
- ChatGPT 仅支持使用自定义客户端 ID,目前仅在专业计划中可用。
- Claude 存在一个阻止与 Entra 资源进行身份验证的错误,团队已知晓并正在修复。它也需要自定义客户端 ID,仅在团队计划中可用。
我们建议将其与 Visual Studio Code 和 Copilot Chat 扩展 配合使用。
授权和权限
企业版 MCP 服务器仅使用委托权限通过 Microsoft Graph API 访问你的 Microsoft Entra 租户中的数据,并提供 Microsoft Graph 公开的一组简化权限。
使用以下 cmdlet 列出企业版 MCP 服务器提供的权限:
(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
如果你想使用自己注册的应用程序,请使用以下 cmdlet 管理授予你的 MCP 客户端应用程序的范围:
Grant-EntraBetaMCPServerPermission -ApplicationId "<MCP_Client_Application_Id>" -Scopes "<Scope1>", "<Scope2>", "<...>"
Revoke-EntraBetaMCPServerPermission -ApplicationId "<MCP_Client_Application_Id>" -Scopes "<Scope1>", "<Scope2>", "<...>"
了解更多:管理企业版 MCP 服务器权限
优势特点
- 远程 MCP 服务器:易于配置,完全合规且高度可靠,部署在与 Microsoft Graph 相同的区域以实现最佳性能。
- IT 管理员可控:MCP 客户端需要被授予特定的 MCP.* 范围(与 Microsoft Graph 范围相对应)才能访问你的租户数据。
- 简化架构:只需使用 3 个工具,而无需为每个 API 操作管理单独的工具。
- 高质量查询生成:通过 RAG(检索增强生成)使用 500 多个真实世界的示例生成准确的查询。
- 完全可审计性:由于所有 MCP 操作都在具有特定用户代理的同一应用程序 ID 下执行,因此可以轻松审计所有 MCP 操作。
- 无需额外许可证:仅需现有的 Microsoft Entra 和 Microsoft Graph API 许可证。
可用性、路线图和反馈
企业版 Microsoft MCP 服务器仅在公共云(全球服务)中可用,计划在未来版本中支持主权云。
我们将继续扩展当前的 Microsoft Entra 场景之外的功能,但 M365 API 将由 Agent 365 覆盖。
计划在未来版本中支持写操作。
请通过我们的反馈表单分享建议或问题:提交反馈。
许可和使用
- 企业版 MCP 服务器无需额外费用或单独的许可证。
- 你需要为访问的数据获得正确的许可证(例如,访问特权身份管理 (PIM) 数据需要 Microsoft Entra ID 治理或 Microsoft Entra ID P2 许可证)。
- 对该 MCP 服务器的任何请求限制为每个用户每分钟 100 个请求。对
microsoft_graph_get的请求也受 Microsoft Graph 限流限制 的约束。
日志监控
要监控使用情况,请在你的租户中启用 Microsoft Graph 活动日志。系统会记录通过 MCP 服务器进行的所有 API 调用。
过滤 MCP 服务器使用情况:
使用企业版 Microsoft MCP 服务器的应用程序(客户端 ID):e8c77dc2-69b3-43f4-bc51-3213c9d915b4。
以下 Kusto 查询可检索这些日志:
MicrosoftGraphActivityLogs
| where TimeGenerated >= ago(30d)
| where AppId == "e8c77dc2-69b3-43f4-bc51-3213c9d915b4"
| project RequestId, TimeGenerated, UserId, RequestMethod, RequestUri, ResponseStatusCode
支持和参考
有关文档、故障排除和反馈,请参考官方 Microsoft Learn 文档和支持渠道。
安全和合规
所有操作都遵循 Microsoft Graph 权限和安全策略。在集成 MCP 服务器时,请确保符合你的组织、法规和合同要求。
无担保/责任限制
本软件“按原样”提供,不提供任何形式的明示或暗示保证或条件。Microsoft 不对因使用、误用或错误配置本软件而导致的任何损害承担责任。
Scan to join WeChat group