什么是模型上下文协议(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驱动的编码助手, 如Cursor 或Windsurf. 你正在使用 GitHub 存储库, 并希望分流问题. 以下是MCP如何实现这一过程的无缝衔接:
- 客户端与服务器交互: AI应用(客户端)连接到 GitHub 的MCP服务器.
- 工具调用 : 模型决定调用
list_issues
工具, 从版本库中提取所有问题. - 资源访问: 服务器获取问题并将其作为资源发送回客户端.
- 提示插值: 该模型使用预定义的提示, 根据你过去的互动总结问题并确定优先级.
- 执行行动: 然后, 模型会调用另一个工具将首要问题添加到你的 Asana 项目中, 所有这一切都无需人工干预.
之所以能实现整个过程, 是因为MCP为AI应用提供了与 GitHub 交互的标准化方式.
MCP与工具调用: 主要区别

为什么MCP关系到AI的未来?
MCP 不仅仅是一个协议--它还是构建智能代理的基础层. 随着AI模型变得越来越强大, 动态发现和使用工具与资源的能力将变得至关重要.MCP使代理能够随着时间的推移不断发展, 发现新的能力并适应新的任务, 而无需手动更新.
例如, 设想一个AI代理可以自动发现并与 Grafana 服务器集成, 以监控你的日志, 即使它最初并没有被编程为这样做. 这种适应性正是MCP的强大之处.
如何在AI中使用MCP?
这有点复杂. 因此, 我只想分享一下概述, 让你对整个过程有所了解:
- 设置MCP服务器 : 构建或使用现有的MCP服务器, 以公开工具, 资源或提示. 例如, GitHub MCP服务器可以提供
list_issues
或create_pull_request
等工具. - 连接MCP客户端: 使用与MCP兼容的AI应用(客户端), 如 Claude 或 Cursor. 客户端连接到MCP服务器以访问其工具和资源.
- 调用工具或资源 : AI模型会根据任务动态决定何时调用工具(如获取数据)或使用资源(如附加文件). 例如, 你可以问:"列出我的 GitHub 仓库中开放的问题" , 模型就会调用 GitHub MCP服务器中的
list_issues
工具.
结论
MCP 不仅仅是另一个AI集成框架, 它还改变 了AI应用与外部工具和数据交互的方式. 通过引入标准化, 动态上下文发现和无缝工具集成, MCP消除了传统工具调用的低效率, 开启了AI代理能够适应, 进化和自主发现新功能的未来.
对于开发人员, 企业和AI研究人员来说, 采用MCP不仅仅是一次升级, 更是朝着构建更智能, 更自主的AI应用迈出的必要一步. 问题不在于MCP是否会塑造AI的未来, 而在于你将多快开始使用它来彻底改变你的AI工作流程.
好了, 今天的内容就分享到这里啦!
一家之言, 欢迎拍砖!
Happy Coding! Stay GOLDEN!