前言
结合网络资料, 现在整个智能体协议领域仍处于 “标准之战” (standard war) 阶段, 大部分协议都处于早期阶段,尚未在大规模范围内被广泛应用。
经过权衡,不介绍 AGUI,而是介绍相对较为成熟的 MCP 和 A2A,其他协议仅仅起补充作用。本文是该系列的第一篇,详细讲解 MCP。
有关 AGUI,可以看👀
MCP🔌
模型上下文协议 (MCP) 是一种由 Anthropic 发布的开放标准,已经成为 agent 调用工具的既定事实协议, 它被形象地比作 AI 应用的 “USB-C 接口”,旨在通过标准化接口连接智能体与外部工具、数据源及上下文,从而解决 AI 集成中的碎片化和 “N x M” 连接难题。
先来简单的看一下 智能体工具调用 的发展历史,了解 MCP 的历史地位,有助于我们更好的理解 MCP 到底是解决什么问题的。
一.Agent 工具调用 发展史
智能体(Agent)工具调用的改进是一个从学术理论研究向工业级标准化,再向去中心化生态演进的过程。根据来源资料,其发展脉络可分为以下五个关键阶段:
1. 先驱阶段(1990年代):言语行为理论与经典 MAS 协议
早在 20 世纪 90 年代,分布式人工智能研究就奠定了工具调用的理论基础,即言语行为理论(Speech-act Theory),认为语言本身就是一种行动。
- 1990年:KQML(知识查询与操纵语言)。由 DARPA 发起,首次将消息分为传输层和表现层,定义了“tell”、“ask-one”和“achieve”等表现动词(Performatives),尝试为异构知识库提供统一接口。
- 1996年:FIPA-ACL 规范。IEEE 支持的 FIPA 基金会发布此规范,引入了基于信念、愿望、意图的 BDI 模型,严密定义了 20 多种表现动词和“本体”(Ontology)概念。然而,由于其基于类 LISP 的语法且语义过于沉重,在后来的 Web 2.0 浪潮中逐渐边缘化。
2. 觉醒阶段(2020年 - 2022年):LLM 推理与行动的协同
随着大语言模型(LLM)的出现,工具调用从单纯的逻辑命题传递转向了处理概率性文本。
- 2020年:基础模型崛起。GPT-3 的 1750 亿参数展示了模型在无需特定训练的情况下具备强大的 Few-shot 学习能力。
- 2022年:ReAct 范式与 Toolformer。Google 等学者提出的 ReAct 框架实现了推理轨迹(Reasoning)与行动指令(Action)的交织。同年,Meta 发布的 Toolformer 展示了模型如何自主学习在何时调用计算器或搜索引擎等外部 API。
3. 爆发阶段(2023年):函数调用与插件机制的普及
这一阶段,工业界开始通过结构化手段解决 LLM 与工具的连接问题。
- 2023年初:ChatGPT Plugins 与 Function Calling。OpenAI 推出插件系统及函数调用(Function Calling) 机制,模型不再只产生纯文本,而是输出结构化的 JSON 描述,由执行环境代为调用 API 并返回结果。
- 2023年中:自主代理实验。AutoGPT 和 BabyAGI 等项目利用任务循环展示了模型自主执行多步骤计划的潜力。同时,微软发布 AutoGen,探索了通过对话实现多智能体协作执行任务的编程框架。
4. 标准化阶段(2024年底 - 2025年):协议之战与生态互联
为了解决不同智能体与成千上万工具之间繁琐的“N x M”集成难题,行业进入了标准化阶段。
- 2024年底:MCP (Model Context Protocol)。由 Anthropic 推出,被形象地称为 AI 应用的 “USB-C 接口” 。它通过标准的客户端-服务器架构,将模型推理与工具执行解耦,让开发者只需适配一套协议即可访问所有兼容的数据源和 API。
- 2025年3月:ACP (Agent Communication Protocol)。IBM 研究院推出 ACP,侧重于 RESTful 架构和多模态数据支持,强调 Web 原生的简约性。
- 2025年4月:A2A (Agent-to-Agent)。Google 主导推出了 A2A 协议,旨在构建“智能体互联网”,引入了 “智能体卡片”(AgentCard) 机制进行能力发现,处理复杂的任务委派。
- 2025年5月:ANP (Agent Network Protocol)。ANP 白皮书发布,目标是成为**“智能体 Web 的 HTTP”,其核心创新在于元协议层**,允许智能体在运行时通过自然语言协商通信“方言”。
- 2025年8月:行业整合。ACP 正式宣布并入 A2A 协议,由 Linux 基金会 统一管理,标志着通信标准向“大一统”迈进。
5. 模块化与去中心化阶段(2025年底 - 2026年):技能封装与经济结算
工具调用正演变为更高级的资产管理和信任协作。
- 2025年10月:Agent Skills 开放标准。Anthropic 发布 Agent Skills,将专家知识、SOP 和脚本打包成可移植的文件夹。它采用渐进式披露机制,解决了海量技能撑爆模型上下文窗口的问题。
- 2025年底:Coral Protocol 与 AP2。Coral 协议引入了基于区块链(Solana)的托管合同(Escrow Contracts),解决了在对抗性环境下“谁为计算付费”及“如何防止违约”的信任难题。同时,Google 引入了 AP2 (Agent Payments Protocol) 专门处理智能体间的金融交易安全。
- 2026年展望:AGUI 与生产级应用。业界开始关注 AGUI(智能体-用户交互协议),以解决人机协作中的状态同步与实时反馈问题。2026 年被视为“智能体互联”的标准元年,企业开始从单点试验转向基于标准化协议的跨职能生产部署。
总结: 发展的核心逻辑是:从硬编码集成(胶水代码) 结构化 JSON 调用(Function Calling) 统一上下文接口(MCP) 模块化技能分发(Skills)
二. MCP 核心架构🪜
模型上下文协议(MCP) 采用了标准化的客户端-服务器架构,旨在将 AI 模型推理与数据及工具执行解耦。该架构主要由三个核心组件构成:主机(Host)、客户端(Client) 和服务器(Server)。
这也是意味着 MCP 的开发是我们熟悉的开发范式,便于我们前端、后端工程师可以快速上手开发😋。
1. 核心架构组件
- MCP 主机 (MCP Host): 这是用户直接交互的 AI 应用程序(如 Claude Desktop、IDE 或命令行工具),它包含了编排逻辑,负责协调和管理多个 MCP 客户端。主机将来自不同服务器的工具聚集成一个统一的注册表,并负责路由调用指令。
- MCP 客户端 (MCP Client): 通常集成在主机应用中,与特定的 MCP 服务器保持一对一的连接。它的主要职责是维持连接生命周期、进行能力协商,并将用户的自然语言请求转换为协议可处理的结构化格式。
- MCP 服务器 (MCP Server): 这是实际提供能力的一方,它将客户端的结构化请求转换为具体的服务器操作,并返回结果。
2. 服务器提供的核心原语 (Primitives)
MCP 服务器通过标准化接口暴露以下三种主要资源:
- 工具 (Tools): 模型可以调用的可执行函数(如执行代码、发送邮件)。
- 资源 (Resources): 供模型读取的数据源,包括本地文件、数据库记录或实时 API 响应。
- 提示词 (Prompts): 预定义的交互模板,帮助用户和模型更高效地完成特定任务。
3. 通信与传输层
- 通信协议: MCP 建立在 JSON-RPC 2.0 基础之上,这是一种轻量级的远程过程调用协议。它定义了请求(Request)、响应(Response)和通知(Notification)三种消息类型。
- 传输方式:
- 本地传输 (stdio): 通过标准输入/输出流进行通信,适用于本地开发和需要文件系统权限的场景,具有低延迟、高吞吐的特点。
- 远程传输 (HTTP/SSE): 通过 HTTP 和服务器发送事件(SSE)进行通信,适用于生产环境和大规模部署,更易于集中管理且安全性更高。
4. 安全模型
MCP 的架构设计实现了“关注点分离”,通过以下机制保障安全:
- 授权与验证: 支持可选的 OAuth 2.1 认证方案,并要求远程连接必须使用 HTTPS/TLS 加密。
- 精细化控制: 提供基于模式(Schema)的输入验证和按操作划分的权限控制。
- 凭证管理: 敏感的 API 密钥可集中存储在受控的服务器端,而非每个客户端本地,从而降低泄露风险。
总结来说,MCP 通过这种分层解耦的架构,将复杂的“N x M”集成问题简化为“1 x N”,使智能体只需适配一套协议即可无缝访问成百上千的外部资源。
三. MCP生态系统
MCP(Model Context Protocol)生态系统非常丰富,目前的分类主要围绕着其 “主机(Host)- 客户端(Client)- 服务器(Server)” 的核心架构展开。
为了更清晰地理解这些分类的区别,我们可以根据它们在数据流和功能链条中所处的位置,将其分为以下五大核心模块:
1. 使用者入口层:客户端 (Clients)
这是用户直接交互的界面,负责发起请求并将结果展示给用户。
- 支持 MCP 的托管客户端 (Hosted Clients): 指基于 SaaS 的网页版平台。你无需安装,直接通过浏览器使用(如 Claude.ai、OpenAI 网页版)。它们的优势是即插即用,但访问本地数据受限。
- 支持 MCP 的本地客户端 (Local Clients): 指安装在本地电脑上的软件或 IDE(如 Cursor、VS Code、Claude Desktop)。它们能通过
stdio管道直接访问你的本地文件系统,适合开发场景。
2. 基础资源供应层:端点与集成 (Endpoints & Integration)
这是智能体最终要去调用的“工具”或访问的“数据”。
- MCP 端点 (Endpoints): 指直接提供原始数据或能力的厂商。例如 Exa.ai 提供搜索能力,Bright Data 提供网页抓取能力。
- MCP 集成平台 (Integration Platforms): 它们更像是“MCP 适配器集合”。它们将各种不带 MCP 协议的传统 API 重新封装成符合 MCP 标准的端点,让你开箱即用(如 Smithery)。
3. 中间调度与治理层:网关、注册中心与观测 (Gateways, Registries & Observability)
这是连接“入口层”和“供应层”的枢纽,解决“去哪找工具”和“怎么管工具”的问题。
- 支持 MCP 的 LLM 网关 (Gateways): 充当中间人,管理多个智能体与多个服务器之间的流量、身份验证和安全性。
- 支持 MCP 的本地网关: 运行在用户本地机器上的网关,主要用于确保本地数据在传输给云端模型时的隐私安全。
- MCP 注册表 (Registries): 相当于 MCP 界的 “App Store” 或搜索引擎。它不运行代码,只告诉你有哪些可用的 MCP 服务器以及它们的调用地址(如 PulseMCP)。
- MCP 的可观测性 (Observability): 专门用于监控、记录和调试 MCP 调用过程。它可以记录哪些工具被调用了、耗时多久、是否报错(如 Sentry、Datadog)。
4. 运行环境层:托管 (Hosting)
MCP 服务器代码需要运行在某个地方,这就是托管层。
- 生产托管 (Production Hosting): 开发者将自己写的 MCP 工具部署在云端,供大众或其他企业大规模调用的商业化环境。
- 自托管 (Self-hosting): 为个人或私有用途在云端运行的服务器(如你在 Cloudflare 上部署一个只给自己用的数据库连接工具)。
- 本地托管 (Local Hosting): 在你自己的电脑里通过 Docker 等技术运行服务器。这种方式最安全,但也最复杂。
5. 应用与开发扩展层 (Automations, Extensions & Devtools)
- 基于 MCP 的自动化平台 (Automation Platforms): 将 MCP 集成进传统的自动化工作流中(如 n8n、Zapier),让 AI 可以自动化地触发一系列复杂的工具链。
- 支持 MCP 的浏览器扩展: 让 AI 能够通过浏览器直接与网页内容或浏览器 API 进行 MCP 通信。
- MCP 开发工具 (Devtools): 辅助开发者编写、测试和调试 MCP 协议代码的工具(如 MCPJam)。
总结区别对照表
| 类别 | 解决什么问题? | 典型代表角色 |
|---|---|---|
| 客户端 (Client) | 我在哪跟 AI 说话? | 浏览器网页、本地 IDE |
| 网关 (Gateway) | 我怎么安全地连接工具? | 流量调度员、安全门卫 |
| 注册中心 (Registry) | 我去哪发现新的工具? | 智能体界的“黄页”或 App Store |
| 托管 (Hosting) | 这个工具的代码跑在哪? | 云服务器、本地 Docker 容器 |
| 集成/端点 (Integration/Endpoint) | 这个工具到底能干嘛? | 搜索数据、查数据库、发邮件 |
| 可观测性 (Observability) | 工具调用出错了怎么查? | 监控日志、性能分析 |
目前 MCP 生态正在快速合并和演进,许多公司(如 Glama)已经横跨了网关、注册表、托管等多个分类,向平台化方向发展。
四. MCP 推荐🌟
授人以鱼,不如授人以渔,可以自己看哪些适合自己当前的需求🐒
MCP客户端
GitHub - punkpeye/awesome-mcp-clients: A collection of MCP clients. MCP Clients | Glama
MCP服务器
GitHub - punkpeye/awesome-mcp-servers: A collection of MCP servers. Popular MCP Servers | Glama
后记
我也在逐步按自己的想法去实现一个 MCP 服务器,实际的感觉就是一个在用 node.js 去写一个后端服务,但是结合了一个 ai 工程的知识,如 prompt 工程,RAG,上下文管理等等知识,写起来还是很有味道😋。