MCP 协议:从 M×N 到 M+N

Agent 开发进阶6讲解 5

MCP 把「每个应用 × 每个工具」的适配矩阵变成「应用接协议 + 工具接协议」,解决的是 Function Calling 的工具发现与分发问题,不改变模型调用工具的机制。2026-07-28 的无状态改版让 Server 能扛住负载均衡:会话状态从连接里挪到了请求头。

也叫:MCP · Model Context Protocol · MCP Server · 工具发现 · 无状态改版

核心概念:先打比方,再给定义出自 T3-4

比喻:MCP 之于 AI 应用,像 USB-C 之于外设。

这个比喻广为流传,但只对一半,面试里最好补上另一半:USB-C 统一的是物理接口和供电协商,你插上去之后设备能不能用、驱动对不对、有没有恶意固件,接口标准并不负责。MCP 同理——它统一了"工具怎么被发现、怎么被描述、怎么鉴权、怎么传输",但它不保证工具好不好用,也不天然保证安全。把这层补充说出来,比单纯背比喻高一个层级。

定义MCP(Model Context Protocol,模型上下文协议) 是一个开放协议,规定 AI 应用如何与外部工具、数据源交互。它由 Anthropic 于 2024 年 11 月提出并开源,现由 Linux Foundation 旗下的项目治理(截至 2026-08)。

它解决的核心问题是集成的组合爆炸

原文示意
没有 MCP:M 个客户端 × N 个系统 = M×N 个私有适配器
   Claude Desktop ─┬─→ 自研适配器 → Jira
   Cursor ─────────┼─→ 自研适配器 → Jira      ← 同一个 Jira 集成,写了 M 遍
   自研 Agent ─────┴─→ 自研适配器 → Jira

有 MCP:M + N
   Claude Desktop ─┐
   Cursor ─────────┼─→ [MCP] ─→ Jira MCP Server(只写一次,谁都能接)
   自研 Agent ─────┘            GitHub MCP Server
                                内部 CRM MCP Server

和 Function Calling 的关系——这是必考题,一句话说清:

FC 是模型层的能力,MCP 是应用层的协议。两者不是替代关系,是上下游关系。

FC 解决的是"模型怎么表达它想调用什么"(输出结构化调用意向,见 T3-2);MCP 解决的是"这些工具从哪来、怎么被发现、怎么鉴权、怎么跨进程传输、版本怎么演进"。一次 MCP 工具调用的实际链路是:MCP Server 提供工具清单 → 客户端把清单翻译成模型的 tools 参数 → 模型用 FC 输出调用意向 → 客户端通过 MCP 把调用转发给 Server 执行。FC 依然在链路中央,MCP 换掉的是它两端的管道。

USB-C 保证插得上,不保证插得对
MCP 统一了工具怎么被发现、鉴权、传输;好不好用、安不安全,它一概不保证

USB-C · 接口标准管的

口型、供电协商一次谈妥,插上就通

一根线换掉一堆专用接头 —— 组合爆炸消在这一层

对应
MCP · 协议管的

工具怎么被发现、描述、鉴权、传输

开放协议,Anthropic 于 2024 年 11 月提出并开源,现由 Linux Foundation 旗下的项目治理

M×N → M+NstdioStreamable HTTP
USB-C · 接口标准不管的

驱动对不对、固件有没有毒,它不问

外设是别人做的,风险跟着这根线一起进来

对应
MCP · 协议不管的

工具好不好用、安不安全,都不保证

接第三方 Server = 在你的 Agent 里执行别人写的代码,并让别人写的文字进入模型上下文

工具投毒rug pull越权与混淆代理供应链
FC 是模型层的能力,MCP 是应用层的协议,上下游关系不是替代关系。一次调用的实际链路:Server 出工具清单 → 客户端翻成模型的 tools 参数 → 模型用 FC 输出调用意向 → 客户端经 MCP 转发执行。FC 仍在链路中央,MCP 换掉的是它两端的管道。

以上节选自T3-4 MCP 协议与 2026 无状态改版——从 M×N 到 M+N,再到能扛住负载均衡,读全文能看到前后语境。

延伸阅读

考这个知识点的题1

会连带问到5