什么是模型上下文协议(MCP)?

什么是模型上下文协议(MCP)?

通过举例解释说明 MCP

最近, 围绕 LLM 和外部工具的一个重要概念--模型上下文协议(MCP, 由 Anthropic 提出)--在开发者中获得了极大的关注. 因此, 在这里, 我们将尝试深入理解这一概念.

什么是工具调用?

工具调用是AI系统中的一种机制, LLM 调用外部工具或 API 来执行特定任务. 这些工具既包括从数据库中检索数据等简单功能, 也包括发送电子邮件或与第三方服务交互等更复杂的操作.

示例: AI辅助航班预订

想象一下, 你正在使用AI助手计划一次旅行. 你说

"为我预订 10 月 15 日从广州飞往北京的航班."

以下是工具呼叫的工作原理:

模型识别出对工具的需求 - AI检测到它需要一个航班预订工具来满足你的要求.

工具调用 - 模型调用航班预订 API, 提供相关详细信息(出发地, 目的地, 日期).

工具执行 - 航班预订系统搜索可用航班并返回结果.

模型响应 - AI处理结果并回复: "这里是可用航班: 上午 9 点的航班 A 和下午 3 点的航班 B. 你想预订哪个航班?"

这一过程使AI模型能够充当智能中介, 自动执行需要外部数据检索和处理的任务.

工具调用的挑战

虽然工具调用功能强大, 但也存在一些挑战:

  • 碎片化 - 不同的工具有不同的API和集成要求. 例如, 航班预订API的结构可能与酒店预订API的结构不同, 从而导致实施不一致.
  • 缺乏标准化 - 没有通用协议, 每个AI应用都必须实施自己的集成逻辑, 导致工作重复.

什么是协议?

协议是一套规则或标准, 规定了系统或设备之间的通信和交互方式. 它可确保不同平台之间的一致性, 互操作性和高效数据交换.

协议的一个常见例子是HTTP(超文本传输协议) , 它定义了网络浏览器和服务器如何通信以获取和显示网页. 另一个例子是 SMTP(简单邮件传输协议), 用于在服务器之间发送电子邮件.

  • 语境限制 - 工具调用通常仅限于预定义的工具. 如果有新工具可用, 除非明确更新, 否则AI模型可能不知道如何使用.
  • 错误处理 - 如果工具出现故障(例如, 航班预订 API 出现故障), AI可能无法从容应对, 导致用户体验不佳.

MCP中的内容

MCP: LLM 与工具交互的协议

MCP的核心是一个开放协议, 旨在规范AI/LLMs 应用与外部系统(如数据库, 工具和资源)的交互方式.

将其视为一种通用语言, 可让AI模型与有效运行所需的工具和数据无缝集成.

MCP背后的动机源于这样一个理念:模型的好坏取决于我们为其提供的上下文. 一年前, 大多数AI应用都需要用户手动复制粘贴或输入上下文. 但如今, AI系统正在不断发展, 能够直接与你的数据和工具挂钩, 使它们变得更加强大和个性化.MCP的诞生就是为了实现这种无缝集成.

MCP与工具调用有何不同?

在MCP之前, AI系统在很大程度上依赖于工具调用, 即模型调用特定工具来执行任务. 工具调用固然有用, 但也存在上述问题.

另一方面,MCP为AI应用引入了一个标准化接口, 用于与工具, 提示和资源进行交互. 下面是它的不同之处:

标准化:MCP为AI应用提供了一个统一的协议, 以便与任何兼容MCP的服务器进行连接. 这消除了定制集成的需要.

关注点分离:MCP将工具, 资源和提示分离成不同的组件, 每个组件由不同的实体(模型, 应用或用户)控制.

动态上下文:MCP允许模型动态地发现和使用工具和资源, 使AI系统更具适应性和情境感知能力.

MCP的优势

无缝集成: 一旦你的AI应用与MCP兼容, 它就可以连接到任何MCP服务器, 无需额外工作. 这减少了开发时间和复杂性.

可扩展性:MCP使企业能够集中进行AI开发. 例如, 一个团队可以将矢量数据库作为MCP服务器来管理, 而其他团队则可以在此基础上构建AI应用.

丰富的语境:MCP允许AI模型访问更丰富的上下文, 使其更加强大和个性化. 例如, AI助手可以从 CRM, GitHub 或本地文件系统中提取数据, 而无需手动输入.

