Microsoft MCP服务器企业版-安装指南
概述
本指南将指导您在Entra ID租户中设置Microsoft MCP Server for Enterprise,并将其连接到Visual Studio Code。MCP服务器使Copilot能够使用Microsoft Graph API查询您的Microsoft 365租户数据。
先决条件
- 管理员访问:以管理员身份运行PowerShell
- 角色要求:Entra租户中的应用程序管理员或云应用程序管理员角色
- Visual Studio Code:安装在您的机器上
安装步骤
步骤1:安装Microsoft。恩特拉。测试版PowerShell模块
以管理员身份打开PowerShell并运行:
Install-Module Microsoft.Entra.Beta -Force -AllowClobber第二步:向租户进行身份验证
使用所需权限连接到租户:
Connect-Entra -Scopes 'Application.ReadWrite.All', 'Directory.Read.All', 'DelegatedPermissionGrant.ReadWrite.All'小贴士:验证您的连接:
Get-EntraContext步骤3:注册MCP服务器并授予权限
注册Microsoft MCP Server for Enterprise并授予VS Code权限:
Grant-EntraBetaMCPServerPermission -ApplicationName VisualStudioCode此命令:
- 在租户中注册Microsoft MCP Server for Enterprise
- 授予Visual Studio代码委派权限
- 配置OAuth2权限授予以实现无缝身份验证
步骤4:验证注册
确认两个应用程序都已在您的租户中注册:
使用PowerShell:
$mcpClientSp = Get-EntraBetaServicePrincipal -Select id,appId,displayName -Filter "appId eq 'aebc6443-996d-45c2-90f0-388ff96faa56'"
$mcpServerSp = Get-EntraBetaServicePrincipal -Select id,appId,displayName -Filter "appId eq 'e8c77dc2-69b3-43f4-bc51-3213c9d915b4'"
$mcpClientSp, $mcpServerSp | Format-Table id, appId, displayName -AutoSize预期应用:
| 名称 | 应用程序ID(客户端ID) |
|---|---|
| 微软MCP企业版服务器 | e8c77dc2-69b3-43f4-bc51-3213c9d915b4 |
| Visual Studio代码 | aebc6443-996d-45c2-90f0-388ff96faa56 |
验证授予的权限:
$grant = Get-EntraBetaServicePrincipalOAuth2PermissionGrant -ServicePrincipalId $mcpClientSp.Id
$grant.Scope -split ' '步骤5:在VS代码中安装MCP服务器
- 单击此链接: 为企业安装Microsoft MCP服务器
- 选择 安装 VS代码
- 出现提示时使用管理员帐户进行身份验证
步骤6:测试设置
- 在VS Code中打开Copilot聊天
- 切换到 代理 模式
- 向租户提出具体问题,例如:
- “我的租户中有多少用户?” - “列出所有能够进行SSPR的用户” - “我的租户中是否正在运行访问审查?”
- 审查回复,其中包括:
- 为理解意图而调用的工具 - 执行了Microsoft Graph REST API调用 - 总结租户数据的自然语言答案
自动设置脚本
为方便起见,您可以使用提供的 setup-script.ps1 使步骤2-4自动化:
.\setup-script.ps1脚本将:
- 连接到您的Entra租户
- 注册MCP服务器
- 授予VS代码权限
- 验证设置
- 显示下一步
可用MCP示波器
MCP服务器公开 34个授权权限 遵循模式 MCP.{microsoft-graph-scope-name}。所有范围都是只读的,需要管理员同意。
可用范围的完整列表
| 范围 | 描述 |
|---|---|
| MCP。访问审查。读。全部 | 阅读访问评论 |
| MCP。行政单位。读。全部 | 读取行政单位 |
| MCP。应用程序。读。全部 | 阅读所有应用程序 |
| MCP。审计日志。读。全部 | 读取所有审核日志 |
| MCP。身份验证上下文。读。全部 | 读取身份验证上下文 |
| MCP。设备。读。全部 | 读取所有设备 |
| MCP。目录建议。读。全部 | 阅读目录推荐 |
| MCP。域名。读。全部 | 读取所有域 |
| MCP。权利管理。读。全部 | 读取权限管理 |
| MCP。集团成员。读。全部 | 阅读群组成员 |
| MCP。健康监测警报。读。全部 | 读取所有场景健康监控警报 |
| MCP。身份风险事件。读。全部 | 读取身份风险事件 |
| MCP。身份风险服务负责人。读。全部 | 阅读身份风险服务原则 |
| MCP。身份风险用户。读。全部 | 读取身份风险用户 |
| MCP。许可证转让。读。全部 | 阅读许可证分配 |
| MCP。生命周期工作流。读。全部 | 读取生命周期工作流 |
| MCP。生命周期工作流CustomExt。读。全部 | 阅读生命周期工作流自定义扩展 |
| MCP。生命周期工作流报告。读。全部 | 阅读生命周期工作流报告 |
| MCP。生命周期工作流工作流。读。全部 | 读取生命周期工作流工作流信息 |
| MCP。生命周期工作流工作流。阅读基础。全部 | 列出生命周期工作流中的所有工作流 |
| MCP。网络访问。读。全部 | 读取网络访问权限 |
| MCP。NetworkAccess报告。读。全部 | 读取网络访问报告 |
| MCP。组织。读。全部 | 读取组织信息 |
| MCP。政策。读。全部 | 阅读所有政策 |
| MCP。政策。读。有条件访问 | 阅读条件访问策略 |
| MCP。配置日志。读。全部 | 读取配置日志 |
| MCP。报告。读。全部 | 阅读所有报告 |
| MCP。角色分配时间表。读。目录 | 读取目录的角色分配计划 |
| MCP。角色职责表。读。目录 | 读取目录的角色资格表 |
| MCP。角色管理。读。目录 | 读取目录的角色管理 |
| MCP。同步。读。全部 | 读取同步信息 |
| MCP。用户。读。全部 | 读取所有用户 |
| MCP。用户身份验证方法。读。全部 | 读取用户身份验证方法 |
| ~~MCP。组设置。读。全部~~ | *(禁用)读取组设置* |
备注:所有范围都是委托权限,这意味着它们在登录用户现有权限的上下文中运行。这些作用域直接映射到Microsoft Graph API权限,允许Copilot安全地查询租户数据。
运作原理
- 认证:当您向Copilot询问有关租户的问题时,VS Code会使用OAuth2向MCP服务器进行身份验证
- 意图识别:MCP服务器使用AI来理解您的意图,并建议适当的Microsoft Graph API端点
- API执行:服务器代表您执行Graph API调用
- 回应:结果返回给Copilot,它提供自然语言答案
故障排除
权限问题
如果遇到权限错误,请确保:
- 应用程序管理员或云应用程序管理员角色
- 在身份验证过程中同意所需的权限
重新运行权限授予
Grant-EntraBetaMCPServerPermission -ApplicationName VisualStudioCode禁用MCP服务器
如果需要禁用MCP服务器:
$mcpServerSp = Get-EntraBetaServicePrincipal -Select id,appId,displayName -Filter "appId eq 'e8c77dc2-69b3-43f4-bc51-3213c9d915b4'"
Set-EntraBetaServicePrincipal -ServicePrincipalId $mcpServerSp.Id -AccountEnabled $false重新启用MCP服务器
$mcpServerSp = Get-EntraBetaServicePrincipal -Select id,appId,displayName -Filter "appId eq 'e8c77dc2-69b3-43f4-bc51-3213c9d915b4'"
Set-EntraBetaServicePrincipal -ServicePrincipalId $mcpServerSp.Id -AccountEnabled $true安全考虑
- 最小特权:MCP服务器使用委托权限,这意味着它只能访问经过身份验证的用户有权查看的数据
- 审计日志:所有API调用都记录在租户的审核日志中
- 管理员控制:租户管理员可以随时禁用或删除服务主体
- 无数据存储:MCP服务器不存储您的租户数据;它只便于实时查询
常见问题
每次打开VS Code时,我都需要运行安装脚本吗?
不,设置是 一次性过程:
- 一次性设置:运行
setup-script.ps1在租户中注册MCP服务器 - VS Code一次性安装:使用安装链接在VS代码中安装MCP服务器
- 一次性身份验证:首次使用时出现提示时登录
初始设置后,每次打开VS Code时,MCP服务器都会自动可用。您不需要运行任何PowerShell命令或再次进行身份验证。
只有在以下情况下才需要重新身份验证:
- 您的身份验证令牌过期(通常在几个月后)
- 管理员撤销权限
- 您从VS Code手动注销
这是使用委托权限还是应用程序权限?
用于企业的Microsoft MCP服务器 委托权限,而不是应用程序权限。
这意味着:
- 用户上下文:MCP服务器只能访问您(登录用户)有权查看的数据
- 无高架通道:除了您的帐户已有的特权之外,它没有任何特权
- 设计安全:如果您的帐户无法在Azure门户或Microsoft 365管理中心查看某些数据,MCP服务器也无法访问它
- 审计跟踪:所有API调用都是在您的用户上下文中进行的,并显示在您帐户下的审核日志中
- 无后门访问:与无论谁使用应用程序都有效的应用程序权限不同,委托权限可确保MCP服务器使用您现有的权限代表您行事
这种委托权限模型提供了增强的安全性,并确保了最小特权原则得到维护。
我的租户中的其他用户可以在我设置MCP服务器后使用它吗?
对。运行安装脚本后,MCP服务器将在租户中注册,并可供所有用户使用。然而:
- 每个用户都必须在自己的VS Code实例中安装MCP服务器
- 每个用户都使用自己的凭据进行身份验证
- 每个用户只能访问他们有权查看的数据(委派权限)
MCP服务器被授予哪些权限?
MCP服务器按照以下模式公开委托权限 MCP.{microsoft-graph-scope-name}这些措施包括:
- MCP。用户。读。全部
- MCP。集团。读。全部
- MCP。应用程序。读。全部
- MCP。审计日志。读。全部
- MCP。目录。读。全部
- 还有更多的只读作用域
所有权限都是委托的,这意味着它们只在经过身份验证的用户现有权限的上下文中工作。
我的租户数据是否存储在任何地方?
否。MCP服务器不存储您的租户数据。它只方便对Microsoft Graph API进行实时查询。所有数据都保留在您的Microsoft 365租户中,当您询问Copilot问题时,将按需拨打API电话。
资源
许可证
本设置指南按原样提供,用于教育和配置目的。
贡献
如果您发现问题或有改进建议,请打开问题或提交拉取请求。
