Microsoft MCP Server for Enterprise with Copilot Studio安装指南
这个存储库是一个实用的、循序渐进的 操作指南 综合 微软MCP企业版服务器 进入一个 Copilot工作室代理 使用一个 模型上下文协议(MCP)工具 随着 OAuth 2.0(手册) 身份验证。
最后,您的Copilot Studio代理可以连接到MCP服务器端点,并通过Microsoft Graph(委托权限)检索Microsoft Entra租户洞察。
主要参考文献
- 微软学习: *开始使用Microsoft MCP Server for Enterprise* (官方)\
https://learn.microsoft.com/en-us/graph/mcp-server/get-started
- GitHub仓库: *Microsoft企业版MCP服务器(MCP注册表项)*\
https://github.com/mcp/microsoft/EnterpriseMCP
______________________________________________________________________
目录
- 1.1避免PowerShell模块冲突 - 1.2安装和连接 - 1.3注册MCP服务器 - 1.4确认注册和权限(推荐)
- 3.1创建客户端密钥 - 3.2配置权限/范围
______________________________________________________________________
你将建造什么
- A. 租户已配置 Microsoft MCP Server for Enterprise安装(每个租户完成一次)
- 一 Entra ID应用程序注册 Copilot Studio OAuth使用的(客户端ID+客户端密码)(手动)
- 一 MCP工具 配置在 Copilot工作室:
- 服务器URL: https://mcp.svc.cloud.microsoft/enterprise - 作用域样式:MCP服务器appId .default (e8c77dc2-69b3-43f4-bc51-3213c9d915b4/.default)
- 工作连接(带有验证提示)
______________________________________________________________________
Architecture Overview
建筑
Copilot工作室代理\ → MCP工具(模型上下文协议)\ → 微软MCP企业版服务器 (https://mcp.svc.cloud.microsoft/enterprise)\ ↔ OAuth 2.0(手册)通过 微软Entra ID 授权/令牌端点\ ↔ 连接/同意(通常通过以下方式可见 电源自动连接 故障排除期间)
______________________________________________________________________
能力和局限性
从官方repo/docs中,要记住的要点:
- 仅授权权限 (用户交互)。不支持仅应用程序权限/仅应用程序工作流。
- 服务器设计用于 只读企业IT场景 在公开预览期间,重点关注Microsoft Entra身份/目录(用户、组、应用程序、设备、角色、策略等)。
- MCP服务器故意“非典型”:它暴露了 三个工具 并通过提示/RAG生成Microsoft Graph调用,而不是每次Graph操作都暴露一个工具:
- microsoft_graph_suggest_queries - microsoft_graph_get - microsoft_graph_list_properties
- MCP客户须知:
- 不支持动态客户端注册(DCR)(请参阅GitHub仓库注释)。
______________________________________________________________________
先决条件
角色/权限
您通常需要:
- 对于租户配置(一次性): 应用程序管理员 或 云应用管理员
- 对于应用程序注册:注册应用程序的能力(应用程序开发人员或管理员角色)
工具
- PowerShell 以管理员身份运行
- PowerShell模块:
Microsoft.Entra.Beta(v1.0.13+)
你应该已经准备好了
- 租户ID(GUID)
- 能够在Entra ID中创建应用程序注册
______________________________________________________________________
配置值
您将多次使用这些值:
TENANT_ID--您的Entra租户ID(GUID)CLIENT_ID--应用程序注册的应用程序(客户端)IDCLIENT_SECRET--客户机密 *价值* (在创建时复制)- MCP服务器URL:
https://mcp.svc.cloud.microsoft/enterprise - MCP服务器(appId):
e8c77dc2-69b3-43f4-bc51-3213c9d915b4 - 授权URL模板:
https://login.microsoftonline.com//oauth2/v2.0/authorize - 令牌URL模板:
https://login.microsoftonline.com//oauth2/v2.0/token - 快速范围(广泛):
e8c77dc2-69b3-43f4-bc51-3213c9d915b4/.default
提示:创建一个 .env.example 如果你想为你的团队标准化这些值,请使用文件。______________________________________________________________________
1.为企业提供MCP服务器(每个租户一次)
打开 PowerShell作为管理员.
1.1避免PowerShell模块冲突
GitHub快速入门指出了与Microsoft Graph PowerShell SDK模块的潜在冲突。如果遇到模块冲突问题,请考虑在继续之前删除Graph模块:
Install-Module Uninstall-Graph
Uninstall-Graph -All如果您没有问题,可以跳过此步骤。
1.2安装和连接
安装所需模块:
Install-Module Microsoft.Entra.Beta -Force -AllowClobber向要注册MCP服务器的租户进行身份验证(需要管理员角色):
Connect-Entra -Scopes 'Application.ReadWrite.All', 'Directory.Read.All', 'DelegatedPermissionGrant.ReadWrite.All'建议在身份验证后进行健全性检查:
Get-EntraContext1.3注册MCP服务器
在租户中注册Microsoft MCP Server for Enterprise并授予Visual Studio代码的权限:
Grant-EntraBetaMCPServerPermission -ApplicationName VisualStudioCode✅ 此时,租户配置已完成。
1.4确认注册和权限(推荐)
确认服务主体存在
Microsoft Learn提供了两个配置后应该看到的appId:
- Microsoft MCP企业版服务器:
e8c77dc2-69b3-43f4-bc51-3213c9d915b4 - Visual Studio代码:
aebc6443-996d-45c2-90f0-388ff96faa56
使用Microsoft Graph(示例):
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')使用Entra 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确认授予MCP客户端的权限
图形示例:
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}'PowerShell示例:
$grant = Get-EntraBetaServicePrincipalOAuth2PermissionGrant -ServicePrincipalId $mcpClientSp.Id
$grant.Scope -split ' '---
## 2. Register an application in Microsoft Entra ID
1. Sign in to the **Microsoft Entra admin center**
2. Navigate to: **Entra ID > App registrations > New registration**
3. Enter a name (example: `Copilot-MCP-Server`)
4. Suggested:
- **Single tenant**
- Add platform/redirect URI later (after Copilot Studio generates it)
5. Click **Register**
6. Save:
- **Application (client) ID**
- **Directory (tenant) ID**
---
## 3. Configure the registered application
### 3.1 Create a client secret
1. Go to: **Certificates & secrets > Client secrets > New client secret**
2. Add a description, set expiration, click **Add**
3. Copy the **client secret value** immediately (you won’t be able to see it again)
### 3.2 Configure permissions/scopes
Least privilege (recommended for enterprise)
Microsoft Learn describes MCP scopes that map to Graph scopes.
1. Go to **API permissions** > **Add a permission** > **APIs my organization uses.**
2. Search for **'Microsoft MCP Server for Enterprise'** and select it.

