欢迎来到 Microsoft Copilot Studio ❤️ MCP 实验室。在这个实验中,您将学习如何部署一个 MCP 服务器,并将其添加到 Microsoft Copilot Studio 中。
模型上下文协议(MCP) 是由 Anthropic 定义的一个开放协议,它标准化了应用程序如何向大语言模型(LLMs)提供上下文。MCP 提供了一种标准化的方法来连接 AI 模型与不同的数据源和工具。MCP 允许制作者无缝地将现有的知识服务器和 API 直接集成到 Copilot Studio 中。
目前,Copilot Studio 只支持工具。要了解更多信息,请参阅 aka.ms/mcsmcp。有一些已知的问题和计划改进。这些内容列在 这里。
何时使用 MCP?何时使用连接器?MCP 是否会取代连接器?
MCP 服务器是通过连接器基础设施提供给 Copilot Studio 的,因此这些问题并不适用。MCP 服务器使用连接器基础设施意味着它们可以利用企业级的安全性和治理控制,如 虚拟网络 集成、数据丢失防护 控制、多种身份验证方法——所有这些功能都包含在此版本中——同时支持实时数据访问以供 AI 助手使用。
所以,MCP 和连接器实际上是更好的组合。
选择 Use this template
选择 Create a new repository

选择正确的 Owner(如果您只有一个所有者可选,则可能已经选择了)
给它一个 Repository name
可选地,给它一个 Description
选择 Private
选择 Create repository
这需要一点时间。完成后,您将被引导至新创建的仓库。
现在您有了选择!您可以选择本地运行服务器,或者将其部署到 Azure。
对于这两种情况,您都需要执行以下步骤:
使用以下命令克隆此仓库(将 {account} 替换为您自己的 GitHub 账户名称):
git clone https://github.com/{account}/mcsmcp.git
打开 Visual Studio Code 并打开克隆的文件夹
打开终端并导航到克隆的文件夹
运行 npm install
运行 npm run build && npm run start

在 Visual Studio Code 终端顶部选择 PORTS

选择绿色的 Forward a Port 按钮

输入 3000 作为端口号(这应该与您在第 5 步运行命令时看到的端口号相同)。您可能会被提示登录 GitHub,如果是这样,请进行登录,因为这是使用端口转发功能所必需的。
右键点击刚刚添加的那一行,选择 Port visibility > Public 以使服务器公开可用
Ctrl + 点击 Forwarded address,它应该是类似这样的地址:https://something-3000.something.devtunnels.ms
在弹出窗口中选择 Copy 来复制 URL

