mcpField
M
Microsoft Copilot Studio ❤️ MCP

Microsoft Copilot Studio ❤️ MCP

本地服务
github.com/2252开发工具073 周前更新

关于 Microsoft Copilot Studio ❤️ MCP

这是一个面向开发者的实验教程,演示如何部署 MCP 服务并将其接入 Microsoft Copilot Studio。教程涵盖本地运行、Azure 部署,以及在 Copilot Studio 中将服务添加为工具。

主要功能

  1. 01本地运行 MCP 服务
  2. 02部署到 Azure
  3. 03接入 Visual Studio Code
  4. 04导入 Copilot Studio 连接器

适用场景

  1. 01学习部署 MCP 服务
  2. 02在 Copilot Studio 中添加 MCP 工具
  3. 03使用 Azure 部署实验服务

MCP 相关

教程指导将 MCP 服务以 HTTP 方式连接到 Visual Studio Code,也可通过连接器将其添加到 Microsoft Copilot Studio;示例服务提供 Jokes 工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Microsoft Copilot Studio ❤️ MCP

欢迎参加 Microsoft Copilot Studio ❤️ MCP 实验。在本实验中,你将学习如何部署 MCP 服务,以及如何将其添加到 Microsoft Copilot Studio。

❓ 什么是 MCP?

模型上下文协议(MCP) 是一种开放协议,用于标准化应用程序向大模型提供上下文的方式,由 Anthropic 定义。MCP 提供了一种标准化方式,可将 AI 模型连接到不同的数据源和工具。MCP 使创作者能够将现有的知识服务和 API 无缝集成到 Copilot Studio 中。

目前,Copilot Studio 仅支持工具。若要了解当前功能,请参阅 aka.ms/mcsmcp。目前存在一些已知问题和计划中的改进,详见此处。

🆚 MCP 与连接器

什么时候使用 MCP?什么时候使用连接器?MCP 会取代连接器吗?

MCP 服务通过连接器基础架构提供给 Copilot Studio,因此这些问题其实并不适用。MCP 服务使用连接器基础架构,这意味着它们可以采用企业安全和治理控制,例如虚拟网络集成、数据丢失防护控制、多种身份验证方法——这些功能在此版本中均可使用,同时还能为 AI 驱动的 Agent 提供实时数据访问。

因此,MCP 与连接器确实是相辅相成的。

⚙️ 先决条件

  • Visual Studio Code(链接)
  • Node v22(建议通过 nvm for Windows 或 nvm 安装)
  • 已安装 Git(链接)
  • Azure Developer CLI(链接)
  • Azure 订阅(已添加付款方式)
  • GitHub 帐户
  • Copilot Studio 试用版或开发者帐户
  • 已预配 Power Platform 环境,并启用以下开关:

提前获取新功能开关

➕ 基于模板创建新的 GitHub 存储库

  1. 选择 Use this template

  2. 选择 Create a new repository

    README 配图

  3. 选择正确的 Owner(如果你只有一个可选的所有者,此项可能已自动选中)

  4. 为其指定 Repository name

  5. 你也可以选择填写 Description

  6. 选择 Private

  7. 选择 Create repository

    这需要一些时间。完成后,你将转到新创建的存储库。

⚖️ 选择:在本地运行服务或部署到 Azure

现在你可以选择!你可以在本地运行服务,也可以将其部署到 Azure。

以下步骤都需要执行:

  1. 运行以下命令克隆此存储库(将 {account} 替换为你自己的 GitHub 帐户名):

    git clone https://github.com/{account}/mcsmcp.git

  2. 打开 Visual Studio Code,然后打开克隆的文件夹

  3. 打开终端,并导航到克隆的文件夹

🏃‍♀️ 在本地运行 MCP 服务
  1. 运行 npm install

  2. 运行 npm run build && npm run start

    构建并启动服务后的终端视图

  3. 在 Visual Studio Code 终端顶部选择 PORTS

    VS Code 中终端已打开且 PORTS 选项卡突出显示的图片

  4. 选择绿色的 Forward a Port 按钮

    VS Code 中 PORTS 选项卡已打开且绿色的 Forward a Port 按钮突出显示的图片

  5. 输入端口号 3000(该端口号应与步骤 5 中运行命令时看到的端口号相同)。系统可能会提示你登录 GitHub,如果出现提示,请完成登录,因为使用端口转发功能需要登录。

  6. 右键单击刚添加的行,然后选择 Port visibility > Public,以公开服务

  7. 按住 Ctrl 键并单击 Forwarded address,其地址应类似于:https://something-3000.something.devtunnels.ms

  8. 在随后弹出的窗口中选择 Copy,复制 URL

    PORTS 配置视图,端口、转发地址和可见性已突出显示

  9. 打开你选择的浏览器,将 URL 粘贴到地址栏,在末尾添加 /mcp,然后按回车键

