🚀 微软Copilot Studio ❤️ MCP
本实验将指导你如何部署 MCP 服务器,并将其添加到微软 Copilot Studio 中,让你体验相关的功能。
🚀 快速开始
在这个实验中,你将学习如何部署一个 MCP 服务器,并将其添加到微软 Copilot Studio 中。
✨ 主要特性
❓ 什么是 MCP?
模型上下文协议 (MCP) 是一个开放协议,由 Anthropic 定义,它规范了应用程序如何向大语言模型 (LLM) 提供上下文。MCP 提供了一种标准化的方式,将 AI 模型连接到不同的数据源和工具。MCP 允许开发者将现有的知识服务器和 API 直接集成到 Copilot Studio 中。
目前,Copilot Studio 仅支持工具。要了解更多当前功能,请参阅 aka.ms/mcsmcp。存在一些已知问题和计划中的改进,这些内容列在 此处。
🆚 MCP 与连接器的对比
何时使用 MCP?何时使用连接器?MCP 会取代连接器吗?
MCP 服务器通过连接器基础设施提供给 Copilot Studio,因此这些问题并不适用。MCP 服务器使用连接器基础设施意味着它们可以采用企业安全和治理控制,如 虚拟网络 集成、数据丢失防护 控制、多种身份验证方法 —— 所有这些在本次版本中均可用,同时支持为 AI 驱动的代理提供实时数据访问。
因此,MCP 和连接器实际上是 相辅相成 的。
📦 安装指南
⚙️ 先决条件
- Visual Studio Code (链接)
- Node v22(建议通过 适用于 Windows 的 nvm 或 nvm 安装)
- 已安装 Git (链接)
- Azure 开发人员 CLI (链接)
- Azure 订阅(已添加付款方式)
- GitHub 账户
- Copilot Studio 试用版或开发者账户
- 已预配的 Power Platform 环境 —— 开启以下开关:

➕ 基于模板创建新的 GitHub 仓库
- 选择
使用此模板
- 选择
创建新仓库

- 选择正确的
所有者
(如果只有一个所有者可供选择,可能已经自动选中)
- 为仓库命名
- 可选择为其添加
描述
- 选择
私有
- 选择
创建仓库
这需要一些时间。完成后,你将被重定向到新创建的仓库。
⚖️ 选择:本地运行服务器或部署到 Azure
现在你有一个选择!你可以选择在本地运行服务器,或者将其部署到 Azure。
无论选择哪种方式,都需要完成以下几个步骤:
- 运行以下命令克隆此仓库(将
{account}
替换为你自己的 GitHub 账户名):
git clone https://github.com/{account}/mcsmcp.git
- 打开 Visual Studio Code 并打开克隆的文件夹
- 打开终端并导航到克隆的文件夹
🏃♀️ 本地运行 MCP 服务器
- 运行
npm install
- 运行
npm run build && npm run start

- 在 Visual Studio Code 终端顶部选择
端口

- 选择绿色的
转发端口
按钮

- 输入
3000
作为端口号(这应该与你在步骤 5 中运行命令时看到的端口号相同)。如果提示你登录 GitHub,请进行登录,因为使用端口转发功能需要登录。
- 右键单击刚添加的行,选择
端口可见性
> 公共
,使服务器公开可用
- 使用 Ctrl + 点击
转发地址
,地址应该类似于:https://something-3000.something.devtunnels.ms
- 在弹出窗口中选择
复制
以复制 URL

- 打开你选择的浏览器,将 URL 粘贴到地址栏中,在末尾添加
/mcp
并按回车键
如果一切顺利,你将看到以下错误消息:
{"jsonrpc":"2.0","error":{"code":-32000,"message":"Method not allowed."},"id":null}
不用担心,这个错误消息无需担心!
🌎 部署到 Azure
⚠️ 重要提示
如 先决条件 中所述,此部分需要在你的机器上安装 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}
💻 使用示例
👨💻 在 Visual Studio Code / GitHub Copilot 中使用笑话 MCP 服务器
要使用笑话 MCP 服务器,你需要使用服务器的 URL(可以是你的开发隧道 URL 或部署的 Azure 容器应用),并在末尾添加 /mcp
部分,然后将其作为 MCP 服务器添加到 Visual Studio Code 中。
- 按下
ctrl
+ shift
+ P
(Windows/Linux)或 cmd
+ shift
+ P
(Mac)并输入 MCP
- 选择
MCP: 添加服务器...
- 选择
HTTP (HTTP 或服务器发送事件)
- 将服务器的 URL 粘贴到输入框中(确保末尾包含
/mcp
)
- 按
Enter
- 为服务器输入一个名称,例如
JokesMCP
- 选择
用户设置
,将 MCP 服务器设置保存到你的用户设置中
这将在你的 settings.json
文件中添加一个 MCP 服务器。它应该如下所示:

- 打开
GitHub Copilot
- 从
询问
切换到 代理
- 当你选择工具图标时,确保选中
JokesMCP
服务器操作:

- 提出以下问题:
从开发类别中获取一个 Chuck Norris 笑话
这应该会给你一个类似这样的响应:

