序言
MCP (模型上下文协议) 是技术界热议的话题,它由 Claude 的创始人Anthropic开发,并于 2024 年 11 月开源,解决了将 AI 模型连接到各种工具和数据集的复杂性。虽然去年它还默默无闻,但最近发展势头强劲,越来越多的开发者、平台和企业开始加入。
那么,
什么是MCP

- MCP 是一种开放协议,可让 AI 系统和代理无缝连接到外部工具和资源。
- 可以将 MCP 想象成AI 工具的USB 端口------它允许您连接所需的所有不同数据源。当然,当您在 AI 编码平台上从零开始启动项目时,一切都会顺利进行。但是,如果您需要从 GitHub 上的旧项目中提取代码、从 Google Drive 获取文档,并随时掌握 QA 团队在 Slack 中发布的更新,该怎么办?使用 MCP,您只需将 Github-Slack-Drive 连接到正在使用的 AI 编码代理,即可确保您的工作流程不出现任何问题。
- 在 MCP 之前,每个工具都需要自定义编码。

- 因此,MCP 提供了一种通用协议,允许 AI 系统跨不同的应用程序维护上下文,从而简化了智能代理的开发。
谁采用了它?
- Open AI:发布MCP推文。
- Google DeepMind:确认即将推出的 Gemini 模型将支持 MCP。
- Replit、Codeium 和 Sourcegraph 等开发工具已经利用 MCP 来增强其 AI 代理的功能。
MCP 与 LLM:了解差异
虽然 MCP 和大型语言模型 (LLM) 都是 AI 开发不可或缺的一部分,但它们的用途却截然不同:
LLM :这些是先进的人工智能模型,经过海量数据集训练,能够理解并生成类似人类的文本。它们在语言翻译、内容创作和摘要等任务上表现出色。
MCP:这是一种促进 LLM 与外部应用程序之间通信的协议,允许 AI 系统执行文本生成以外的任务,例如与数据库交互、执行功能以及在不同工具之间保持上下文感知。
本质上,LLM 提供认知能力,而 MCP 则使他们能够有效地与外部世界互动。
MCP 与 API:理解差异
- 模型上下文协议是AI代理访问和理解外部工具、数据的标准协议。
- 应用程序编程接口帮助不同的应用程序相互交互。
- MCP:本质上可跨协议和系统进行互操作。
- API:需要自定义编码
- MCP 是AI 原生的,因此可以与 LLM 和 AI 工具协同工作。
- API本质上并不是为 AI 系统构建的。
现在我们已经弄清楚了 MCP、API 和 LLM 之间的区别,让我们深入了解 MCP 的实际工作原理。
MCP 的核心组件和工作原理
从高层次来看,MCP 遵循客户端-服务器架构:
- 主机是发起连接的 LLM 应用程序,例如 IDE 扩展或桌面 AI 客户端。
- 客户端嵌入在主机内部,与服务器保持一对一的连接。
- 服务器提供必要的上下文、服务工具、管理资源访问并向客户端提供提示。
客户端无需对自定义集成进行硬编码,只需向服务器发送结构化的 MCP 请求,服务器再与工具通信并返回结构化的 MCP 响应。
其核心组件 包括协议层、传输层和消息处理系统。
协议层
协议层负责高级通信逻辑,处理消息框架、请求-响应链接以及客户端和服务器之间的通知管理。
该协议的功能包括:
- 通过经过架构验证的处理程序处理传入的请求。
- 异步处理传入通知。
- 发送传出请求并等待结构化响应。
- 发送不期望响应的单向通知。
在代码层面,MCP 通过 Protocol 类公开此功能,该类包含 setRequestHandler、setNotificationHandler、request 和 notification 等关键方法。这些抽象确保开发人员能够使用简洁、可预测的通信模式。
传输层
传输层负责处理客户端和服务器之间 MCP 消息的传输。MCP 根据部署场景支持多种传输机制:
- Stdio Transport使用标准输入/输出进行通信,非常适合进程间本地、同机通信。它轻量级且易于管理。
- 带有服务器发送事件 (SSE) 传输的 HTTP专为远程通信而设计,使用 HTTP POST 发送客户端到服务器的消息,并使用 SSE 发送服务器到客户端的流式消息。这使其能够集成到基于云的架构或 Web 友好的环境中。
无论传输方式如何,MCP 消息都使用 JSON-RPC 2.0 进行交换,确保跨不同平台和编程语言的结构一致性和兼容性。
MCP 中的核心消息类型
MCP 中的通信主要由四种主要消息类型构成:
- ****当客户端或服务器需要对方的响应时,就会发送请求。
- 结果是对请求的成功响应。
- 错误表示请求失败,并带有详细的错误代码和描述。
- 通知是单向发送的消息,不期望任何回复。
连接生命周期
MCP 连接经历几个阶段:
初始化

- 客户端发送初始化请求,指定协议版本及其功能。
- 服务器以其版本和功能进行响应。
- 客户端发送初始化通知,确认已准备好开始正常消息传递。
消息交换
- 初始化后,双方可以自由发送请求和通知。
- 同时支持请求-响应和单向通知模式。
终止
- 客户端或服务器都可以干净地终止连接。
- 传输错误或关闭也可能导致连接断开。
所以它真的值得大肆宣传吗?
MCP 确实名副其实。它让 AI 模型与工具的连接变得超级简单,省去了所有繁琐的自定义工作。如果您想构建更智能、更灵活的 AI 应用,又不想再为这些繁琐的流程头疼,MCP 将彻底改变游戏规则。 那么你认为呢? 最后我之前总结了一些学习MCP的资源想学习的可以收藏一下:传送门