我们都曾在日常编码任务中体验过人工智能的应用。我们中的许多人可能都使用过 Replit,这是一款内置人工智能功能的在线代码编辑器,可帮助生成代码并提供指导。同样,像 GitHub Copilot for VS Code 这样的工具也能通过简单的扩展增强我们的编码工作流程。如果你尝试过 Black Box AI 或 Cursor IDE,你就会知道内置的人工智能辅助如何简化你的工作。
想象一下,如果这些人工智能工具可以接入任何数据源–无论是本地文件还是远程服务–而无需为每个连接编写自定义代码。这就是模型上下文协议(MCP)的承诺。
什么是MCP?
MCP 是一种开放标准,可在数据和人工智能工具之间建立安全的双向连接。把它想象成人工智能应用的 USB-C 端口–一个通用的连接器,让不同的工具和数据源可以相互“对话”。
- 对于开发人员:无需为每个新数据源编写自定义连接器,您可以根据一个标准协议进行构建。
- 对于人工智能工具:有了 MCP,无论信息存储在哪里,您的人工智能模型都能准确访问所需的信息。
MCP为何重要?
随着人工智能助手成为我们日常工作流程的一部分(想想内置人工智能的 Replit 或用于 VS Code 的 GitHub Copilot),我们面临的挑战是如何确保它们拥有所需的所有上下文。如今,每个新的数据源往往都需要定制代码,既杂乱又耗时。
MCP 通过以下方式简化了工作:
- 提供预建集成:不断增加的即用连接器库。
- 提供灵活性:在不同的人工智能提供商之间轻松切换。
- 增强安全性:最佳实践确保您的数据在自己的基础设施中保持安全。
在 Block,开源不仅仅是一种开发模式–它是我们工作的基础,也是我们致力于创造能推动有意义变革的技术的承诺。像模型上下文协议这样的开放技术,以一种可访问、透明和协作的方式将人工智能与现实世界的应用连接起来。— Dhanji R. Prasanna, CTO at Block
现实世界的影响和早期采用
早期采用者(如 Block 和 Apollo 等公司)已经将 MCP 集成到他们的系统中。此外, Zed、Replit、 Codeium 和 Sourcegraph 等开发工具公司也在探索 MCP。这意味着人工智能代理可以检索到更多相关信息,从而更好地理解编码任务,从而以更少的迭代产生更高质量的代码。
MCP如何工作:简单分解
Fig 1. MCP 客户端如何访问外部资源。
MCP 采用客户服务器架构。这意味着
- MCP 主机:它们是希望通过 MCP 访问数据的程序(如 Claude Desktop 或流行的集成开发环境)。
- MCP 客户端:与 MCP 服务器保持 1:1 连接的组件。
- MCP 服务器:暴露特定数据源或工具的轻量级适配器。
- 本地数据源:计算机的文件、数据库和服务。
- 远程服务:可通过互联网访问的外部系统(如 GitHub 或 Slack)。
Fig 2. 模型上下文协议的连接生命周期
1. 初始化
- 客户端发送初始化请求,并提供协议版本和功能
- 服务器响应其协议版本和功能
- 客户端发送初始化通知作为确认
- 开始正常的信息交换
2. 信息交换
初始化后,支持以下模式:
- 请求-响应(Request-Response):客户端或服务器发送请求,对方做出响应
- 通知:任一方发送单向信息
3. 终止
任何一方都可以终止连接:
- 通过 close() 干净关闭
- 断开传输
- 错误条件
观看演示
专家怎么说?
亚历克斯-阿尔伯特(@alexalbert__)在 X 网站上解释得很清楚:
- 挑战:“让 LLM 与外部系统交互通常并不那么容易。如今,每个开发人员都需要编写自定义代码,将他们的 LLM 应用程序与数据源连接起来。这是一项杂乱无章的重复性工作”。
- MCP 解决方案:“MCP 通过共享资源、工具和提示的标准协议解决了这个问题”。
- MCP 的关键点:
- 统一架构:使用相同的协议连接本地(数据库、文件)和远程(API,如 Slack 或 GitHub)资源。
- 超越数据共享:MCP 服务器不仅可以公开数据,还可以公开工具(如 API 集成)和提示(模板化交互)。
- 内置安全性:服务器可控制自己的资源,无需与人工智能提供商共享敏感的 API 密钥。
- 展望未来:虽然 MCP 目前只支持本地(服务器在您的机器上运行),但具有企业级身份验证功能的远程服务器支持即将推出。
开始使用MCP
MCP 设计用于快速设置。您可以在 5 分钟内通过预置的 GitHub、Slack、SQL 数据库、本地文件和搜索引擎等平台的服务器实现集成。
- 分步指南:安装 Claude Desktop 应用程序,并按照 Model Context Protocol 网站上的说明连接第一个服务器。
- 服务器开发人员:了解如何在 GitHub 上构建自己的 MCP 服务器并为协议做出贡献。
- 额外资源:如需深入了解,请查看 Anthropic 的这篇文章,甚至可以让 Claude 向你解释 MCP,向它提供此处的完整文档。
工具:让人工智能在现实世界中行动
MCP 中的工具允许服务器公开可执行功能–把它们想象成专门的“操作按钮”,人工智能模型可以按下这些按钮来执行任务、运行计算或与外部系统交互。有了工具,人工智能不仅能理解数据,还能根据数据采取行动,成为连接想法与执行的强大桥梁。
什么是工具?
- 发现:客户可以使用工具/列表端点发现可用的工具。这可以让人工智能知道它可以执行哪些操作。
- 调用:通过 tools/call 端点调用工具。当人工智能需要采取行动时,例如添加两个数字或创建一个 GitHub 问题,它就会向相应的工具发送请求,然后服务器就会执行操作。
- 灵活性:工具的范围很广,从简单的任务(如基本计算器)到更复杂的操作(如与外部 API 集成)。
如何定义工具?
每个工具都有一个唯一的名称、一个可选的人性化描述和一个 JSON 模式,该模式指定了工具所需的参数。例如:
最新成果
了解模型上下文协议 (MCP) 的最新进展:
2025-02-14: Java SDK发布
我们很高兴地宣布,由 Spring AI 在 VMware Tanzu 开发的 Java SDK 现已成为 MCP 的官方 Java SDK。这一新成员加入了我们现有的 Kotlin SDK,Spring AI 团队将把它作为 MCP 社区的重要组成部分加以维护。
2025-01-27: Python SDK 1.2.1
MCP Python SDK 1.2.1 版本发布,提供了重要的稳定性改进和错误修复。
2025-01-18: SDK 和服务器改进
- 在 TypeScript SDK 中引入了简化的、类似快递的 API。
- 我们的客户列表中新增了八个客户。
2025-01-03: 更多 SDK 和服务器改进
- Python SDK 中新增了 FastMCP API。
- 为了便于部署,MCP 服务器在服务器仓库中进行了 docker 化。
2024-12-21: Kotlin SDK 发布
JetBrains 为 MCP 推出了 Kotlin SDK!有关 MCP Kotlin 服务器实现的示例,请查看此资源库。
有关这些更新的详细信息,请阅读此处。
未来发展
模型上下文协议在不断发展。以下是我们 2025 年上半年的优先事项概览:
- 远程 MCP 支持:通过改进的身份验证(OAuth 2.0)、服务发现以及对无服务器、无状态操作的支持,实现安全的远程连接。
- 参考实施:提供全面的客户端示例和简化的流程,以便提出新的协议功能,帮助开发人员使用 MCP 进行构建。
- 分发与发现:通过标准化包装、简化安装、增强安全性的沙盒以及集中式服务器注册表,使 MCP 服务器更易于访问。
- 代理支持:通过更好地支持分层代理系统、交互式工作流和长期运行操作的实时流,扩展复杂工作流的功能。
- 更广泛的生态系统:投资于社区主导的标准,扩大对音频和视频等新模式的支持,并探索正式的标准化。
技术术语表
- JSON(JavaScript 对象符号):一种轻量级、易读的格式,用于在系统间交换数据。它看起来类似于日常语言中的列表或字典。
- OAuth(开放授权):应用程序访问其他网站上的信息而无需提供密码的一种方式。可以将其视为在线服务的代客钥匙。
- API(应用编程接口):让不同软件应用程序相互通信的一套规则。它就像服务员为你点餐和送餐,只不过这里是发送和接收数据。
- 客户端-服务器架构: 一种计算模式,客户端(如网络浏览器或应用程序)向服务器(存储数据的强大计算机)发送请求,然后服务器发送回您需要的信息或服务。
- MCP(模型上下文协议):一种开放标准,为人工智能工具和数据源提供通用连接器,类似于 USB-C 端口,可让不同设备使用同一根电缆连接。
- OAuth 2.0:OAuth 的最新版本,被广泛用于在不共享密码的情况下,安全地授予第三方应用程序有限的在线账户访问权限。
- Stdio(标准输入/输出):在同一台机器上运行的程序通过读取输入和写入输出进行通信的一种方式,类似于你与附近的人使用对讲机的方式。
- SSE(服务器发送事件):一种允许服务器通过单一连接向网络客户端发送自动实时更新的技术,就像在手机上接收实时新闻更新一样。
小结
MCP 正在为人工智能无缝访问任何数据源的未来铺平道路,使集成更简单、更安全、更高效。正如 USB-C 端口提供了一种通用方式,可以用同一根线缆连接手机、笔记本电脑和平板电脑等设备,MCP 也是人工智能工具和数据源的通用连接器。
想象一下您在日常生活中如何使用熟悉的连接:
- 家庭 Wi-Fi:就像您的路由器可以让您的所有设备连接并共享信息,而无需为每台设备配备专用电缆一样,MCP 允许不同的人工智能应用使用一个标准协议连接各种数据源。
- 电源插座:把 MCP 想象成一个标准化的电源插座,让您可以插入任何设备,无论它是在哪里制造的。同样,MCP 可使人工智能系统与各种数据源(无论是本地文件、数据库还是远程服务)协同工作,而无需每次都进行独特的集成。
通过用一个通用协议取代繁杂的自定义连接器,MCP 将成为更智能、更互联的人工智能系统的支柱。这不仅能简化开发人员的技术工作,还能通过更强大、更能感知上下文的人工智能工具丰富我们的日常体验。
评论留言