开放的生态系统:MCP是一个开放协议, 这意味着任何人都可以构建和共享MCP服务器. 这促进了整个AI社区的合作与创新.

MCP运行的简单示例

假设你正在使用AI驱动的编码助手, 如CursorWindsurf. 你正在使用 GitHub 存储库, 并希望分流问题. 以下是MCP如何实现这一过程的无缝衔接:

  1. 客户端与服务器交互: AI应用(客户端)连接到 GitHub 的MCP服务器.
  2. 工具调用 : 模型决定调用list_issues工具, 从版本库中提取所有问题.
  3. 资源访问: 服务器获取问题并将其作为资源发送回客户端.
  4. 提示插值: 该模型使用预定义的提示, 根据你过去的互动总结问题并确定优先级.
  5. 执行行动: 然后, 模型会调用另一个工具将首要问题添加到你的 Asana 项目中, 所有这一切都无需人工干预.

之所以能实现整个过程, 是因为MCP为AI应用提供了与 GitHub 交互的标准化方式.

MCP与工具调用: 主要区别

为什么MCP关系到AI的未来?

MCP 不仅仅是一个协议--它还是构建智能代理的基础层. 随着AI模型变得越来越强大, 动态发现和使用工具与资源的能力将变得至关重要.MCP使代理能够随着时间的推移不断发展, 发现新的能力并适应新的任务, 而无需手动更新.

例如, 设想一个AI代理可以自动发现并与 Grafana 服务器集成, 以监控你的日志, 即使它最初并没有被编程为这样做. 这种适应性正是MCP的强大之处.

如何在AI中使用MCP?

这有点复杂. 因此, 我只想分享一下概述, 让你对整个过程有所了解:

  1. 设置MCP服务器 : 构建或使用现有的MCP服务器, 以公开工具, 资源或提示. 例如, GitHub MCP服务器可以提供 list_issuescreate_pull_request 等工具.
  2. 连接MCP客户端: 使用与MCP兼容的AI应用(客户端), 如 Claude 或 Cursor. 客户端连接到MCP服务器以访问其工具和资源.
  3. 调用工具或资源 : AI模型会根据任务动态决定何时调用工具(如获取数据)或使用资源(如附加文件). 例如, 你可以问:"列出我的 GitHub 仓库中开放的问题" , 模型就会调用 GitHub MCP服务器中的list_issues工具.

结论

MCP 不仅仅是另一个AI集成框架, 它还改变 了AI应用与外部工具和数据交互的方式. 通过引入标准化, 动态上下文发现和无缝工具集成, MCP消除了传统工具调用的低效率, 开启了AI代理能够适应, 进化和自主发现新功能的未来.

对于开发人员, 企业和AI研究人员来说, 采用MCP不仅仅是一次升级, 更是朝着构建更智能, 更自主的AI应用迈出的必要一步. 问题不在于MCP是否会塑造AI的未来, 而在于你将多快开始使用它来彻底改变你的AI工作流程.

好了, 今天的内容就分享到这里啦!

一家之言, 欢迎拍砖!

Happy Coding! Stay GOLDEN!

相关推荐
爬呀爬的水滴1 天前
工具篇-如何在Github Copilot中使用MCP服务?
copilot·mcp
带刺的坐椅1 天前
jFinal 使用 SolonMCP 开发 MCP(拥抱新潮流)
java·ai·solon·jfinal·mcp
菜鸟分享录1 天前
MCP 入门实战:用 C# 开启 AI 新篇章
ai·c#·semantic kernel·mcp
小白跃升坊1 天前
1Panel + MaxKB 对接高德地图 MCP Server
mcp·max kb
犬余1 天前
模型上下文协议(MCP):AI的“万能插座”
人工智能·mcp
一个处女座的程序猿2 天前
LLMs之MCP:2025年5月2日,Anthropic 宣布 Claude 重大更新:集成功能上线,研究能力大幅提升
anthropic·mcp
带刺的坐椅2 天前
FastMCP(python)和 SolonMCP(java)的体验比较(不能说一样,但真的很像)
java·python·solon·mcp·fastmcp
零炻大礼包3 天前
【MCP】服务端搭建(python和uv环境搭建、nodejs安装、pycharma安装)
开发语言·python·uv·mcp
风筝超冷3 天前
MCP项目实例 - client sever交互
mcp
带刺的坐椅3 天前
Java Solon-MCP 实现 MCP 实践全解析:SSE 与 STDIO 通信模式详解
java·solon·mcp·mcp-server·mcp-client