原文地址 learn.microsoft.com
通过操作扩展代理的另一种方法是通过模型上下文协议 (MCP)。
什么是模型上下文协议?
模型上下文协议 (MCP) 允许用户在 Copilot Studio 中直接连接现有的知识服务器和数据源。 连接到 MCP 服务器后,您可以访问支持的:
- 资源:客户端应用程序可以读取的类似文件的数据(如 API 回复或文件内容)
- 工具:语言模型可以调用的函数
- 提示:用于完成特定任务的预定义提示模板
Copilot Studio 目前仅支持工具。
MCP 如何运作?
MCP 服务器发布的每个工具都会自动添加为 Copilot Studio 中的一个操作。 名称、描述、输入和输出继承自服务器。 随着工具在 MCP 服务器上的更新或移除,Copilot Studio 会动态反映这些变化,确保用户始终拥有最新版本,并移除过时的工具。 一个 MCP 服务器可以集成和管理多个工具,每个工具都可以作为 Copilot Studio 中的一个操作访问。
必须启用生成式业务流程才能使用 MCP。
向代理添加现有 MCP 操作
您可以直接从 Copilot Studio 连接到现有的 MCP 服务器。 要将现有 MCP 操作添加到代理,请按照以下步骤操作:
-
在左侧导航中选择代理。
-
从列表中选择代理。
-
转到代理的操作页面。
-
选择添加操作。
-
选择连接器。 显示包括 MCP 连接器在内的连接器列表。
-
从列表中选择所需的 MCP 连接器。
-
授权连接,输入所需的任何信息。
-
完成后,选择下一步继续。
设置自己的 MCP 连接
设置您自己的 MCP 连接需要两个步骤:
- 设置 MCP 服务器
- 创建自定义 MCP 连接器
设置 MCP 服务器
您可以使用 MCP SDK 以支持的语言之一设置 MCP 服务器。
支持的传输
在 MCP 中,传输是客户端与服务器通信的基础。 传输处理发送和接收消息的机制。 目前,Copilot Studio 仅支持服务器发送事件 (SSE) 传输。 该功能目前在预览区域的环境中提供,并将很快在所有环境中提供。
创建自定义 MCP 连接器
设置好 MCP 服务器后,您必须为 MCP 服务器配置自定义连接器(通过 Power Apps 或 Power Automate)。 要执行此步骤,您需要为 MCP 服务器创建一个模式文件。 模式文件是一个 OpenAPI 规范 YAML 文件,描述了 MCP 服务器的应用程序接口。
-
在左侧导航中选择代理。
-
从代理列表中选择您的代理。
-
转到代理的操作页面。
-
选择添加操作。
-
选择新建操作。
-
选择新建自定义连接器。 您将进入 Power Apps 页面创建新的自定义连接器。
-
选择新建自定义连接器。
-
选择导入 OpenAPI 文件。
-
导航至模式文件,选择导入以导入文件。
-
选择继续 ,完成 Power Apps 中的设置。 有关设置过程的更多信息,请参阅 Power Apps 文档的导入 OpenAPI 定义。
确保您的自定义连接器包含 Agentic
和 McpSse
标签,以便创建后出现在 Copilot Studio 中。
示例 MCP 服务器架构
下面是使用虚构数据的 MCP 服务器的架构文件示例。 该模式文件采用 YAML 格式。 您需要填写自己的 MCP 服务器的详细信息。
yaml
swagger: '2.0'
info:
title: McpServer
description: MCP server specification for a connector in Copilot Studio with SSE support.
version: 1.0.0
host: contoso.com
basePath: /mcp/sse
schemes:
- https
paths:
/:
get:
summary: SSE Event Stream
description: Establishes an SSE connection to receive event updates.
operationId: EventStream
parameters: []
produces:
- text/event-stream
responses:
'200':
description: OK
schema:
type: object
properties:
sessionId:
type: string
description: The session ID for the SSE connection.
jsonrpc:
type: string
id:
type: string
result:
type: object
tags:
- Agentic
- McpSse
/message:
post:
summary: MCP Server Actions (Standard request-response)
description: MCP Server Actions (Standard request-response).
operationId: InvokeMCP
parameters:
- name: sessionId
in: query
required: true
type: string
description: The session ID obtained from the SSE session.
- in: body
name: queryRequest
required: true
schema:
$ref: '#/definitions/QueryRequest'
responses:
'200':
description: Message sent successfully
schema:
$ref: '#/definitions/QueryResponse'
'201':
description: Created and will follow callback
tags:
- Agentic
- McpSse
definitions:
QueryRequest:
type: object
required:
- jsonrpc
- id
- method
- params
properties:
jsonrpc:
type: string
id:
type: string
method:
type: string
params:
type: object
description: JSON object containing parameters for the method call.
QueryResponse:
type: object
properties:
jsonrpc:
type: string
id:
type: string
result:
type: object
error:
type: object
securityDefinitions: {}
security: []