什么是模型上下文协议(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!

相关推荐
老周聊大模型11 小时前
LangChain已死?不,是时候重新思考AI工程范式了
人工智能·langchain·mcp
人生都在赌16 小时前
MCP生态全景:2025年最值得关注的AI工具集成现状深度调研
人工智能·ai编程·mcp
GM_82819 小时前
【最新最完整】SpringAI-1.0.0开发MCP Server,搭建MCP Client 实战笔记(进阶+详细+完整代码)
java·后端·ai编程·springai·mcp
友莘居士2 天前
Dify中的Agent和发现和调用mcp工具两个节点调用的异同
agent·react·dify·functioncalling·mcp
潘锦2 天前
聊下 AI Agent 的 上下文工程(Context Engineering)
agent·mcp
SelectDB2 天前
Apache Doris Data Agent 解决方案:开启智能运维与数据治理新纪元
github·apache·mcp
陈佬昔没带相机3 天前
Dify MCP功能实测,小参数模型竟然全军覆没!
ollama·deepseek·mcp
老纪的技术唠嗑局3 天前
AI 替代传统 GUI:基于 MCP 的 OBCloud 工作流
运维·mcp
聚客AI3 天前
📊构建企业AI Agent中台:基于MCP的统一工具调用架构设计
人工智能·agent·mcp
老周聊大模型4 天前
大模型如何突破“认知茧房”?RAG+MCP构建外部脑接口
langchain·agent·mcp