打开您选择的浏览器,在地址栏粘贴 URL,并在其后输入 /mcp,然后按回车
如果一切顺利,您将看到以下错误消息:
{"jsonrpc":"2.0","error":{"code":-32000,"message":"Method not allowed."},"id":null}
不要担心——这个错误消息无需担心!
[!重要] 如先决条件部分所述,您的机器上需要安装 Azure 开发者 CLI。
确保您已经登录到 Azure 开发者 CLI。
azd auth login
[!警告] 运行
azd up后,您将在 Azure 上有一个公开可用的 MCP 服务器。理想情况下,您不希望这样。请确保在完成实验后运行azd down以从您的 Azure 订阅中删除所有资源。了解如何运行azd down,请参阅 [本节](#移除 Azure 资源)。
在终端中运行以下命令:
azd up
对于唯一的环境名称,输入 mcsmcplab 或类似的名称。选择要使用的 Azure 订阅并选择位置值。之后,服务器将花费几分钟时间进行部署。完成后,您应该能够前往列出的 URL 并在该 URL 结尾处添加 /mcp。

您应该再次看到以下错误:
{"jsonrpc":"2.0","error":{"code":-32000,"message":"Method not allowed."},"id":
null}
要使用 Jokes MCP 服务器,您需要使用服务器的 URL(可以是您的 devtunnel URL 或已部署的 Azure 容器应用),并在末尾加上 /mcp,然后在 Visual Studio Code 中将其添加为 MCP 服务器。
按下 ctrl + shift + P(Windows/Linux)或 cmd + shift + P(Mac),然后输入 MCP
选择 MCP: 添加服务器...
选择 HTTP (HTTP 或 Server-Sent Events)
将服务器的 URL 粘贴到输入框中(确保末尾包含 /mcp)
按 Enter
输入服务器名称,例如 JokesMCP
选择 用户设置 以将 MCP 服务器设置保存到您的用户设置中
这将在您的 settings.json 文件中添加一个 MCP 服务器。它看起来应该像这样:

打开 GitHub Copilot
从 Ask 切换到 Agent
当您选择工具图标时,确保选择了 JokesMCP 服务器动作:

提问以下问题:
获取来自 Dev 类别的 Chuck Norris 笑话
这应该给您如下响应:

现在您已经在 Visual Studio Code 中添加了 JokesMCP 服务器!
导入连接器
前往 https://make.preview.powerapps.com/customconnectors(确保您处于正确的环境中),然后点击 + 新建自定义连接器。
选择 从 GitHub 导入
选择 Custom 作为 连接器类型
选择 dev 作为 分支
选择 MCP-Streamable-HTTP 作为 连接器
选择 继续

更改 连接器名称 为适当的内容,例如 Jokes MCP
更改 描述 为适当的内容
将您的根 URL(例如 something-3000.something.devtunnels.ms 或 something.azurecontainerapps.io)粘贴到 主机 字段中
选择 创建连接器
[!警告] 创建时您可能会看到警告和错误——这应该很快得到解决——但您可以暂时忽略它。
创建代理并将 MCP 服务器作为工具添加
选择右上角的环境选择器
选择正确的环境(带有 Get new features early 开关开启的环境)
在左侧导航中选择 Create
选择蓝色的 新建代理 按钮

在左侧选择 配置 标签

将名称更改为 Jokester
添加以下 描述
一个专注于幽默的代理,仅在用户请求时提供简洁、引人入胜的笑话,并根据用户的语气和偏好调整其风格。它保持角色,避免重复,并过滤掉不适当的内容,以确保始终适当且有趣的体验。
添加以下 指令
您是一个讲笑话的助手。您的唯一目的是在请求时提供适当的、聪明的和引人入胜的笑话。遵循以下规则:
* 仅当用户要求讲笑话或相关事项时才回应(例如,“告诉我一些有趣的事情”)。
* 根据用户的输入匹配他们的语气和幽默偏好——干净的、黑暗的、干涩的、双关语的、爸爸笑话等。
* 不要脱离角色或提供与幽默无关的信息。
* 保持笑话简洁且格式清晰。
* 避免冒犯性的、歧视性的或不适合工作的内容。
* 当不确定幽默偏好时,默认为聪明且普遍适当的笑话。
* 在同一会话中不要重复笑话。
* 除非明确要求,否则不要解释笑话。
* 要快速、机智且响应迅速。
在右上角选择 继续

启用生成式 AI 编排

在 知识 部分禁用一般知识

在顶部菜单中选择 工具

选择 添加工具

选择 模型上下文协议 标签以筛选所有模型上下文协议服务器(见下图中的编号 1)
选择 Jokes MCP 服务器(见下图中的编号 2)

通过选择 未连接 并 创建新连接 来创建一个新的连接

选择 创建

选择 添加到代理 以将工具添加到代理

在 测试您的代理 面板中选择 刷新图标

在 测试您的代理 面板中发送以下消息:
我能听一个 Chuck Norris 的笑话吗?
这将显示一条消息,说明需要额外权限才能运行此操作。这是因为操作向导中的用户身份验证。
选择 连接

这将打开一个新的窗口,您可以在其中管理此代理的连接。
在 JokesMCP 旁边选择 连接

等待连接创建完毕并选择 提交

连接现在应已连接,因此状态应设置为 已连接

在浏览器中关闭管理连接标签页
现在您应该回到了 Jokester 代理屏幕。
在 测试您的代理 面板中选择 刷新图标

在 测试您的代理 面板中发送以下消息:
我能听一个 Chuck Norris 的笑话吗?
现在这将显示一个 Chuck Norris 的笑话——而不是额外权限。如果不是这种情况,您可能错过了 先决条件,即环境需要有 获取新功能早期 开关开启。

在 测试您的代理 面板中发送以下消息:
我能听一个爸爸笑话吗?
现在这将显示一个爸爸笑话。

这就是 Jokes MCP 服务器在 Microsoft Copilot Studio 中的工作方式。
在完成实验后,运行以下命令以移除 Azure 资源:
azd down
此命令将显示将被删除的资源,并要求您确认。输入 y 确认,资源将被删除。这可能需要几分钟时间,但最终您将看到确认信息:

MCP 在 Microsoft Copilot Studio 中存在一些已知问题和计划改进。这些内容列在 这篇 Microsoft Learn 文章 中。
希望您喜欢这个实验。请花点时间填写我们的 反馈表单,告诉我们我们如何改进!
本项目欢迎贡献和建议。大多数贡献需要您同意一份贡献者许可协议(CLA),声明您有权并且实际上确实授予我们使用您贡献的权利。详情请访问 https://cla.opensource.microsoft.com。
当您提交拉取请求时,CLA 机器人将自动确定您是否需要提供 CLA 并相应地装饰 PR(例如,状态检查、评论)。只需按照机器人提供的说明操作即可。您只需要在所有使用我们 CLA 的存储库中做一次。
本项目已采用 Microsoft 开源行为准则。有关更多详细信息,请参阅 行为准则常见问题解答 或联系 opencode@microsoft.com 以获取任何其他问题或评论。
本项目可能包含其他项目、产品或服务的商标或徽标。授权使用 Microsoft 商标或徽标必须遵循 Microsoft 的商标及品牌指南。在修改版本中使用 Microsoft 商标或徽标不应引起混淆或暗示 Microsoft 的赞助。任何使用第三方商标或徽标的,均受这些第三方政策的约束。