MCP:它真的值得大肆宣传吗?

序言

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:理解差异

  1. 模型上下文协议是AI代理访问和理解外部工具、数据的标准协议。
  2. 应用程序编程接口帮助不同的应用程序相互交互。
  3. MCP:本质上可跨协议和系统进行互操作。
  4. API:需要自定义编码
  5. MCP 是AI 原生的,因此可以与 LLM 和 AI 工具协同工作。
  6. API本质上并不是为 AI 系统构建的。

现在我们已经弄清楚了 MCP、API 和 LLM 之间的区别,让我们深入了解 MCP 的实际工作原理。

MCP 的核心组件和工作原理

从高层次来看,MCP 遵循客户端-服务器架构:

  1. 主机是发起连接的 LLM 应用程序,例如 IDE 扩展或桌面 AI 客户端。
  2. 客户端嵌入在主机内部,与服务器保持一对一的连接。
  3. 服务器提供必要的上下文、服务工具、管理资源访问并向客户端提供提示。

客户端无需对自定义集成进行硬编码,只需向服务器发送结构化的 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的资源想学习的可以收藏一下:传送门

相关推荐
数字扫地僧6 小时前
MCP(Model Context Protocol)架构演进:云原生改造路径
mcp
数字扫地僧6 小时前
MCP(Model Context Protocol)内存管理:对象池与GC优化
mcp
数字扫地僧6 小时前
MCP(Model Context Protocol)协议演进:Protobuf性能实践
mcp
数字扫地僧7 小时前
MCP(Model Context Protocol)连接池调优:高并发资源管理
mcp
bytebeats8 小时前
MCP 服务器与 FastAPI 的集成
人工智能·mcp
bytebeats9 小时前
基于A2A/MCP的AI代理架构
人工智能·mcp
北桥苏10 小时前
AI 应用开发(一):TRAE 下自定义 MCP Server
trae
凡人的AI工具箱11 小时前
PyTorch深度学习框架60天进阶学习计划 - 第58天端到端对话系统(一):打造你的专属AI语音助手
人工智能·pytorch·python·深度学习·mcp·a2a
Se7en258113 小时前
代码知识管理达人智能体部署体验
trae
德莱厄肆13 小时前
开发者神器,项目文档自动生成智能体
trae