4. Expand all permissions and check all boxes.

4.在Copilot Studio中设置MCP工具
- 登录到…… Copilot工作室
- 创建一个 实习业务员
- 添加工具并选择 模型上下文协议
______________________________________________________________________
- 填写以下配置
MCP工具配置
- 服务器名称:
MS MCP Server Enterprise(示例) - 服务器URL:\
https://mcp.svc.cloud.microsoft/enterprise
- 身份验证:
OAuth 2.0 (Manual) - 客户端ID: 您 的 入口 应用程序(客户端)ID
- 客户端密码: 您 的 入口 客户端秘密值
- 授权URL:\
https://login.microsoftonline.com//oauth2/v2.0/authorize
- 令牌URL:\
https://login.microsoftonline.com//oauth2/v2.0/token
- 范围(快速启动):\
e8c77dc2-69b3-43f4-bc51-3213c9d915b4/.default
______________________________________________________________________
______________________________________________________________________
- 点击 创建
- 复制重定向URL并等待,然后单击“下一步”
______________________________________________________________________
______________________________________________________________________
5.在Entra ID中添加重定向URI
- 在 Entra管理中心首选 应用程序注册>您的应用程序
- 添加 重定向URI 复制自Copilot工作室
- 启用:
- ✅ 访问令牌 - ✅ ID令牌
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
6.完成连接
- 返回 Copilot工作室
______________________________________________________________________
______________________________________________________________________
- 完成连接流程
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
______________________________________________________________________
如果一切正常,该工具应在代理中可用。
______________________________________________________________________
7.测试集成
在Copilot Studio聊天中,尝试:
get my tenant detailed information.______________________________________________________________________
故障排除
如果您在安装后看到错误(通过Power Automation重新连接)
如果您遇到连接/同意错误:
- 在Copilot Studio,请访问 工具 (左菜单)
- 单击MCP工具打开其相关连接器详细信息
- 转到 Power Automation定制连接器 页面(通过单击连接器)
- 选择 连接 左侧菜单中的快捷方式
- 找到您的连接,然后选择:
- 重新连接 - 允许访问
- 返回Copilot Studio并再次选择您的工具
常见原因检查表
- URL中的租户ID不匹配:
- ...//oauth2/v2.0/authorize - ...//oauth2/v2.0/token
- 重定向URI未正确复制或添加到错误的应用程序注册中
- 未启用访问令牌/ID令牌
- 缺少MCP范围/管理员同意(取决于租户政策)
- 客户端密钥值错误(或密钥已过期)
- 连接缓存:需要在连接管理器中刷新/重新连接
______________________________________________________________________
监控、限制和可审计性
官方回购的亮点:
- 请求仅限于 每位用户每分钟100个请求 (图形限制仍然适用)。
- 操作是可审计的,因为它们在已知的AppId下执行。您可以按MCP服务器appId筛选日志:\
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______________________________________________________________________
禁用企业版MCP服务器(可选)
Microsoft Learn注意到,您不能从租户中删除Microsoft拥有的服务,但您 可以禁用它 如果需要,可以设置服务主体的 accountEnabled 到 false.
图形示例:
PATCH https://graph.microsoft.com/v1.0/servicePrincipals(appId='e8c77dc2-69b3-43f4-bc51-3213c9d915b4')
{
"accountEnabled": false
}PowerShell示例:
$mcpServerSp = Get-EntraBetaServicePrincipal -Select id,appId,displayName -Filter "appId eq 'e8c77dc2-69b3-43f4-bc51-3213c9d915b4'"
Set-EntraBetaServicePrincipal -ServicePrincipalId $mcpServerSp.Id -AccountEnabled $false______________________________________________________________________
安全说明
- 将机密存储在安全的保管库中(不要将机密提交到Git)
- 定期轮换机密并记录所有权
- 从POC移动时,首选最低权限→ 生产
______________________________________________________________________
更新日志
v1.0--首次发布的指南
______________________________________________________________________
免责声明
这是旨在帮助重现工作配置的社区文档。 这不是微软的官方文档。