如果一切顺利,你会看到以下错误消息:

{"jsonrpc":"2.0","error":{"code":-32000,"message":"Method not allowed."},"id":null}

别担心,这条错误消息并不是什么需要担心的事!

🌎 部署到 Azure

重要

如先决条件中所述,你需要在计算机上安装 Azure Developer CLI 才能完成此部分。

如果你还没有登录 Azure Developer CLI,请先登录。

azd auth login

警告


运行 azd up 后,你将在 Azure 上启动一个可公开访问的 MCP 服务。理想情况下,你不应该这样做。完成实验后,请务必运行 azd down,删除 Azure 订阅中的所有资源。请参阅本节,了解如何运行 azd down。

在终端中运行以下命令:

azd up

为唯一环境名称输入 mcsmcplab 或类似名称。选择要使用的 Azure 订阅,并选择一个位置。之后,等待几分钟,服务就会部署完成。完成后,你可以访问末尾列出的 URL,并在 URL 末尾添加 /mcp。

Azd 部署服务的输出

你应该会再次看到以下错误:

{"jsonrpc":"2.0","error":{"code":-32000,"message":"Method not allowed."},"id":null}

👨‍💻 在 Visual Studio Code / GitHub Copilot 中使用 Jokes MCP Server

要使用 Jokes MCP Server,您需要使用服务器的 URL(可以是 devtunnel URL,也可以是已部署的 Azure Container App),在末尾加上 /mcp,然后将其添加为 Visual Studio Code 中的 MCP 服务。

  1. 按 ctrl + shift + P(Windows/Linux)或 cmd + shift + P(Mac),然后输入 MCP

  2. 选择 MCP: Add Server...

  3. 选择 HTTP (HTTP or Server-Sent Events)

  4. 在输入框中粘贴服务器的 URL(确保末尾包含 /mcp)

  5. 按 Enter

  6. 为服务输入名称,例如 JokesMCP

  7. 选择 User Settings,将 MCP 服务设置保存到用户设置中

    这会在您的 settings.json 文件中添加一个 MCP 服务。文件内容应如下所示: settings.json 文件

  8. 打开 GitHub Copilot

  9. 从 Ask 切换到 Agent

  10. 选择工具图标时,确保已选中 JokesMCP 服务的操作:

    GitHub Copilot 中的工具菜单

  11. 提出以下问题:

    从 Dev 类别获取一个 Chuck Norris 笑话
    

您应该会收到类似这样的回复:

询问提供 Dev 类别笑话的问题及 GitHub Copilot 的回答的屏幕截图

现在,您已将 JokesMCP 服务添加到 Visual Studio Code 中!

👨‍💻 在 Microsoft Copilot Studio 中使用 Jokes MCP Server

导入连接器

  1. 前往 https://make.preview.powerapps.com/customconnectors(确保您处于正确的环境中),然后单击 + New custom connector。

  2. 选择 Import from GitHub

  3. 在 Connector Type 中选择 Custom

  4. 在 Branch 中选择 dev

  5. 在 Connector 中选择 MCP-Streamable-HTTP

  6. 选择 Continue

    从 GitHub 导入部分的视图

  7. 将 Connector Name 更改为合适的名称,例如 Jokes MCP

  8. 将 Description 更改为合适的描述

  9. 在 Host 字段中粘贴根 URL(例如 something-3000.something.devtunnels.ms 或 something.azurecontainerapps.io)

  10. 选择 Create connector

警告


创建时可能会看到警告和错误——此问题应该很快会得到解决,但目前可以忽略。

  1. 关闭连接器

