模型上下文协议(MCP) 正在改变 AI 助手与外部世界交互的方式。本文将深入探讨 MCP,展示如何使用它将 GitHub CoPilot 连接到外部工具,并通过 Google Books API 的具体例子,说明其强大的功能和灵活性。通过构建自定义 MCP 服务器,你可以让 CoPilot 具备更强大的能力,超越简单的对话,真正成为你的智能助手。
1. MCP 概述:连接 AI 助手与外部世界的桥梁
模型上下文协议(MCP, Model Context Protocol) 是由 Anthropic 开发的一项开放标准,旨在为 AI 助手(如 GitHub CoPilot)和其他 MCP 客户端提供一种安全、标准化的方式来与外部工具和数据源进行交互。 简单来说,MCP 就像一座桥梁,连接了 AI 的大脑和外部世界的手脚。它允许 AI 助手通过预定义的“工具”来访问和使用各种外部服务,从而扩展其能力边界。传统上,AI 助手的能力受限于其训练数据和内置功能。 MCP 的出现打破了这一限制,让 AI 助手可以根据需要调用外部 API、数据库甚至自定义应用程序,从而完成更复杂的任务。
例如,过去 CoPilot 只能根据你输入的代码和注释来生成代码片段。 但有了 MCP,你可以让 CoPilot 直接搜索 Google Books API,为你提供特定书籍的摘要、评价和相关信息。 这种能力扩展极大地提升了 CoPilot 的实用性,使其成为一个真正的智能助手,可以帮助你完成各种任务,而不仅仅是编写代码。
2. 构建自定义 MCP 服务器:赋予 CoPilot 新技能
要将 CoPilot 连接到外部工具,首先需要构建一个 自定义 MCP 服务器。 该服务器充当 CoPilot 和外部工具之间的中介,负责接收 CoPilot 的请求,调用相应的外部工具,并将结果返回给 CoPilot。 构建 MCP 服务器的过程相对简单,可以使用各种编程语言和框架来实现。 本文提供的例子使用 JavaScript 和 VSCode 来创建一个 MCP 服务器,该服务器连接到本地托管的 Google Books API 代理。
关键步骤包括:
- 安装必要工具: 确保已安装 Node.js 和 VSCode,并安装 GitHub CoPilot 扩展。
- 创建 MCP 服务器实例: 使用 MCP SDK 创建一个新的服务器实例,并为其命名和设置版本。
- 定义工具: 使用
server.tool
方法定义一个或多个工具。 每个工具都应该有一个名称、描述以及输入参数的定义。 在示例中,我们定义了一个名为get-google-book
的工具,用于搜索 Google Books API。 - 实现工具逻辑: 在工具定义中,编写实际的逻辑来调用外部 API 并处理返回的结果。 在示例中,我们使用
makeAPIRequest
函数来向 Google Books API 代理发送请求,并将返回的书籍信息格式化为 CoPilot 可以理解的格式。 - 初始化服务器: 使用
StdioServerTransport
将 MCP 服务器连接到 CoPilot。
通过这些步骤,你就可以创建一个自定义 MCP 服务器,并将其连接到 CoPilot。 接下来,你需要配置 CoPilot,使其能够识别和使用你的自定义工具。
3. Google Books API 代理:连接 CoPilot 与书籍信息
Google Books API 是一个强大的工具,可以让你访问海量的书籍信息,包括书名、作者、摘要、评价等。 但是,直接从 CoPilot 调用 Google Books API 可能存在一些问题,例如身份验证、速率限制等。 为了解决这些问题,我们可以创建一个 本地代理 API 来充当 CoPilot 和 Google Books API 之间的中介。
本地代理 API 的作用:
- 简化 API 调用: 代理 API 可以简化 CoPilot 的 API 调用过程,隐藏底层的复杂性。
- 处理身份验证: 代理 API 可以处理 Google Books API 的身份验证,避免在 CoPilot 中暴露敏感信息。
- 实现速率限制: 代理 API 可以实现速率限制,防止 CoPilot 过度调用 Google Books API。
- 数据转换: 代理 API 可以将 Google Books API 返回的数据转换为 CoPilot 可以理解的格式。
在本文提供的例子中,我们使用 Express.js 创建了一个简单的本地代理 API。 该代理 API 接收来自 CoPilot 的请求,并将请求转发给 Google Books API。 然后,它将 Google Books API 返回的数据格式化为 JSON 格式,并将其返回给 CoPilot。
通过使用本地代理 API,我们可以更方便、更安全地将 CoPilot 连接到 Google Books API,并让 CoPilot 具备搜索和检索书籍信息的能力。
4. GitHub Copilot 配置:激活你的自定义工具
配置 GitHub CoPilot 以识别和使用你的自定义 MCP 工具是关键一步。 这涉及到在 VSCode 中启用代理模式,并告诉 CoPilot 如何找到你的 MCP 服务器。
配置步骤:
- 启用代理模式: 在 Copilot 的聊天窗口中,点击工具图标,然后搜索 “Add More Tools”,选择 “Add MCP Server -> Command (stdio)”。
- 提供命令: 当提示输入命令时,输入
node filepath
,其中filepath
是指向你的 MCP 服务器 JavaScript 文件的路径。例如,如果你的 MCP 服务器文件名为google_book.js
,并且位于当前目录下,则输入node google_book.js
。 - CoPilot 会自动生成一个服务器 ID,并将其添加到 VSCode 的
settings.json
文件中。
settings.json
文件配置示例:
"mcp": {
"servers": {
"my-mcp-server-c9e7ce1a": {
"type": "stdio",
"command": "node",
"args": [
"file path to google_book.js"
]
}
}
}
确保 settings.json
文件中的路径正确指向你的 MCP 服务器文件。 配置完成后,CoPilot 就可以识别你的自定义工具,并在你提出相关请求时提示你使用它。
5. 运行与测试:见证 CoPilot 的新能力
一切准备就绪后,就可以运行和测试你的自定义 MCP 工具了。 在 CoPilot 的聊天窗口中,输入一个类似于 “Get me Google book Homo Deus and show me the summary and review.” 的提示。
CoPilot 应该会检测到你注册的 MCP 工具,并询问你是否确认使用它。 点击 “Continue” 后,你的自定义工具将开始工作,并从 Google Books API 获取相关信息。CoPilot 将在聊天窗口中显示书籍的摘要、评价和其他相关信息。
预期结果:
- CoPilot 会根据你的提示调用你的 MCP 服务器。
- MCP 服务器会向 Google Books API 代理发送请求。
- Google Books API 代理会从 Google Books API 获取书籍信息。
- MCP 服务器会将书籍信息格式化为 CoPilot 可以理解的格式。
- CoPilot 会在聊天窗口中显示书籍信息。
通过运行和测试你的自定义 MCP 工具,你可以验证其功能是否正常,并了解如何使用它来扩展 CoPilot 的能力。
6. 实际应用场景:MCP 的无限潜力
通过将 GitHub CoPilot 与 模型上下文协议(MCP) 相结合,我们可以解锁许多令人兴奋的实际应用场景。 例如,你可以:
- 集成内部知识库: 将 CoPilot 连接到公司的内部知识库,让 CoPilot 可以回答关于公司产品、服务和流程的问题。
- 自动化工作流程: 将 CoPilot 连接到 CRM 系统、项目管理工具等,让 CoPilot 可以自动执行各种任务,例如创建任务、更新状态、发送邮件等。
- 构建自定义 AI 助手: 基于 MCP 构建一个完全自定义的 AI 助手,满足你的特定需求。
案例分析:
假设你是一家电商公司的软件工程师,你需要开发一个功能,允许用户通过 CoPilot 查询商品信息。 你可以使用 MCP 将 CoPilot 连接到你的商品数据库 API。 当用户在 CoPilot 中输入 “Get me the price and availability of the iPhone 14 Pro” 时,CoPilot 会调用你的 MCP 工具,该工具会查询商品数据库 API,并将结果返回给 CoPilot。 CoPilot 然后会将商品信息显示给用户。
数据支持:
根据 Gartner 的报告,到 2025 年,70% 的企业将使用 AI 助手来提高员工的工作效率。 而 MCP 等开放标准将成为 AI 助手普及的关键推动力。
更多可能性:
- 连接到天气 API,让 CoPilot 可以告诉你当前的天气状况。
- 连接到翻译 API,让 CoPilot 可以翻译文本。
- 连接到新闻 API,让 CoPilot 可以为你提供最新的新闻报道。
MCP 的潜力是无限的。 只要你有想象力,就可以使用 MCP 将 CoPilot 连接到任何你需要的外部工具,并让 CoPilot 成为一个真正智能的助手。
7. 总结:MCP 的未来与展望
模型上下文协议(MCP) 代表了 AI 助手发展的一个重要里程碑。 它打破了 AI 助手的能力限制,使其能够与外部世界进行交互,从而完成更复杂的任务。 通过构建自定义 MCP 服务器,你可以将 GitHub CoPilot 连接到任何你需要的外部工具,并让 CoPilot 成为一个真正智能的助手。
随着 模型上下文协议(MCP) 的不断发展,我们可以期待 AI 助手在未来发挥更大的作用。 它们将不再仅仅是代码生成的工具,而是成为我们工作和生活中的得力助手。 模型上下文协议(MCP) 的开放性和灵活性,鼓励了开发者社区的创新,未来将涌现出更多基于 模型上下文协议(MCP) 的工具和应用,进一步丰富 AI 助手的生态系统。
本文通过 Google Books API 的例子,展示了 模型上下文协议(MCP) 的强大功能。 相信通过阅读本文,你已经了解了 模型上下文协议(MCP) 的基本原理和使用方法。 希望你能充分利用 模型上下文协议(MCP),为你的 AI 助手赋予更强大的能力,并探索更多令人兴奋的应用场景。