Important
美国通知:启用此功能将允许数据流出FedRAMP高边界之外。 用户应向租户管理员确认该功能符合其组织的特定安全要求和合规义务。
使用Dynamics 365 CX模型上下文协议(MCP)服务器-服务,将客户服务数据和工具连接到支持基于HTTP的MCP连接的Microsoft Copilot Studio代理或其他MCP客户端。 Agent 365 工具网关(ATG)提供由 Microsoft 托管的网关,作为客户服务 MCP 服务器的前端网关,并负责针对 Dataverse 的身份验证。
本文介绍如何执行以下操作:
- 了解 Dynamics 365 CX MCP 服务器 - 服务中 Agent 365 工具网关认证的工作原理。
- 配置一个 Copilot Studio 代理,通过 Agent 365 工具网关使用 Dynamics 365 CX MCP 服务器 - 服务服务器。
- Connect 支持外部 MCP 客户端,如 Cursor、ChatGPT、Claude Code、Visual Studio Code 和 GitHub Copilot CLI。
- 排查常见的设置和认证问题。
Agent 365 工具网关认证的工作原理
Agent 365 工具网关是一个受 OAuth 2.0 保护的资源。 由网关代理的每个 MCP 服务器 URL 都会通过匿名发现端点公开 OAuth 发现元数据。
GET https://agent365.svc.cloud.microsoft/.well-known/oauth-protected-resource/mcp/environments/<environment-id>/servers/mcp_D365CX_Service
发现响应告诉MCP客户端应使用哪个授权服务器、资源对象和作用域。
{
"resource_name": "mcp_D365CX_Service",
"resource": "https://agent365.svc.cloud.microsoft/mcp/environments/<environment-id>/servers/mcp_D365CX_Service",
"authorization_servers": [
"https://login.microsoftonline.com/organizations/v2.0"
],
"scopes_supported": [
"https://agent365.svc.cloud.microsoft/mcp/environments/<environment-id>/servers/mcp_D365CX_Service/.default",
"openid",
"profile",
"offline_access"
],
"bearer_methods_supported": [
"header"
]
}
MCP客户端请求为Agent 365工具网关资源提供令牌。 代理365工具网关随后执行代表交换,使请求能够到达Dataverse。
重要注意事项
- 令牌的目标受众是工具网关,而不是 Dynamics 365 CX MCP Server - Service 本身。
- OAuth 范围使用 Agent 365 工具网关资源 URL,结尾为
/.default。 - 该
/.default范围不支持增量或动态用户同意。 必须事先在客户租户中获得管理员同意。 - 该范围特定于环境和服务器。 每个环境都需要自己的连接器配置。
- 具备发现能力的客户端可以自动读取OAuth元数据。 Copilot Studio 的自定义连接器设置可能需要手动输入 OAuth 值。
先决条件
- 使用系统管理员或全通道管理员角色来配置MCP服务器。
- 使用客户服务代表或CSR经理角色来使用MCP服务器及其工具。
- Dynamics 365 CX MCP 服务器 - 服务必须配置并可在 Copilot Studio 工具列表中使用。
- Dataverse 环境标识符。 此 ID 是 Agent 365 工具网关服务器 URL 中必需的。
- 更正 Agent 365 Tooling Gateway 应用 ID。
- 租户管理员权限或委托管理员同意权限。
Important
启用 Dynamics 365 与非 Dynamics 365 服务(包括 Microsoft 或外部服务)之间的连接,将允许数据泄出 Dynamics 365 FedRAMP High 边界之外。 从Dynamics 365流向其他服务的数据将根据目标服务的条款、合规承诺以及数据驻留和处理要求进行处理和存储。
这些数据可能包括你组织内用户提交给客服人员的查询和其他数据。 在为您的组织启用MCP服务器连接之前,租户管理员应确认这些连接符合其数据安全、合规、驻地和治理要求。
Agent 365 工具网关应用 ID
Agent 365 Tooling Gateway 使用 Microsoft Entra 应用 ID。 请使用以下应用ID。
| Microsoft Entra 应用 ID |
|---|
ea9ffc3e-8a23-4a7d-836d-234d7c7565c1 |
使用以下服务器网址格式:
https://agent365.svc.cloud.microsoft/mcp/environments/<environment-id>/servers/mcp_D365CX_Service
/mcp/environments/ 路径段是必需的。 如果省略,请求返回 404 RouteNotFound。
提供服务负责人并授予管理员同意
Agent 365 Tooling Gateway 应用是 Microsoft 提供的第一方应用注册。 在客户端应用可为该服务主体请求令牌之前,工具网关服务主体必须已存在于客户租户中,并且委派权限必须已获得管理员同意。
作为租户管理员,请打开以下管理员同意网址。 将 <ATG-app-id> 替换为客户租户 ID,并将 <customer-tenant-id> 替换为应用 ID。
https://login.microsoftonline.com/<customer-tenant-id>/adminconsent?client_id=<ATG-app-id>
以租户管理员身份登录并批准请求。 Microsoft Entra 在客户租户的 企业应用 下创建 Agent 365 Tooling Gateway 资源服务主体。
您也可以手动配置服务主体并授予管理员同意,具体如下:
az ad sp create --id <ATG-app-id>
New-MgServicePrincipal -AppId "<ATG-app-id>"
创建用于 Copilot Studio 的客户端 Microsoft Entra 应用
要在 Copilot Studio 中配置自定义连接器,请在 Microsoft Entra ID 中创建您自己的机密客户端应用。 该应用不是 Dynamics 365 的第一方应用,只需访问 Agent 365 工具网关资源范围的权限。
在 Microsoft Entra 管理中心 中,请完成以下步骤:
- 按照“注册应用”中的步骤创建 Microsoft Entra 应用注册。 请确保使用单租户应用注册。
- 为应用注册创建一个客户端秘密。 了解更多内容,请参见 添加客户秘密。 复制机密值。 你在Copilot Studio配置OAuth时会用这个值。
- 进入 API 权限,然后选择 添加权限。
- 选择“我的组织使用的 API”。
- 通过应用ID搜索Agent 365工具网关应用。
- 添加 Agent 365 Tooling Gateway 应用为
McpServers.D365Service.All暴露的委派权限。 - 选择“授予管理员同意”。
在 Copilot Studio 于连接器设置过程中生成回调 URL 之前,请将 Web 重定向 URI 保持为空。
将MCP服务器添加到代理
打开Copilot Studio,然后打开或创建一个代理。
请按照“ 从模型上下文协议(MCP)服务器添加工具和资源到您的代理 ”中的步骤,创建新的MCP服务器并提供以下详细信息:
领域 Value 服务器名称 输入一个清晰的名称,例如 Dynamics 365 CX MCP Server through ATG。服务器说明 描述可用的功能,以便编排器能够将请求路由到该服务器。 例如: Use Dynamics 365 Customer Experience tools to list, read, and update cases; search knowledge; view activity timelines; and draft emails.服务器地址 https://agent365.svc.cloud.microsoft/mcp/environments/<environment-id>/servers/mcp_D365CX_ServiceAuthentication 选择 OAuth 2.0。 输入 Agent 365 Tooling Gateway 发现元数据提供的 OAuth 值。 除非你的 Copilot Studio 环境支持MCP服务器的动态OAuth发现,否则请使用手动配置。
领域 Value 客户端 ID 你为Copilot Studio创建的Microsoft Entra应用的客户端ID。 客户端密码 Microsoft Entra 应用中的客户端秘密值。 授权 URL https://login.microsoftonline.com/<customer-tenant-id>/oauth2/v2.0/authorize令牌 URL https://login.microsoftonline.com/<customer-tenant-id>/oauth2/v2.0/token刷新 URL 与令牌 URL 相同。 Scope <ATG App ID>/.default例如:ea9ffc3e-8a23-4a7d-836d-234d7c7565c1/.default
创建OAuth配置后,Copilot Studio会显示回调URL。 复制回调 URL,并将其添加到你为 Copilot Studio 创建的 Microsoft Entra 应用中的 Web 重定向 URI。
创建连接并添加工具
在 Copilot Studio 代理中,完成以下步骤:
- 在 添加工具 对话框中,选择 创建新连接。
- 请使用能够访问目标客户服务环境的账户登录。
- 把工具添加到代理中。
- 发布代理。
或者,如果你想在 Customer Service 中使用你的智能体,请转到渠道选项卡,并将该智能体连接到 Dynamics 365 Customer Service。
配置具备发现能力的MCP客户端
支持发现功能的MCP客户端,如Visual Studio Code、GitHub Copilot CLI、Cursor、ChatGPT和Claude Code,可以自动检索工具网关OAuth元数据。 对于这些客户端,配置MCP服务器URL,让客户端负责登录。
注释
对于支持 MCP 服务器 OAuth 发现的客户端,无需手动 OAuth 端点、客户端 ID、范围或秘密。
Visual Studio Code
- 在 Visual Studio Code 中,按 Ctrl+Shift+P 打开命令面板。
- 输入
MCP: Add Server。 - 选择 HTTP 或 服务器发送事件。
- 添加客户服务MCP服务器URL。
{
"servers": {
"d365-customer-service": {
"type": "http",
"url": "https://agent365.svc.cloud.microsoft/mcp/environments/<environment-id>/servers/mcp_D365CX_Service"
}
},
"inputs": []
}
GitHub Copilot 命令行界面 (CLI)
将服务器添加到 .mcp.json。
{
"mcpServers": {
"d365-customer-service": {
"type": "http",
"url": "https://agent365.svc.cloud.microsoft/mcp/environments/<environment-id>/servers/mcp_D365CX_Service"
}
}
}
Cursor
- 打开光标。
- 打开设置。
- 前往 功能>MCP 服务器。
- 选择 “添加 MCP 服务器”。
- 添加服务器配置。
{
"mcpServers": {
"d365-customer-service": {
"url": "https://agent365.svc.cloud.microsoft/mcp/environments/<environment-id>/servers/mcp_D365CX_Service"
}
}
}
用目标环境的 Dataverse 环境 ID 替换 <environment-id>。
ChatGPT
- 打开 设置>连接器>MCP 服务器。
- 添加客户服务MCP服务器URL。
https://agent365.svc.cloud.microsoft/mcp/environments/<environment-id>/servers/mcp_D365CX_Service
- 选择 连接。
- 当Microsoft认证流程打开时登录。
- 确认可用的MCP工具已注册。
克劳德密码
当 Claude Code 发出第一个 MCP 请求时,它会发现 Agent 365 工具网关的 OAuth 元数据,打开 Microsoft 登录,并在用户认证后将令牌存储在本地。
用 Claude Code 配置 MCP 服务器。
{
"mcpServers": {
"d365-customer-service": {
"transport": {
"type": "http",
"url": "https://agent365.svc.cloud.microsoft/mcp/environments/<environment-id>/servers/mcp_D365CX_Service"
}
}
}
}