都全民AI时代了,还不了知道MCP?
原创 OddFan 泛函的范 2025年04月12日 19:27 广东
自从 Anthropic(Claude 的母公司)于2024年11月开源发布 MCP(Model Context Protocol,即模型上下文协议)以来,MCP 迅速在 AI 领域得到广泛讨论。简单来说,MCP 是一种开放标准协议,旨在为大型语言模型(LLMs)与外部数据源、工具和系统提供标准化接口,解决 AI 应用中的数据孤岛问题,实现跨系统的无缝交互。其核心设计理念类似于“AI 领域的 USB-C 接口”,通过统一协议简化复杂集成。
图源:Norah Sakal @linkedin
本文将简要介绍 MCP 框架及其用法,方便大家快速了解 MCP 的技术核心。在介绍 MCP 之前,我们先简单看下什么是AI Agent。
泛函的范
日常搬砖,周末更新。关键词:推荐系统、机器学习、经验总结、面试技巧
114篇原创内容
公众号
What is Agent
AI Agent 将 LLMs 作为其关键决策和解决复杂任务的“大脑”,并与现实世界交互的工具相结合的系统。它能够在有限人工参与的情况下完成复杂任务。Agent 被分配特定的角色,并赋予不同程度的自主性来实现最终目标。此外,它还配备了记忆功能,能够从过去的经验中学习,并随着时间的推移提高性能。常见的 AI Agent 结构如下图所示:
关于AI Agent的内容,可以参考之前的文章《快来了解下 Agenetic Workflows》,这里就不赘述了。
Why MCP?
在 MCP 出现之前,AI 应用需通过手动 API 对接(如基于插件的接口或代理框架)与外部工具交互。这些传统方式要求为每个外部服务单独开发特定 API 集成方案,导致系统复杂度激增且难以扩展。MCP通过提供标准化协议,实现了与多种工具的无缝灵活交互,彻底解决了这些问题。其核心价值体现在以下五大方面:
-
标准化协议打破生态孤岛:传统 API、插件或 Agent 框架的集成方式需要为每个外部服务编写独立的适配代码,导致开发成本高、维护困难。MCP 通过统一协议规范(类似“AI界的USB-C”),让模型、工具和数据源遵循同一套通信标准,实现“一次开发,多模适配”。如开发者只需将 GitHub、Slack 等工具封装为 MCP Server,即可供不同模型(如 Gemini、Claude、GPT-4)直接调用,无需重复适配。
-
灵活性与扩展性适配动态需求:传统 API 的固定接口难以满足 AI 场景中动态参数注入、多步链式指令等需求。MCP 支持双向实时通信(基于 WebSocket/SSE),允许模型在运行时动态生成请求并解析响应,甚至实现“自然语言指令→工具链→结果输出”的自动化流程。
-
安全性保障敏感数据可控:传统 API 的分散权限管理和开放接口容易引发数据泄露风险,而 MCP 原生集成 Token 认证、传输加密和细粒度访问控制。如医疗场景中 MCP Server 可限制仅访问脱敏数据,关键操作需人工二次确认。此外,MCP 允许数据在本地处理,避免敏感信息全部上传云端,兼顾效率与合规性。
-
开发效率与维护成本优化:MCP 通过预置丰富的现成插件和开源工具,极大简化开发流程。开发者无需从零编写中间层代码,可直接复用标准化模块,节省80%的样板代码。以“获取天气数据”为例,传统API需定制解析逻辑,而MCP只需调用预集成服务,需求变更时仅需服务端更新,客户端无需改动。
-
开放生态驱动技术革新:MCP 的厂商中立性(支持Gemini、Claude、GPT-4等模型自由切换)和社区共建模式,加速了AI能力的“资产化”。市场数据显示,截至2025年3月,MCP采用率环比增长240%,企业集成成本降低65%,迭代周期缩短至1/3。
图源:X Hou, Y Zhao, S Wang, and H Wang
What is MCP
Anthropic 公司对 MCP 的定义如下:
An open protocol that standardizes how applications provide context to LLMs.
具体地说,它试图规范基于 LLM 的应用程序如何与外部环境集成。一个经典的 MCP 工作流如下图所示:
图源:X Hou, Y Zhao, S Wang, and H Wang
MCP架构由三个核心组件构成:MCP Host、MCP Client 和 MCP Server。这些组件协同工作,确保 AI 应用、外部工具与数据源之间的通信无缝衔接,同时保障操作的安全性和可管理性。具体流程如下:
-
用户发起请求:用户通过界面(如聊天窗口或IDE)向 MCP Client 发送指令或查询。
-
意图解析:MCP Client 解析用户请求的意图,并与 MCP Server 交互,获取可用的工具列表(如数据库查询、文件操作、API调用等)。
-
工具选择与执行:根据 LLMs 的决策,MCP Server 调用对应的外部工具或 API(如通过Shodan MCP Server 执行网络威胁扫描,或通过 Playwright MCP Server 控制浏览器自动化)。
-
数据处理与反馈:外部工具执行完成后,MCP Server 将结果返回 MCP Client,MCP Client 整合信息并通过 LLM 生成自然语言响应,最终通知用户。
下面我们分别来看下 MCP 的这三个核心组建。
MCP Host
MCP Host 是一款 AI 应用程序,在运行 MCP Client 的同时,提供执行 AI 任务的环境。MCP Host是使用 MCP 访问外部数据源和工具的应用程序,通过标准化接口实现 AI 与多源数据的无缝整合。其主要功能包括:
-
资源整合:支持同时连接多个 MCP Server(本地/远程),如文件系统服务器、GitHub接口服务器等,实现跨数据源的信息调用。
-
安全管控:通过沙箱隔离技术和动态权限审批(如首次访问弹窗确认),确保敏感数据仅在用户授权范围内被访问。
-
协议执行:内置MCP客户端组件,负责将AI模型的自然语言指令转换为JSON-RPC 2.0协议消息,并通过STDIO或SSE通道与服务器通
在 MCP 的 Client-Server 架构中,MCP Host 承担以下关键角色:
-
交互枢纽:作为用户与 AI 模型的交互界面(如Claude Desktop的图形界面),接收用户指令并呈现最终响应。
-
连接协调器:通过 1:N 的 Client-Server 连接模式,管理IDE、数据库、API等不同服务的会话状态。如 Cursor IDE 作为 Host 时,可同时连接代码仓库服务器和文档检索服务器。
-
上下文整合器:将分散的服务器响应数据(如本地文件内容+API返回结果)注入 LLM 上下文,辅助生成精准回答。
图源:Hardik Singh Behl & Liam Williams @Baeldung
MCP Client
MCP Client 是 MCP 架构中实现 AI 模型与外部资源交互的核心通信组件,其设计目标是通过标准化协议消除系统集成的复杂性。MCP Client 是运行在 MCP Host 环境中的协议适配层,承担自然语言指令与结构化协议之间的双向转换任务。其主要功能包括:
-
协议转换:将 LLM 生成的指令(如"查询深圳天气")转换为 JSON-RPC 2.0 格式的请求报文,并通过 STDIO 或 HTTP/SSE 通道传输至服务器
-
动态发现:自动获取 MCP Server 暴露的工具清单(如数据库查询、API调用等),构建可供 LLM 调用的功能目录
-
结果整合:将服务器返回的结构化数据(如 JSON 格式的天气数据)注入 LLM 上下文,辅助生成自然语言响应
在 MCP 架构中,MCP Client 承担以下关键职责:
-
通信枢纽: 管理 Host 与 Server 之间的持久化连接,支持本地进程间通信(通过STDIO)与远程 HTTP/2 传输(通过SSE事件流)两种模式。如 Cursor IDE 中的 Client 在代码补全时,会同时连接本地的 Git 服务器和云端的文档检索服务。
-
安全代理:实现动态权限审批机制,当首次调用敏感操作(如文件读写)时触发用户确认弹窗。采用TLS加密保障数据传输安全,并通过沙箱技术隔离高风险操作
-
性能优化器:内置流量控制算法,根据服务器响应速度动态调整请求频率。实测在连接高负载服务器时,Client 可将延迟降低约 35%(Anthropic基准测试数据)
MCP Server
MCP Server 是 AI 生态中实现智能模型与物理世界连接的关键枢纽,通过标准化协议为 LLMs 提供动态数据接入与操作执行能力。 MCP Server 是基于 MCP 协议构建的轻量级服务程序,其核心功能包括:Tools,Resources 和 Prompts。
-
Tools:允许 LLMs 通过服务器执行操作。工具使 MCP Server 能够调用外部服务和 API,代表 AI 模型执行操作。当 Client 请求操作时,MCP Server 会识别合适的工具、与服务交互并返回结果。与传统函数调用不同,MCP 的 Tools 通过标准化接口使模型能基于上下文自主选择并调用工具。这些工具遵循标准化的供给-消费模式(Supply-and-Consume),实现模块化、可复用性,并能被其他应用轻松接入,从而提升系统效率和灵活性。
-
Resources:向 LLMs 暴露服务器中的数据和内容。Resources 提供对结构化和非结构化数据集的访问,这些数据可来自本地存储、数据库或云平台。当 AI 模型请求特定数据时,MCP Server 会检索并处理相关信息,支持模型进行数据驱动的决策。
-
Prompts:创建可复用的 Prompt 模板和工作流。Prompt 模板是 MC Server 生成和维护的预定义模板,用于优化 AI 响应并简化重复性任务,确保一致性和效率。
此外,MCP Server 公开了这三个核心功能是经过专门设计的,旨在实现特定的控制权分离:
-
Tools 由模型控制:若要赋予应用程序自主决策与环境交互的能力,需通过 Tools 实现。MCP Server 提供一个端点,可列出所有可用 Tools 及其描述、所需参数。应用程序将此 Tools 列表传递给 LLMs 后,LLMs 基于任务需求,自主决定调用哪些工具及调用方式。
-
Resources 由应用程序控制:Resources 指任何可由 LLMs 应用程序使用的数据。应用程序开发者负责编写这些资源的使用逻辑。此过程通常无自动化,且 LLMs 本身不参与资源选择决策。
-
Prompts 由用户控制:Server 开发者可公开特定的 Prompt(适用于与 Server 暴露的数据进行交互),这些 Prompt 可通过 LLMs 注入应用程序,并展示给最终用户。用户能够根据需求自定义或选择这些 Prompt。
更多 MCP Server 和 Client 可以参考 https://mcp.so/explore :
Transport Layer and Communication
MCP 的通信架构基于 Client-Server 模型,其 Transport Layer 和 Communication 机制的设计实现高效、安全交互的核心。
Transport Layer
Transport Layer 负责 Client 与 Server 之间的实际通信,采用标准化的消息格式和传输协议,具体特点如下:
1、传输机制
-
标准输入输出(STDIO):用于本地通信,客户端启动服务器作为子进程,通过 stdin/stdout 交换 JSON-RPC 消息。优势是无需网络,适用于本地工具集成。
-
HTTP/SSE(Server-Sent Events):用于远程通信,客户端通过 HTTP 发送请求,服务器通过 SSE 流式传输响应。支持 TLS 加密和 OAuth 认证,适用于分布式部署。
-
自定义传输:允许开发者实现其他协议。
2、协议规范
-
所有消息均遵循 JSON-RPC 2.0 标准,确保格式统一。
-
消息类型包括:Requests(带唯一 ID 的请求)、Responses(对应请求的响应)、Notifications(单向通知)
3、安全性设计
-
本地传输依赖进程隔离和沙箱化;远程传输需结合 TLS 加密和 OAuth 2.1 认证。
Communication
MCP 的通信遵循动态服务发现机制,核心流程如下:
1、能力交换(Capability Exchange)
-
客户端发起请求:客户端发送 Initialization Request,查询服务器的能力。
-
服务器响应能力详情:返回支持的 Tools、Resources、Prompts。
-
客户端确认连接:验证能力后建立会话。
2、实时数据交换
-
请求-响应模式:客户端调用具体能力(如执行工具 fetch_repository),服务器返回结果或错误。
-
通知机制:服务器主动推送状态变更(如文件更新通知),客户端无需轮询。
3、会话管理
-
客户端维护有状态连接,支持会话恢复和断线重连。
-
传输层自动处理消息路由和序列化,开发者只需关注业务逻辑
图源:Avi Chawla @DailyDoesOfDS
MCP vs 传统 API
MCP 与传统基于API的调用对比如下:
维度 | 传统API集成 | MCP |
---|---|---|
开发成本 | 需为每个数据源定制代码 | 标准化协议,一次开发多场景复用 |
灵活性 | 强耦合,切换模型需重写接口 | 解耦设计,支持动态切换LLM和数据源 |
安全性 | 依赖单独加密机制 | 内置沙箱、动态权限审批和TLS加密 |
实时性 | 延迟高(HTTP轮询) | 低延迟(SSE事件流或二进制通信) |
MCP Use Cases
MCP 已成为 AI 应用程序与外部工具、API及系统高效通信的关键工具。通过标准化交互方式,MCP 简化了复杂的工作流程,显著提升了 AI 驱动型应用的效率。更多 MCP 的用例可以参考:https://mcp.so/usercases
Conclusion
MCP 的开源特性已吸引 200+ 社区项目,覆盖数据库、云服务、硬件控制等领域。未来可能成为 AI Agent 的“操作系统级”基础设施,推动物理世界与数字世界的深度融合。
此外,Google 在4月9日开源了首个智能体间协作标准协议 Agent2Agent (A2A),目标是通过定义标准化通信框架来实现 Agent 之间的跨平台通信和协作,从而打破不同厂商和框架之间的壁垒。Google 打算将 A2A 打造为多智能体协作的底层基础设施。
A2A 与 MCP 的作用如下图所示,通过结合 MCP 和 A2A,能方便我们更好设计和开发 AI 系统。
图源:Adewuyi Abayomi Daniel @Medium
后续将对 A2A 做进一步介绍,感兴趣的可以关注下。
泛函的范
日常搬砖,周末更新。关键词:推荐系统、机器学习、经验总结、面试技巧
114篇原创内容
公众号
References
[1] Model Context Protocol, (2025), GitHub repository, https://github.com/modelcontextprotocol
[2] Hou X, Zhao Y, Wang S, et al. Model Context Protocol (MCP): Landscape, Security Threats, and Future Research Directions[J]. arXiv preprint arXiv:2503.23278, 2025.
[3] MCP Documentation. Introudction to Model Context Protocal. 2025. https://modelcontextprotocol.io/introduction
[4] Avi Chawla. Visual Guide to Model Context Protocol (MCP). 2025. Daily dose of DS. https://blog.dailydoseofds.com/p/visual-guide-to-model-context-protocol
[5] Aurimas Griciunas. Everything you need to know about MCP. 2025. SwirlAI Newsletter. https://www.newsletter.swirlai.com/p/everything-you-need-to-know-about
[6] Adewuyi Abayomi Daniel. MCP, A2A, and the Beginning of the End of Explicit Programming. 2025. Medium. https://medium.com/@adewuyiaby/mcp-a2a-and-the-beginning-of-the-end-of-explicit-programming-48a565de5f02