MCP协议反思
每日学习笔记 · 2026-08-06
📅 学习日期:2026-08-06 | 📚 来源:AI Agent 知识库 | 📝 综合文章数:5 篇
📌 今日速览
MCP 被称为”AI 界的 USB-C”,月下载量 9700 万次,但 2026 年初一线开发者集体质疑:单个 GitHub MCP Server 消耗 55000 tokens,6 个 Server 就烧掉 60K-90K tokens;43% 的 MCP 实现存在命令注入漏洞,1862 个 Server 无认证暴露公网。行业态度从”必须支持”转向”看情况用”。今天从 5 篇文章里梳理出工具调用协议的三代演进(Function Calling → MCP → Skills)、三大通信协议的定位(MCP/A2A/ANP)、MCP 的成本危机与替代方案,以及从协议到 AgentOS 的系统性演进。最核心的反共识观点是:MCP 最大贡献或许不是协议本身,而是引发了行业对”给 Agent 一堆工具定义”范式的反思。
一、为什么今天聊这个?
过去 30 天我们学完的脉络是:
- 8-03 Tool Use 工具调用:讲了工具调用的协议层(Function Call / MCP)和形态层(Tool / Skill / Plugin),但没深入 MCP 本身的设计与争议
- 8-05 Agentic AI 安全:43% 的 MCP 实现存在命令注入漏洞——安全问题的根源之一就是协议设计
- 7-27 Skill 技能系统:Skills 是 MCP 的上层决策层,但没讲清楚两者的关系
今天把 MCP 协议拿出来单独学,是因为它正处于一个关键转折点:从”AI 界的 USB-C”到”看情况用”,从”必须支持”到反思替代方案。理解这个转折,对理解 Agent 基础设施的走向至关重要。
二、核心要点
要点 1:三代演进——Function Calling → MCP → Skills 不是替代,是分层
Function Calling(底层执行):让 LLM 从”缸中之脑”变成”指挥官”——模型输出 JSON 格式调用指令,告诉程序调哪个函数、传什么参数。工作三步走:①契约定义(JSON Schema)→ ②大脑决策(模型输出 tool call)→ ③闭环执行(结果喂回模型)。
局限:工具从 3 个变 300 个时,重复造轮子(不同模型需写不同格式)、紧耦合(工具定义硬编码在代码里)、工具描述占上下文(每个 Schema 塞进窗口,挤压对话空间)。
MCP(标准化连接):Anthropic 2024.11 发布的开放协议,核心理念是”写一次,到处用”。采用 Host/Client/Server 三层架构:Host(如 IDE)运行 AI → Client(内嵌 Host)对接 Server → Server(独立进程)提供工具/资源/提示。通信用 JSON-RPC 2.0 over stdio(本地)或 HTTP+SSE(远程)。
解决的问题:集成点从 N×M 降到 N+M。10 个 Agent 接 20 工具,原 200 集成点;用 MCP 后,工具内部变更只需改 Server,不影响各 Agent 配置。
Skills(上层决策):标准化”程序性知识封装格式”——MCP 给”手”,Skills 给”操作手册”。核心创新是渐进式披露三层加载:①元数据(~100 Token,启动扫描)②完整指令(匹配才加载 1-5K Token)③附加资源(执行才读)。解决 MCP 上下文爆炸和”能连≠会用”的能力鸿沟。
分层架构:三者不是替代关系,而是分别对应底层执行(FC)、标准化连接(MCP)、上层决策(Skills)。场景示例:Skills 层加载 mysql 分析技能定义维度 → MCP 层调数据库 Server 执行 SQL → Function Calling 层底层驱动跑 SQL。
要点 2:MCP 的成本危机——Token 烧钱的真相
MCP 的 Token 消耗是真实且严重的:
| 指标 | 数据 |
|---|---|
| 单个 GitHub MCP Server | ~55,000 tokens(93 个工具定义) |
| 单个 Docker MCP Server | ~125,000 tokens |
| 典型 6 个 Server 环境 | 60,000-90,000 tokens |
| 8 个 Server 每轮对话 | ~51,000 tokens(占 200K 上下文 25%) |
| 企业级 120 工具/25 轮/天 | 每月纯 Schema Token 开销 $81,000+ |
根本原因:MCP 的设计是”全量加载工具定义”——所有工具的 Schema 必须塞进上下文窗口,Agent 才能知道有哪些工具可用。工具越多,上下文越拥挤,留给真正推理的空间越少。
替代方案及节省比例:
| 方案 | 核心思路 | Token 节省 |
|---|---|---|
| CLI | MCP Server 转轻量 CLI,懒加载发现 | 94-99% |
| Code Mode | TypeScript 文件 + 沙箱执行,Agent 自读文档写代码 | 98.7-99.9% |
| Tool Search | 工具描述超 10% 时懒加载,仅搜索匹配的工具 | 85-95% |
Cloudflare 的 Code Mode 案例:2,500+ API 端点,Token 从 1,170,523 降到约 1,000,节省 99.9%。Anthropic 自家的 Tool Search:Token 从 ~134K 降到 ~5K,Opus 4.5 准确率反而从 79.5% 升至 88.1%。
💡 反共识观点:MCP 的”全量加载工具定义”模式正在被证明是反模式。Agent 不需要知道所有工具的细节,只需要知道在需要时去哪里找——这和人类不需要记住所有 API 文档,只需要知道怎么查文档一样。
要点 3:MCP 的安全黑洞——协议的”暗面”
MCP 的安全问题是系统性的:
| 安全问题 | 数据 |
|---|---|
| 无认证暴露公网 | 1,862 个 MCP Server |
| 命令注入漏洞 | 43% 的 MCP 实现 |
| 无限制 URL 获取 | 30% 的 MCP 实现 |
| 暴露预期目录外文件 | 22% 的 MCP 实现 |
| 高危 CVE | 3 个(最高 CVSS 9.6) |
| 装 10 个插件被利用概率 | 92% |
根本原因:MCP 的设计哲学是”上下文共享”——让 Agent 能自由访问工具和数据。但”自由访问”恰恰是安全问题的根源。昨天(8-05)学过的 Sandlock 观点在此完美呼应:安全的核心是策略而非隔离,MCP 的安全漏洞本质上是”权限配置过于宽松的策略”。
要点 4:三大通信协议——MCP/A2A/ANP 的分工
| 协议 | 解决的问题 | 设计哲学 | 适用场景 |
|---|---|---|---|
| MCP | 如何访问工具 | 上下文共享 | 增强单个智能体的能力 |
| A2A | 如何与其他智能体对话 | 对等通信 | 小规模团队的紧密协作 |
| ANP | 如何在大规模网络中发现和连接智能体 | 去中心化服务发现 | 构建大规模、开放的智能体网络 |
三者不是竞争而是互补:MCP 解决”手”(工具连接),A2A 解决”嘴”(智能体间通信),ANP 解决”地图”(大规模网络中的发现与路由)。在 AgentOS 的分层架构中,MCP 位于 L3(执行与工具层),A2A 位于 L5(编排与治理层),ANP 位于 L6(基础设施层)。
要点 5:从协议到 AgentOS——MCP 的终局不是”更好的协议”
WebMCP 的通信生命周期:连(Connect)→ 取(Get Endpoint)→ 握(Handshake)→ 用(Usability)→ 断(Terminate)。双通道传输:SSE(Server→Client 推送)+ HTTP POST(Client→Server 请求)。
AgentOS 的范式迁移:从传统 OS(确定性业务、管理应用/进程)到 AgentOS(概率性推理、管理 Agent/AI 资源)。交互从 GUI/CLI”怎么做”变为 LUI”想要什么”,运行从被动响应到主动决策。
AgentOS 六层架构:L1 接口与感知层 → L2 认知与决策层(LLM 内核)→ L3 执行与工具层(MCP) → L4 记忆与状态层 → L5 编排与治理层 → L6 基础设施层。
MCP 的定位跃迁:MCP 是标准化”连接器”(AI 时代 USB-C),解决”能做什么”的接入;AgentOS 是系统级”调度与治理平台”,解决”该如何做、与谁协作、安全可控”。MCP 被内化为 AgentOS 的执行层”系统调用”接口——就像 POSIX 系统调用对应用程序的意义。
“用 Token 换架构”的本质:Agent 是用更多的运行时成本(多轮推理 + 多次工具调用 + 更高延迟/Token),换开发与维护成本的下降(分支更少、扩展更快、长尾更适配)。MCP 在这个框架里是”连接成本”的标准化——用少量 Token 换取 N×M 到 N+M 的架构简化。
三、分歧与讨论
1. MCP 的”全量加载”vs”按需发现”
MCP 的核心设计是让 Agent 在调用前就知道所有可用工具(全量加载 Schema),但 Token 成本证明这是不可持续的。替代方案(CLI/Code Mode/Tool Search)走的是”按需发现”路线——Agent 不知道所有工具的细节,但知道怎么去查。
深层矛盾:全量加载让模型有”全局视野”做更好的决策,但 Token 成本太高;按需发现节省成本,但可能遗漏最佳工具选择。这本质上是”信息完备性”和”成本效率”的权衡——Anthropic 的 Tool Search 数据表明,按需发现反而提升了准确率(79.5%→88.1%),暗示”信息过载”比”信息不足”更影响决策质量。
2. MCP 是”USB-C”还是”SOAP”?
乐观派认为 MCP 是 AI 界的 USB-C——统一标准,一旦普及就不可逆。悲观派认为 MCP 可能重蹈 SOAP 的覆辙——过于复杂,最终被更轻量的 REST 取代(CLI/Code Mode 就是 REST)。
作者的观点:MCP 短期内仍是事实标准,但长期可能退缩为底层传输协议,上层被 Code Mode/SDK 包裹——类比 SOAP 退缩至企业内部,REST 成为互联网主流。关键取决于 Agent 自主能力增长速度:如果 Agent 能自读文档、写代码、处理认证,“工具声明”层就多余了。
3. MCP 的安全问题是”协议问题”还是”实现问题”?
43% 的命令注入漏洞是”协议设计缺陷”还是”开发者实现不严谨”?答案可能是两者都有:MCP 的”上下文共享”设计哲学天然鼓励宽松权限,而协议本身缺乏强制安全机制(如认证、授权、审计)。昨天学过的 ClawLess 的”形式化验证”思路或许能给 MCP 协议层提供安全补丁。
四、与已学内容的联系
| 已学主题 | 关联点 |
|---|---|
| 8-03 Tool Use 工具调用 | 今天是 8-03 的”协议层”深化——Function Calling/MCP/Skills 的三代演进是 8-03 “工具描述三要素”的工程化落地 |
| 8-05 Agentic AI 安全 | 43% MCP 命令注入、1862 个无认证 Server——正是 8-05 “权限配置过于宽松”的典型案例;Sandlock 的”策略优先”和 ClawLess 的”形式化验证”可应用于 MCP 安全加固 |
| 7-27 Skill 技能系统 | Skills 是 MCP 的上层决策层,渐进式披露解决了 MCP 上下文爆炸问题——7-27 的”可用”到 8-05 的”可信”转化路径中,MCP 是”可控”的连接层 |
| 7-28 Context Engineering | MCP 的 Token 消耗问题本质上是上下文管理问题——“全量加载工具定义”挤压推理空间,与 7-28 讨论的上下文窗口稀缺性直接相关 |
| 8-04 Planning 任务规划 | MCP 的”按需发现”替代”全量加载”——Agent 的规划不需要知道所有工具的细节,只需要知道”在需要时去哪里找”,这与 8-04 的”动态重规划”理念一致 |
💡 思考题
- 如果 Code Mode 能节省 98.7-99.9% 的 Token,为什么不是所有场景都立刻切换到 Code Mode?Code Mode 的代价是什么?(提示:考虑 Agent 自主能力要求、安全边界、可预测性)
- 你的 Agent 系统需要同时接入 10 个内部工具和 3 个第三方服务。在 Function Calling、MCP、CLI-first 三种方案中,你会如何组合?画出你的架构图,并说明每一层为什么这样选。
🎯 行动项
- 对比你的 Agent 系统中 MCP Server 的 Token 消耗:统计每个 Server 的工具定义数量和 Token 占比,找出”Token 大户”。如果某个 Server 超过上下文 10%,考虑用 Tool Search 或 CLI 替代。
- 阅读 Anthropic 的 MCP Tool Search 文档,了解懒加载机制的具体实现。思考:你的场景中,哪些工具适合”始终加载”(高频核心工具),哪些适合”按需发现”(低频专用工具)?
参考文章
- 从 Function Calling 到 MCP 再到 Skills:AI 工具调用的三次进化 — 贡献了三代演进的分层架构、MCP Host/Client/Server 模型、Skills 渐进式披露、选型建议
- MCP 走向何方:一场关于 AI Agent 基础设施的路线之争 — 贡献了 Token 成本数据、安全漏洞统计、CLI/Code Mode/Tool Search 替代方案及节省比例、行业态度转变
- 智能体的通信协议 — 贡献了 MCP/A2A/ANP 三大协议对比、设计哲学、适用场景
- 从WebMCP到AgentOS:架构、通信与资源调度的系统性演进 — 贡献了 WebMCP 技术实现、通信生命周期、AgentOS 六层架构、MCP 到 AgentOS 的定位跃迁
- Agent 的本质:用 Token 换架构 — 贡献了 Agent 出现的根本原因、ReAct→FC→MCP→Skills 演进链、MCP 缓解 N×M 到 N+M、“用 Token 换架构”本质论
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!