创建 Agent 并将 MCP 服务添加为工具

  1. 前往 https://copilotstudio.preview.microsoft.com/

  2. 选择右上角的环境选择器

  3. 选择正确的环境(已开启 Get new features early 开关的环境)

  4. 在左侧导航中选择 Create

  5. 选择蓝色的 New agent 按钮

    新建 Agent

  6. 选择左侧的 Configure 选项卡

    配置

  7. 将名称更改为 Jokester

  8. 添加以下 Description

    一个专注于幽默的 Agent,仅在用户请求时提供简洁、有趣的笑话,并根据用户的语气和偏好调整风格。它始终保持角色设定,避免重复,并过滤冒犯性内容,以确保体验始终得体且风趣。
    
  9. 添加以下 Instructions

    你是一个讲笑话的助手。你的唯一任务是在收到请求时讲得体、巧妙且有趣的笑话。请遵守以下规则:
    
    • 仅当用户请求讲笑话或提出相关要求时才作出回应(例如,“给我讲个好笑的”)。
    • 根据用户输入匹配其语气和幽默偏好——干净、黑色幽默、冷幽默、双关语、爸爸笑话等。
    • 绝不脱离角色,也不提供与幽默无关的信息。
    • 笑话要简短,格式清晰。
    • 避免冒犯性、歧视性或不适合工作的内容。
    • 不确定用户偏好哪种幽默时,默认讲一个机智、普遍适宜的笑话。
    • 同一会话中不要重复笑话。
    • 除非用户明确要求,否则不要解释笑话。
    • 反应灵敏、风趣、迅速。
  10. 点击右上角的 Continue

    点击 Continue 以创建 Agent

  11. 启用 Generative AI Orchestration

    开启 orchestration

  12. 在 Knowledge 部分禁用通用知识

    关闭通用知识

  13. 在顶部菜单中选择 Tools

    工具

  14. 选择 Add a tool

    添加工具

  15. 选择 Model Context Protocol 选项卡,筛选出所有 Model Context Protocol 服务(见下方截图中的数字 1)

  16. 选择 Jokes MCP 服务(见下方截图中的数字 2)

    MCP

  17. 选择 Not connected,然后选择 Create new Connection,创建新连接

    操作和连接

  18. 选择 Create

    创建连接

  19. 选择 Add to agent,将工具添加到 Agent

    将工具添加到 Agent

  20. 在 Test your agent 窗格中选择 refresh icon

    刷新测试窗格

  21. 在 Test your agent 窗格中发送以下消息:

    Can I get a Chuck Norris joke?
    

    此时会显示一条消息,提示需要额外权限才能运行此操作。这是因为操作向导中设置了用户身份验证。

  22. 选择 Connect

    额外权限

    这会打开一个新窗口,你可以在其中管理此 Agent 的连接。

  23. 选择 JokesMCP 旁边的 Connect

    连接到 JokesMCP

  24. 等待连接创建完成,然后选择 Submit

    选择连接

  25. 现在连接应该已连通,状态应显示为 Connected

    已连接状态

  26. 在浏览器中关闭“管理连接”选项卡

    现在你应该已返回 Jokester Agent 页面。

  27. 在 Test your agent 窗格中选择 refresh icon

    刷新测试窗格

  28. 在 Test your agent 窗格中发送以下消息:

    Can I get a Chuck Norris joke?
    

    现在会显示一个 Chuck Norris 笑话,而不是提示需要额外权限。如果没有显示笑话,你可能遗漏了先决条件:环境需要开启 get new features early 开关。

    Chuck Norris 笑话

  29. 在 Test your agent 窗格中发送以下消息:

    Can I get a Dad joke?
    

    现在会显示一个爸爸笑话。

    爸爸笑话

至此,Jokes MCP 服务已在 Microsoft Copilot Studio 中运行。

❌ 删除 Azure 资源

完成实验后,要删除 Azure 资源,请在终端中运行以下命令:

azd down

此命令会显示将要删除的资源,然后要求你确认。输入 y 确认后,资源便会被删除。这可能需要几分钟,但最后你会看到确认信息:

资源已删除

💡 已知问题和计划中的改进

Microsoft Copilot Studio 中的 MCP 存在一些已知问题和计划中的改进,详见这篇 Microsoft Learn 文章。

🗣️ 反馈

希望你喜欢这个实验。请抽空填写我们的反馈表单,告诉我们如何改进!

🚀 贡献

欢迎为本项目贡献内容并提出建议。大多数贡献都要求你同意贡献者许可协议(CLA),声明你有权且确实授予我们使用你所提交贡献的权利。详情请访问 https://cla.opensource.microsoft.com。

提交拉取请求时,CLA 机器人会自动判断你是否需要提供 CLA,并相应地为 PR 添加标记(例如,状态检查、评论)。只需按照机器人提供的说明操作即可。对于所有使用我们 CLA 的仓库,你只需完成一次此流程。

本项目采用了 Microsoft 开源行为准则。 如需了解更多信息,请参阅行为准则常见问题,或发送邮件至 [email protected] 提出其他问题或意见。

™️ 商标

本项目可能包含项目、产品或服务的商标或徽标。经授权使用 Microsoft 商标或徽标时,须遵守并遵循 Microsoft 商标和品牌指南。 在本项目的修改版本中使用 Microsoft 商标或徽标,不得造成混淆,也不得暗示 Microsoft 提供了赞助。 任何第三方商标或徽标的使用均须遵守相应第三方的政策。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。