现在你已将 JokesMCP
服务器添加到 Visual Studio Code 中!
👨💻 在微软 Copilot Studio 中使用笑话 MCP 服务器
导入连接器
- 访问 https://make.preview.powerapps.com/customconnectors(确保你处于正确的环境中),并点击 + 新建自定义连接器。
- 选择
从 GitHub 导入
- 选择
自定义
作为 连接器类型
- 选择
dev
作为 分支
- 选择
MCP-Streamable-HTTP
作为 连接器
- 选择
继续

- 将 连接器名称 更改为合适的名称,例如
Jokes MCP
- 将 描述 更改为合适的内容
- 将你的根 URL(例如
something-3000.something.devtunnels.ms
或 something.azurecontainerapps.io
)粘贴到 主机 字段中
- 选择 创建连接器
⚠️ 重要提示
创建时你可能会看到一个警告和一个错误 —— 问题应该很快会得到解决,现在可以忽略它。
- 关闭连接器
创建代理并将 MCP 服务器添加为工具
- 访问 https://copilotstudio.preview.microsoft.com/
- 选择右上角的环境选择器
- 选择正确的环境(开启
提前获取新功能
开关的环境)
- 在左侧导航栏中选择
创建
- 选择蓝色的
新建代理
按钮

- 选择左侧的
配置
选项卡

- 将名称更改为
Jokester
- 添加以下
描述
一个专注于幽默的代理,仅在用户请求时提供简洁、有趣的笑话,根据用户的语气和偏好调整风格。它保持角色设定,避免重复,并过滤掉冒犯性内容,以确保始终提供合适且诙谐的体验。
- 添加以下
说明
你是一个讲笑话的助手。你的唯一目的是应要求提供合适、巧妙且有趣的笑话。遵循以下规则:
* 仅在用户要求笑话或相关内容(例如“给我讲个有趣的事情”)时进行回复。
* 根据用户的输入匹配其语气和幽默偏好 —— 干净、黑色幽默、冷面幽默、双关语、爸爸笑话等。
* 永远不要偏离角色或提供与幽默无关的信息。
* 保持笑话简洁且格式清晰。
* 避免冒犯性、歧视性或不适合工作场合的内容。
* 不确定幽默偏好时,默认提供一个巧妙且普遍合适的笑话。
* 同一会话内不重复讲笑话。
* 除非明确要求,否则不解释笑话。
* 反应灵敏、机智且迅速。
- 选择右上角的
继续

- 启用生成式 AI
编排

- 在
知识
部分禁用通用知识

- 在顶部菜单中选择
工具

- 选择
添加工具

- 选择
模型上下文协议
选项卡以过滤所有模型上下文协议服务器(见下图中的数字 1)
- 选择
Jokes MCP
服务器(见下图中的数字 2)

- 通过选择
未连接
并点击 创建新连接 创建一个新连接

- 选择
创建

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

- 在
测试你的代理
窗格中选择 刷新
图标

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

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

- 等待连接创建完成,然后选择
提交

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

- 关闭浏览器中的管理连接选项卡
现在你应该回到 Jokester 代理屏幕。
- 在
测试你的代理
窗格中选择 刷新
图标

- 在
测试你的代理
窗格中发送以下消息:
我能得到一个 Chuck Norris 笑话吗?
这现在应该显示一个 Chuck Norris 笑话,而不是额外的权限提示。如果不是这样,你可能错过了 先决条件 中环境需要开启 提前获取新功能
开关的要求。

- 在
测试你的代理
窗格中发送以下消息:
我能得到一个爸爸笑话吗?
这现在应该显示一个爸爸笑话。

这样,笑话 MCP 服务器就在微软 Copilot Studio 中正常工作了。
❌ 移除 Azure 资源
完成实验后,要移除 Azure 资源,请在终端中运行以下命令:
azd down
此命令将显示要删除的资源,然后要求你确认。输入 y
确认,资源将被删除。这可能需要几分钟时间,最后你将看到确认信息:

🔧 技术细节
💡 已知问题和计划中的改进
微软 Copilot Studio 中的 MCP 存在一些已知问题和计划中的改进。这些内容列在 这篇 Microsoft Learn 文章 中。
📚 详细文档
🗣️ 反馈
希望你喜欢这个实验。请花时间填写我们的 反馈表,告诉我们如何改进!
🚀 贡献
本项目欢迎贡献和建议。大多数贡献需要你同意一份贡献者许可协议 (CLA),声明你有权并确实授予我们使用你贡献内容的权利。有关详细信息,请访问 https://cla.opensource.microsoft.com。
当你提交拉取请求时,CLA 机器人将自动确定你是否需要提供 CLA,并相应地标记 PR(例如,状态检查、评论)。只需按照机器人提供的说明操作即可。在使用我们的 CLA 的所有仓库中,你只需执行一次此操作。
本项目采用了 微软开源行为准则。有关更多信息,请参阅 行为准则常见问题解答,或通过 opencode@microsoft.com 联系我们,提出任何额外的问题或意见。
™️ 商标
本项目可能包含项目、产品或服务的商标或徽标。经授权使用微软商标或徽标的行为需遵循 微软商标和品牌指南。在本项目的修改版本中使用微软商标或徽标不得造成混淆或暗示微软的赞助。任何使用第三方商标或徽标的行为需遵循这些第三方的政策。