协议层

Model Context ProtocolMCP,模型上下文协议

给 AI 应用和外部工具之间装一个标准插座:工具方写一次 server,应用方实现一次 client,双方各做一次就能互通。本页是这一册的网页版,讲义 PPT 见页脚链接。

现行规范 2026-07-28 2026-07-28 新版已发布 · 已按新版更新

01是什么 / 为什么#mcp-what-why

MCP 是一套开放标准,规定 AI 应用与外部工具之间「怎么发现能力、怎么调用、怎么回传结果」。它解决的是集成复杂度:没有标准时,M 个应用接 N 个工具要写 M×N 套定制对接;有了标准,工具方写一个 server、应用方实现一个 client,各做一次即可,复杂度塌缩成 M+N。

为什么是「标准」而不是「又一个模型能力」

把它想成 USB-C。在通用接口出现之前,每个设备配一根专用线,充电线、数据线、视频线各不通用;约定一个通用口之后,M 个设备加 N 类外设,各自符合标准一次就够。AI 世界原本的问题一模一样:同一个 GitHub 工具,要为 Claude 写一遍、为 Cursor 写一遍、为每个 IDE 再写一遍。

做成一个 MCP server 之后,任何支持 MCP 的客户端都能直接接上去读 issue、提 PR——工具方和应用方解耦,各做各的。生态越大,省得越多,这是它区别于「多一个模型功能」的地方。

和 Function Calling 是分工,不是替代

这是现场最容易问混的一处。两者作用在不同层:

维度函数调用(Function Calling)MCP
解决什么让模型决定调哪个函数、传什么参数让工具「怎么被发现、被调用」跨应用标准化
作用层模型能力层:一次推理里的一步集成协议层:应用与工具之间的通道
谁定义工具每个应用自己在代码里声明一遍工具方在 server 里声明一次,人人可用
换个应用怎么办要重写对接做成 server 后,任何 MCP 客户端直接接

关系是叠加:MCP 内部仍然靠模型的 function calling 做决策,它做的是把那「一次调用」标准化、跨厂商化。二者不是二选一。

治理:它不是某一家的私有协议

2024 年 11 月由 Anthropic 首次开源,2025 年被主流 AI 应用与 IDE 快速采用, 2025 年 12 月捐给 Agentic AI Foundation(AAIF)——Linux 基金会旗下的中立基金会,由 Anthropic、Block、OpenAI 等共同发起。协议变更走 SEP(Specification Enhancement Proposal,规范增强提案)公开流程。

核实 2026-07-08,来源 aaif.io 官方博客。这一条对客户的用处很直接:接入 MCP 不等于绑定某一家大模型厂商。

02什么时候不该上 MCP#boundary

判断的法则只有一条:这套工具会不会被多个应用或多个团队复用。会复用,MCP 这层标准才收得回成本;只服务一个应用,直接写 Function Calling 更省事。标准的价值来自复用面,没有复用面就只剩额外一层。

三条替代路径,各自适用的场景不同:

直接写 Function Calling

工具只服务一个应用、由同一个团队维护、短期内不打算给别人用。少一层协议、少一层部署,调试路径也短。

内部 SDK 或共享库

多个应用要复用,但都在同一技术栈、同一代码仓里。共享库的类型检查和重构支持比跨进程协议强,没必要为内部复用付出协议的代价。

直接暴露 OpenAPI

消费方不是 AI 应用,或者已有成熟的 API 治理体系而 AI 只是其中一个消费者。这时把 MCP 当作 API 之上的可选适配层,而不是替代品。

反过来,出现下面任一条就值得上:工具要被两个以上 AI 应用接入;工具方与应用方不是同一个团队;需要让工具能力可被发现、可被集中治理和审计。

这一节是网页版在讲义之外补的:讲义把这个判断散在对练与动手做里,没有正面展开替代路径。判据本身来自讲义已有口径,未引入新的外部事实。

03协议解剖#mcp-protocol

三个角色各管一件事:Host 管权限、Client 管连接、Server 管能力。通信底座是 JSON-RPC 2.0。服务端对外提供三类东西——工具、资源、提示词,区别在于「谁触发」。

三个角色

主机(Host)是用户面对的 AI 应用,如 Claude Desktop 或 IDE,负责权限与用户交互;客户端(Client)是 Host 内部为每个 server 建的连接器,一对一维护会话;服务端(Server)是工具与数据的提供方,声明自己能做什么。

一个 Host 可以挂多个 Client,每个 Client 专线连一个 Server。Claude Desktop 里同时接了 filesystem 和 GitHub 两个 server,它内部就起两个 client,各连一个,互不干扰。

Host(主机) 用户面对的 AI 应用 · 管权限与用户交互 Client 1 连接器 · 一对一维护会话 Client 2 连接器 · 一对一维护会话 专线 专线 Server 1 · filesystem 提供能力:读写本地文件 Server 2 · GitHub 提供能力:读 issue、提 PR Server(服务端) 工具与数据的提供方 · 管能力 互不干扰:一个 Client 只认一个 Server,一条连接出问题不影响另一条
三角色分工:Host 管权限、Client 管连接、Server 管能力。

一次连接怎么开始

经典流程三步:初始化握手(initialize)双方交换协议版本与能力清单 → 能力发现,客户端拉取 tools/list、resources/list、 prompts/list → 正常调用。握手时 server 说「我支持 tools 和 resources、不支持 prompts」,client 就只去拉这两类,能力协商避免瞎调。

Client Server 01 initialize 握手 回:协议版本 + 能力清单(我支持 tools 和 resources,不支持 prompts) 02 tools/list 能力发现 只拉 server 声明支持的那几类——能力协商避免瞎调 03 tools/call 正常调用 新版(2026-07-28)删掉第 01 步与会话 ID,上下文改为随每个请求走
经典三步:先握手对齐能力,再发现,后调用。

2026-07-28 已按新版更新新版已删掉这套握手、改走无状态:删掉 initialize 与会话 ID,上下文随每个请求走。理解经典三步仍是基础,但届时这一节的机制描述需要改写——细节见传输与版本演进。

三大原语:两把刀切同一件事

第一把刀按「能做什么」切:

原语是什么谁触发典型例子
工具 Tools模型可调用的动作,会执行、可能改状态模型自主决定查数据库、发邮件、创建 issue
资源 Resources可读取的数据或上下文,只读无副作用应用或用户挂载引用一个文件、一段记录、一份文档
提示词 Prompts预置的对话模板,把最佳用法固化用户显式选用「代码审查」「总结会议纪要」模板

第二把刀按「谁控制」切,决定的是责任落点——这一刀比上一刀更影响架构:

原语谁控制责任落点
工具 Tools模型控制(model-controlled)确认弹窗、权限与审计都要按「模型会乱调」设防
资源 Resources应用控制(application-controlled)数据可见性由应用负责,越权看数据在这层查
提示词 Prompts用户控制(user-controlled)入口放在界面让用户主动挑,不由模型代选

控制者决定展示方式、确认时机、权限与审计责任。选错控制面,用户体验和审计责任就会错位——比如把一个有副作用的动作做成资源,就绕过了本该有的确认环节。

口径依据官方规范 2025-11-25,核实 2026-07-12,来源 modelcontextprotocol.io 规范页。

反向能力与弃用走向

除服务端三原语外,协议还定义了反向能力:Sampling(服务端反过来请客户端的模型帮忙生成)、 Elicitation(服务端向用户追问补充信息)、Roots(客户端告知可访问的目录范围)。

2026-07-28 已按新版更新新版已把 Roots、Sampling、Logging 正式列入弃用(Deprecated),建议改用工具参数、直连模型 API、stderr 或 OpenTelemetry 等替代,保留至少 12 个月缓冲。选型时不要把架构压在这几项上。

真实报文:一次 tools/call 的来回

下面是一次完整往返。点任一高亮字段看它的作用与它牵到哪一节;未启用 JavaScript 时,全部字段说明以列表形式在报文下方给出。

① 客户端 → 服务端:调用工具

{
  "jsonrpc": "2.0",
  "id": 7,
  "method": "tools/call",
  "params": {
    "name": "query_db",
    "arguments": {
      "sql": "SELECT region, SUM(rev) FROM sales GROUP BY region"
    }
  }
}

② 服务端 → 客户端:返回结果

{
  "jsonrpc": "2.0",
  "id": 7,
  "result": {
    "content": [
      { "type": "text", "text": "[{\"region\":\"华东\",\"rev\":10200000}, ...]" }
    ],
    "isError": false
  }
}
jsonrpc
协议版本标识,恒为 "2.0"。MCP 的所有通信都是标准 JSON-RPC 2.0 报文,不是自造格式——这正是它能被现有 API 治理体系直接接管的原因。
id
把一问一答配对起来的编号。响应必须带回同一个 id,所以同一条连接上可以有多个请求并行往返而不会串线。日志里靠它把一次调用的两端串起来。
method
方法名,决定这是哪一类操作。tools/list 列工具、tools/call 调用工具、resources/list 列资源。前缀就是三大原语的名字。
params.name
要调用哪个工具。这个名字来自 server 在 tools/list 里声明的清单,模型只能在清单范围内选——能力协商在这里兑现。
params.arguments
结构化参数,由模型根据工具描述填出来。这里是工具描述质量的直接后果:描述含糊,模型就会传错参数或在不该调的时候调用。写 docstring 要当成写给模型的产品说明,见动手写 server。也正因为模型能自主构造这一段,它是安全那一节里最需要设防的位置。
result
成功时的返回体。与之互斥的是 error——JSON-RPC 用哪个字段出现来区分协议层面的成败,两者不会同时出现。
result.content
回传内容,是一个数组,每项带 type。工具返回的不只是纯文本,这个结构为多种内容类型留了位置。
result.isError
业务层面的失败标记。注意它和 JSON-RPC 的 error 是两件事: error 表示这次调用在协议层就没走通(方法不存在、参数不合法), isError: true 表示调用成功抵达、但工具自己执行失败(如 SQL 报错)。排错时先分清是哪一类,能省掉大半时间。

整段就是标准 JSON-RPC:可读、可校验、可审计。这也是「为什么选 JSON-RPC」的答案——简单、语言无关、天然可序列化,MCP 流量因此能轻松纳入现有 API 治理。

04传输与版本演进#mcp-transport

同一套报文可以本地进程直连,也可以走 HTTP 远程。选型口诀:只在本机用、碰本地资源走 stdio;要多人或多应用共享、跨网络走 Streamable HTTP。但真正要先定的不是传输,是信任模型。

维度stdio(标准输入输出)Streamable HTTP(可流式 HTTP)
跑在哪本地:Host 把 server 当子进程拉起远程:server 是独立 HTTP 服务
适合谁本地工具(读本地文件、跑本地命令)团队共享、SaaS 化、跨网络的 server
鉴权靠本地进程边界,通常无需额外认证需要 OAuth 等认证
部署随客户端启动,零运维像普通 Web 服务:容器或函数计算

语法相同不代表信任相同

这是这一章最值钱的一句。stdio 的边界是进程隔离,凭据走环境变量或本地文件,信任前提是「你启动的那个命令及其来源」——本地不自动等于安全。Streamable HTTP 的边界是网络策略,靠 TLS、Origin 校验、OAuth 的 audience 限定,信任前提是网络边界与授权配置。

换传输等于换一整套进程、网络、凭据边界。从 stdio 迁到 HTTP 时鉴权设计要重做,不是改个 URL。所以顺序应该是先定信任模型,再选传输形态。

口径依据官方规范 2026-07-28,核实 2026-07-30。Streamable HTTP 自 2025 年 3 月起取代旧的 HTTP+SSE(Server-Sent Events),是当前的标准传输。

五版脉络:一路在解决「企业规模化」

2024-11 首发 2025-03 Streamable HTTP OAuth 授权 2025-06 Elicitation 结构化输出 2025-11-25 当前稳定版 生产可用基线 2026-07-28 无状态核心 待复查 早期解决「能跑通」,后面几版全在解决「多车道、能鉴权、能规模化扩容」
五版脉络:协议在稳步往企业基础设施的方向走。

早期几版解决「能跑通」,后面几版全在解决「多车道、能鉴权、能规模化扩容」——协议在稳步往企业基础设施的方向走。

版本传输授权状态模型这一版解决了什么
2024-11-05stdio + HTTP+SSE无有状态先能跑通:三原语与 JSON-RPC 2.0 基座
2025-03-26Streamable HTTP(取代 HTTP+SSE)OAuth 2.1 框架有状态 · Mcp-Session-Id能远程、能鉴权:工具注解、批处理
2025-06-18Streamable HTTP服务端定为 OAuth 资源服务器;RFC 8707 受众校验有状态输出能对接程序:结构化输出、Elicitation
2025-11-25Streamable HTTPOIDC 发现、增量授权、CIMD有状态往企业靠:图标元数据、实验性 Tasks
2026-07-28Streamable HTTP(无会话)RFC 9207 签发方校验;凭据绑签发方;DCR 转 CIMD无状态能规模化:无状态核心、MRTR、头路由、可缓存列表、扩展框架

无状态核心:新版改动最大的一处

旧的有状态模型要先 initialize 握手拿会话 ID,整通会话认一个实例,于是需要会话粘连(sticky session)或共享会话存储,「这个会话归哪台机器」得一直记着。

无状态之后,每个请求自带协议版本与客户端信息,像每封信都写全地址,谁收都能处理。前面挂一个普通轮询负载均衡就行,任意请求打任意实例。结果是 MCP server 可以像普通无状态 Web 服务一样扩容,这是「向企业规模化倾斜」最实的一步。

三个扩展方向

Extensions

把非核心能力拆成独立、可单独版本化的扩展(反向 DNS 命名),核心保持精简,生态各自演进。

Tasks

长任务从实验特性转为官方扩展,提供任务句柄:发起后可查询、更新、取消,不必卡在一次同步调用里。

MCP Apps

server 可下发交互式 HTML 界面,在沙箱 iframe 里渲染,界面与工具调用走同一套协议——工具返回不再只能是纯文本。

加上正式弃用政策(Active → Deprecated → Removed,至少 12 个月缓冲),新版给客户两个安心点:能力可扩展、变更有节奏。

新版好在哪:五个能拿去跟客户讲的收益

下面这张表按收益组织,不按变更组织——客户关心的是「我得到什么」, 不是「协议删了哪个字段」。

你得到什么具体变成什么样靠哪条改动拿什么证明
server 能当普通 Web 服务养容器随时扩缩、滚动升级不断会话,函数计算这类随起随停的形态也能跑删会话与握手,上下文随每个请求走前面挂一个普通轮询负载均衡即可,不再需要会话粘连或共享会话存储
现有网关直接能治理按方法名与工具名做路由、限流、审计,跟治理普通 REST 一个姿势Mcp-Method / Mcp-Name 成为必带请求头网关规则写在请求头上,不用为 MCP 单独改造一层解包逻辑
工具列表能缓存,直接省 token少一堆 list 轮询;工具顺序固定后,大模型的提示词缓存更容易命中列表结果必带 ttlMs 与 cacheScope;工具列表建议定序本册已核实:GitHub 官方 server 94 个工具约 17,600 tokens 常驻上下文
调用能并进现有可观测体系一条 trace 从应用一路串到工具调用,不用为 MCP 自造一套埋点_meta 里定下 traceparent / tracestate / baggage 传播约定接上后与既有 APM 同图排障
变更有节奏,企业敢立项任何特性从弃用到最早移除之间至少十二个月,且走公开提案流程首个正式的特性生命周期政策这是客户问「会不会说变就变」时最有力的一句回答

还有一条不在表里但值得提:扩展框架成形——非核心能力拆成可单独版本化的扩展 (Tasks、MCP Apps 都在其中),核心保持精简、生态各自演进。对客户的意思是: 以后加能力不必等整个协议大版本。

什么场景因此变了:六个以前难做、现在能做的

场景旧版为什么难新版怎么解客户长什么样
对外提供 MCP 的 SaaS 平台会话粘在实例上,横向扩容要么配粘连、要么建共享会话存储任意请求打任意实例,扩容回到普通 Web 服务的做法把自家能力开放成 MCP 给客户接的平台方
函数计算 / Serverless 部署函数实例随起随停,存不住会话,基本没法用无状态天然契合,按调用付费、闲时不烧钱调用量波动大、不愿养常驻实例的团队
拿现有 API 网关统一纳管要解开 JSON 体才知道调的是什么,网关得改造成 MCP 专用按 Mcp-Method / Mcp-Name 两个头路由,现有网关加条规则即可已有网关与 API 治理体系的中大型企业
接了几十个 server 的智能体平台工具定义随每条消息进上下文,token 烧得快且只能靠轮询感知变化列表可缓存加定序,轮询变少、提示词缓存更易命中工具生态大、成本压力集中在上下文的平台
长耗时工具(报表、批处理、深检索)卡在一次同步调用里,超时就丢,没有标准的查询与取消姿势Tasks 转为官方扩展:句柄轮询查询、可回传输入、可取消跑分钟级甚至更久任务的业务系统
要过安全评审的行业授权细节留白多,评审时逐条解释成本高签发方校验、注册收口、凭据不串用三条写进规范,加上弃用政策金融、政务这类先过评审才谈落地的客户

怎么用这张表:客户问「升级有什么好处」,别背九项变更——先认领他属于哪一行, 再用那一行的「旧版为什么难」和他现在的痛点对上号。 对不上号的,就老实说这版对他影响不大。

口径:场景为本册按官方变更推导的落地判断,非官方清单;协议事实来源见本节末与来源页。

逐项对照:2026-07-28 相对 2025-11-25 改了什么

官方 changelog 给的是九项主变更加十二项次要变更。下表按对落地的影响排序, 每行标出对应的 SEP 编号,客户要追溯时给得出出处。

变更旧 · 2025-11-25新 · 2026-07-28对你意味着什么SEP
会话Mcp-Session-Id 头维持会话删掉会话与该头;要跨调用留状态,改用服务端铸造的句柄,当普通工具参数传不用粘性会话,普通负载均衡就能横向扩2567
握手initialize / initialized 两步握手删握手;每个请求在 _meta 里自带协议版本与客户端能力,版本不匹配返回 UnsupportedProtocolVersionError少一轮往返,任意实例都能接同一个请求2575
版本协商靠握手交换能力新增 server/discover,服务端必须实现,广告支持的版本、能力与身份版本选择前置,探活与兼容判断更直接2575
服务端反向请求roots/list、sampling/createMessage、elicitation/create 由服务端发起改走多轮请求(MRTR):返回 input_required,客户端带 inputResponses 重试原请求不再需要一直开着的回调通道2322
结果字段结果无类型标记所有结果必带 resultType(complete / input_required)旧服务端省略时按 complete 处理,兼容有据2322
订阅通知HTTP GET 端点 + resources/subscribe收口成一条长连 subscriptions/listen,客户端按类型订阅变更通知只剩一条流,网关好治理2575
断流恢复Last-Event-ID 可续传、可重投取消可恢复与重投;断了要用新的请求 ID 重发客户端要自己做幂等与重试,别假设续得上2575
长任务实验性 tasks/result,阻塞等结果转为官方扩展 io.modelcontextprotocol/tasks:tasks/get 轮询 + tasks/update 回传,去掉 tasks/list长任务有了标准姿势,且能单独版本化2663
端点精简ping、logging/setLevel、roots 变更通知全部删除;日志级别改为每个请求在 _meta 里带实现面变小,少三处要维护的端点2575
请求头路由要解 JSON 体才知道调的是什么Mcp-Method / Mcp-Name 成为必带头网关、限流器、WAF 不解包就能路由——网关侧最实的一条2243
列表可缓存只能靠 listChanged 通知五个列表类结果必带 ttlMs 与 cacheScope(public / private)能缓存、能让共享中间层判断可否缓存,少一堆轮询2549
工具顺序顺序不保证tools/list 建议返回确定性顺序为的是提高大模型提示词缓存的命中率—
链路追踪无约定_meta 里定下 traceparent / tracestate / baggage 传播约定MCP 调用能并进现有可观测体系,不用自造一套414
错误码资源未找到用 -32002改为 -32602;并划分 -32020–-32099 为规范保留段错误码不再各家自定义,排错时口径统一—

四项弃用,和一个十二个月的窗口

这一版首次带来正式的特性生命周期政策:Active → Deprecated → Removed 三态, 从弃用到最早可移除之间至少十二个月。口径要说准——这是「弃用到移除」的窗口, 不是「新版本只管十二个月」。说岔了会变成给客户的错误承诺。

已进入弃用的官方给的替代我现在该做什么
Roots改用工具参数、资源 URI 或服务端配置传目录盘一遍哪些工具靠 roots 拿路径,改成显式入参
Sampling直接对接大模型厂商 API服务端别再借客户端的模型;自己接 API、自己记账
Loggingstdio 写 stderr,或走 OpenTelemetry顺手把 trace 上下文接上(新版已定 _meta 传播约定)
HTTP+SSE 传输迁到 Streamable HTTP2025-03-26 起就该迁了,这次正式进弃用态,别再拖
OAuth 动态客户端注册(RFC 7591)改用客户端 ID 元数据文档(CIMD)旧机制保留兼容;新接入直接上 CIMD,别再往注册端点建

迁移成本落在哪,官方说得很直白:依赖会话标识的实现受影响最大——这正是无状态改造的代价所在。 Tier 1 SDK 已扩至六个,其中 TypeScript、Python、Go、C# 都已出支持版本,包内附迁移说明。

核实 2026-07-30,来源 MCP 官方 2026-07-28 发布文与 changelog。 规范已于 2026-07-28 正式发布,本节按官方 changelog 逐项更新。本节仍是全册时效性最强的一处,下一次定点复查 2027-01-31。

05动手写 server#mcp-server

写 server 的核心工作不是写代码,是想清楚哪些是动作(工具)、哪些是只读上下文(资源)、哪些是可复用模板(提示词)。代码本身用官方 Python SDK 几行就能跑起来。

最小可运行的 server

pip install "mcp[cli]"

from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo-weather")          # 起个 server 名

@mcp.tool()
def get_weather(city: str) -> str:
    """查询某城市的当前天气(示例返回假数据)"""
    return f"{city}:晴,26°C"

if __name__ == "__main__":
    mcp.run()                          # 默认走 stdio 传输

装饰器 @mcp.tool() 会自动把函数签名、类型注解和 docstring 转成规范的工具描述——客户端在 tools/list 里看到的就是它。所以函数注释是写给模型看的,要写清什么时候用、参数是什么。这一点直接决定报文里 arguments 那一段填得对不对。

另外两个装饰器对应另外两个原语:@mcp.resource("file://readme") 暴露只读上下文, @mcp.prompt() 把一段最佳用法固化成模板。同一个 server 里三类能力可以齐活。

选栈两条硬事实:①官方 Tier 1 SDK 六种——TypeScript / Python / C# / Go / Rust / Ruby(Tier 是支持等级承诺,不是安全认证);②面向新规范的正式版已发,不再是 beta:Python SDK v2.0.0(2026-07-28,与规范同日)把 FastMCP 更名为 MCPServer,装饰器写法不变;TypeScript SDK 前一天发 2.0.0 并拆成 @modelcontextprotocol/core / client / server 等一组包。v1 线转维护(Python 当前 v1.30.0)——上面这段 FastMCP 写法在 v1 内仍可用,暂不升级的把依赖钉上限(mcp>=1.28,<2),做迁移评估时记得新版类名已换。

SDK 版本口径核实 2026-10-20,来源 官方 SDK 页与两个 SDK 仓库的 GitHub releases。不可外推边界:Tier 1 是支持等级承诺,各语言 SDK 的正式版进度并不同步,选栈前按目标语言的仓库发布页核当日版本。

开发顺序:先单测 server,再接模型

官方调试工具 MCP Inspector 相当于电工的万用表:npx @modelcontextprotocol/inspector 连上你的 server,用图形界面查看它暴露了什么、逐个点击调用、看真实的报文往返。

先用 Inspector 把 server 单独调通,排除模型这个变量,再接进真实客户端。把「server 对不对」和「模型会不会用」拆成两件事排查,定位速度差一个数量级。

最常见的落地姿势:把现有 REST API 包一层

现有 REST API 已有后端 不用改、不重写业务 MCP 包装层 @mcp.tool() 描述 · 转调 · 整理返回 · 鉴权 这一层是全部工作量所在 任何 MCP 客户端 Claude · IDE · 自研平台 处处可接 工作量口径:有现成 API 时,一个中等复杂度的 server 通常几人天——不是重写业务系统
最常见的落地姿势:给已有 API 套一个标准转接头。

像给老电器配一个转接头:后端不改、业务不重写,套一层标准口就能插进所有 MCP 客户端。包装层做四件事——描述、转调、整理返回、鉴权。

已有「查订单」接口,就写一个 query_order 工具,内部转调它、把 JSON 里的关键字段挑出来返回。给客户的工作量口径:有现成 API 时,一个中等复杂度的 server 通常几人天,不是重写业务系统。

几百个接口怎么排队:别一个 API 起一个 server,也别一次全包。相关接口按业务域聚成少数几个 server,否则光是部署与目录管理就先失控;批次上先包 AI 应用真会用到的那几个——工具定义是随每条消息进上下文的(见运行期成本),包得越全,每一轮对话都在为没人调用的工具付钱。所以「全量改造」既不必要也不划算,它天然是件可以分批交付的工程。

06生产落地#mcp-production

demo 跑通只是起点。企业里要回答三个问题:远程 server 怎么鉴权、怎么部署与集中管控、去哪儿发现可信的 server。三个答案分别是:标准 OAuth、MCP 网关、私有 registry。

鉴权:就是标准 OAuth,不是另起一套

本地 server 靠进程边界就安全;远程 server 暴露在网络上,必须认证「谁在调、有没有权」。 MCP 的授权底座自 2025-06-18 起是 OAuth 2.1(在 2.0 之上收紧,配合 OIDC,OpenID Connect):客户端拿令牌访问,server 校验令牌与权限。像进写字楼——本地 server 是自家客厅,进门即信任;远程 server 是办公楼,得先在前台换访客证,刷卡才能进对应楼层。

关键话术:能直接对接客户现有的身份与访问管理(IAM,Identity and Access Management)体系。新版要求客户端校验令牌签发方、注册时声明应用类型、凭据绑定签发方——都是在堵「令牌被张冠李戴」的坑。安全评审里有一条 MUST 级红线:token 透传明令禁止——server 不得把收到的令牌原样转发给下游,RFC 8707 的 audience(受众)校验是强制项,防的正是「拿着给 A 的令牌去调 B」这类混淆代理(confused deputy)攻击。

还有容易漏的一层:MCP 层的授权只管到「这个用户能不能调这个工具」,管不到「这个用户能不能看这条数据」。工具内部访问后端时如果用的是一个通用高权限账号,前面令牌校验做得再干净,数据面仍然是所有人共用一份最高权限——越权是在这里发生的,不在协议层。所以下面验收线里的「后端二次授权」是独立的一条:后端要按调用者身份自己再判一次,而不是信任「能调进来就是有权」。

为什么要一个 MCP 网关

企业里 server 会越来越多,还有员工想接外部 server。网关在客户端与众多 server 之间做统一入口:集中认证、限流、审计、按策略放行或拦截。相当于公司的统一收发室,所有进出的流量都在这里登记、安检、留档,而不是每个工位各收各的。

有了网关才谈得上「这个部门只能用这几个 server」「所有调用留审计日志」「外部 server 先过白名单」。治理有了着落。

和已有的 API 网关是分工,不是替换——这是客户第一个会追的问题。MCP 流量本身就是标准 JSON-RPC over HTTP,TLS、限流、审计、认证这些通用治理,现有网关本来就接得住;MCP 网关补的是它看不懂的那层协议语义:按 server 与工具的粒度授权、server 的发现与白名单、连接前审查工具描述。能复用的就复用,别让客户以为要为 MCP 再买一整套治理。

去哪儿发现 server

官方 Registry 是公开 server 的元数据仓库,记录每个 server 叫什么、在哪、怎么装。它像应用商店的货架说明卡:不托管代码,也不替你做安全审查。

建议复查官方 Registry 仍是 preview、未正式发布(GA),可能有破坏性变更,且不收私有 server。企业内网的 server 必须自建私有 registry——可实现同一套接口以复用生态工具。这是数据不出门与合规的必然要求,也是「企业要自建私有目录」这个立项的依据。

核实 2026-07-08,来源 registry 官方页。不可外推边界:Registry 仍是 preview 且不收私有 server——上面有条目不等于通过了安全审查,企业内网该自建的私有目录一样得建。

运行期成本:贵在上下文,不在调用2026-07-20

客户问"这东西贵不贵",答案往往不在他以为的地方。MCP 的运行期开销主要不是每次调用的网络往返,而是工具定义常驻上下文——而且它随每一条消息进上下文,不是每会话一次,所以成本是按轮次乘的。

数字说明条件与不可外推边界
17.6k tokens GitHub 官方 MCP server 暴露 94 个工具,仅工具定义就占约 17,600 tokens Atlassian 工程博客 2026-03-29 的对照表;未公布模型与计数方法。这是单个大 server 的量级,不能外推成"每个 server 都这么贵"——工具少、描述简的 server 只有几百到几千
降到 ~3.9k / ~0.5k 同样 94 个工具,经描述压缩后分别降到约 3,900(低压缩)与约 500(最激进) 同一来源、同一场景。压缩是牺牲描述细节换上下文,而描述质量直接影响模型会不会误调——见动手写 server,不是免费的
1–2ms / 会话 MCP 流量经网关一跳的额外延迟(加密迭代调到约 100 次之后) Envoy AI Gateway 官方基准 2025-12-08,MacBook Pro M1 八核、简单 echo 工具、按会话计而非按调用;默认加密配置(10 万次 KDF 迭代)下是数十毫秒。单机基准,不能当生产 SLA

这三个数改变什么判断

别把工具堆进一个 server

工具数直接乘进每轮上下文。一个 90+ 工具的 server 光定义就吃掉 200k 窗口的近 9%,接几个这样的大 server,还没开口就先付掉可观的一块,而且每一轮都要重付一次。按用途拆 server、按场景只挂需要的那几个。

网关那一跳通常不是瓶颈

调优后 1–2ms 的量级,相对模型推理可以忽略。客户拿"多一层代理会不会慢"反对上网关时,真正该谈的是加密配置,不是要不要网关。

选型时先问"暴露多少工具"

这个问题比"支持哪些功能"更能预测实际成本。工具多不等于能力强,但一定等于上下文贵。

以上三条均为 2026-07-20 联网核实,来源 Atlassian MCP Compression 与 Envoy AI Gateway 基准。成本类数字比协议条款更易过期——模型窗口、计价、客户端的延迟加载策略都在变,引用前先核日期。客户端侧已有缓解手段(工具定义超过上下文一定比例时改为按需检索加载),但各家实现与阈值不同,不写进本页口径。

上线前的五条验收线

Inspector 里调通只是联调,不是生产结论。终极判断是一句话:任意一次调用都能回放「谁、经哪个版本、调了什么、为何被允许、结果如何」。

验收线查什么要什么证据
版本与协商锁定稳定基线、能力协商取交集、未知能力要拒绝初始化记录、版本兼容表、错误路径用例
身份与授权Origin 校验、令牌 audience 限定、scope 最小化、后端二次授权负向测试、策略日志、审计记录
供应链与工具安全server 来源可信、版本哈希锁定、副作用受控、高危操作要确认来源清单、红队用例、审批与补偿记录
可靠性超时、限流、熔断、容量、故障恢复压测报告、告警配置、演练记录
业务质量输出正确、权限正确、用户可验收评测集、人工抽检、反馈闭环

对应到云上

技术环节代表性做法(多厂商,非绑定)
Server 托管函数计算或容器服务跑自建 server;主流云与平台提供托管运行时与目录
统一鉴权API 网关加 OAuth,对接各云 IAM 做认证、限流、审计
远程接入部分厂商提供远程 MCP 托管与 Streamable HTTP 出口
现成生态官方 servers 仓库加各厂商官方 server(数据库、SaaS 类)
私有目录自建私有 registry 管理内部 server,数据不出门

只列有真实关联的环节,同一环节给多厂商代表性选项,不绑死单一供应商。各云的具体服务能力以 2026 年现状为准,属于变动最快的一类信息,引用前先核日期;完整清单见讲义第 5 章。

07安全#mcp-security

MCP 让工具即插即用,也把「插进来的东西可信吗」变成头等问题。风险不是理论上可能,是已经大规模发生。但每一类都有对应防护,关键是默认就要设防。

四类特有威胁

连接 server 读工具描述 模型决定调用 构造 arguments server 执行 动用其权限 返回结果 威胁打在哪一环 工具投毒 调用之前就中招 rug pull 信任后偷换行为 confused deputy 借你的权限越权 对应的防线 来源可信 连接前审查描述 锁版本 版本哈希固定 最小权限 能只读就别给写 网关审计 留痕 + 异常监控 贯穿全链:高危操作关掉自动批准、加人工确认——单条最立竿见影
四类威胁各打在调用链的不同环节,防护也就分布在不同层。裸奔 server 不在链上——它是把整条链直接暴露出去。

工具投毒(Tool Poisoning)

恶意 server 把攻击指令藏在工具描述里,客户端一连上、模型一读描述就被注入——发生在任何实际调用之前。描述即攻击面。

地毯式抽换(Rug Pull)

一开始是正常 server,赢得信任后偷偷把工具行为或描述改成恶意。先立牌坊后作恶。

混淆代理(Confused Deputy)

server 借用客户端或用户的权限,去做用户没有授权的事,权限被越权放大。

裸奔 server

把 server 无鉴权直接暴露公网,等于把内部能力开放给所有人。

风险有多真实

数字说明边界
40+ CVE 2026 年 1–4 月 MCP 生态披露,横跨各语言 SDK 与参考实现,受影响组件合计下载量约 1.5 亿,官方参考 server 也中招 统计窗口为 2026 年 1–4 月,不可外推为全年或当前值
72.8% MCPTox 基准 20 个 agent 设置中的最高投毒成功率(o1-mini) 限定条件是「开启自动批准」;关掉自动批准后此数字不适用,引用时必须带上这个前提
CVE-2025-6514 mcp-remote 的远程执行漏洞,恶意端点经构造授权 URL 达成 特定组件的特定版本,不代表协议本身有此缺陷

核实 2026-07-08,来源 dev.to 汇总与 arXiv 2508.14925。上面第三列是这些数字的不可外推边界——带出门时必须连边界一起带,否则就成了误导。

官方指引

2026 年 6 月,NSA 与 CISA 等发布《MCP: Security Design Considerations》,从架构设计角度给出安全建议,覆盖认证授权、供应链可信、注入面防护、部署边界。客户问「你们凭什么说 MCP 能安全落地」时,可以直接引用它作背书,并对照说明方案覆盖了其中哪几条。

获取方式见本模块电子书书单第 4 条。

防护组合拳:威胁与对策一一对位

对策治哪一类要点
人在环上工具投毒高危操作(删数据、发钱、对外发消息)默认人工审批,绝不开全自动批准——这一招最立竿见影
来源可信并锁版本rug pull、投毒只用可信来源的 server,锁定版本,连接前审查工具描述
最小权限confused deputy每个 server 只给完成任务所需的最小权限与数据范围,能只读就别给写
集中管控与审计裸奔 server走 MCP 网关统一认证、限流、留痕,别裸暴露公网,持续监控异常调用

最容易被忽视也最致命的两条:无鉴权裸暴露公网,以及图省事开全自动批准。这两条几乎是事故直通车,也最容易避免。

08上手路径与排错#mcp-cheatsheet

从零到能上生产的四步,以及出问题时的排查顺序。

阶段做什么这一步验证了什么
① stdio 起步本机跑通最小 server零运维地验证「这件事有没有价值」
② Inspector 调通官方调试器单测工具server 本身对不对,排除模型变量
③ HTTP 化加鉴权OAuth/OIDC 接现有 IAM能不能被多人多应用共享
④ 网关治理白名单、审计、限权能不能规模化,这是上生产的前提

排错三板斧

先用 Inspector 单测 server → 再接客户端分层定位 → 最后查工具描述是不是让模型误调。顺序反了会浪费大量时间:模型「不肯用」和 server「跑不通」是两类完全不同的问题。

现场高频追问

只收会改变某个决定的问题——会改变技术方案、风险判断、验收方法、对客沟通或下一步行动。每题给结论、给背后的机制或权衡、给一个可执行的下一步,并回链依据。

每题标出它加入本题库的日期:2026-07-08 的来自讲义首版对练页,2026-07-20 的是网页版新立、讲义里没有,2026-07-23 是按客户交锋场景补的四题(改造范围 / 权限越权 / 已有网关 / 上下文成本)。

MCP 和 Function Calling 到底什么关系,是不是替代?2026-07-08

不替代,是叠加。Function Calling 是模型「决定调哪个工具」的能力,MCP 是「工具怎么被标准接入」的协议;MCP 内部仍然用 function calling 做决策。

问混的代价是选型错位:以为二选一,就会在「已经有 FC 了」的理由下否掉 MCP,也就丢掉跨应用复用这件事本身。

下一步 让对方说出他那套工具将来要被几个应用接——一个就别上,两个以上再谈。

依据 是什么 / 为什么

这是不是 Anthropic 的私有协议,用了会被锁定吗?2026-07-08

不会。2025 年 12 月已捐给中立的 AAIF 基金会(Linux 基金会旗下),开放治理,变更走公开的 SEP 提案流程。

这个问题问的其实不是治理结构,是「三年后还在不在」。答的时候要落到两个可验证的点:治理是否中立、演进是否公开——这两点它都占。

下一步 现场可以直接翻 aaif.io 的治理页与 SEP 列表给对方看,比口头保证有用。

依据 治理 · src-aaif

我们已经在用 Function Calling 了,还有必要上 MCP 吗?2026-07-08

看复用面。工具只服务一个应用,直接写就好;一旦要被多应用或多团队反复接,MCP 才收得回这层标准的成本。

标准的价值来自复用面,没有复用面就只剩额外一层协议和一层部署。反过来,出现「两个以上 AI 应用要接」「工具方与应用方不是同一个团队」「要集中治理和审计」任一条,就值得上。

下一步 拿他手上三个真实集成场景逐个套这条判据,当场分出该上和不该上的。

依据 什么时候不该上 MCP

能不能不让模型自己决定调用?我们不放心。2026-07-20

能,而且这正是三原语的设计意图。工具(Tools)是模型控制的,但资源(Resources)由应用挂载、提示词(Prompts)由用户显式选用——把能力放在哪个原语上,就决定了谁来触发它。

这是全册最影响架构的一处:控制面决定展示方式、确认时机、权限与审计责任。把一个有副作用的动作做成资源,就绕过了本该有的确认环节;反过来,把只读上下文做成工具,就白白引入了模型误调的风险。

下一步 把他要接的每个能力过一遍「谁该触发它」,再决定落到哪个原语,而不是一律做成工具。

依据 三大原语:两把刀

月底新版发布,我现在的 server 要立刻改代码吗?2026-07-08

不必立刻。2026-07-28 已是现行规范,2025-11-25 进入兼容期;Tier 1 的 TS/Python/Go/C# 都出了支持版本,弃用政策承诺任何特性从弃用到移除至少留 12 个月。

真正要提前做的不是改代码,是做影响评估:盘出有没有依赖 Roots / Sampling / Logging 的地方——这三项在新版被列入弃用。

下一步 盘一遍现有集成对这三项的依赖,列出替代方案,排进 12 个月缓冲期内的迭代。

依据 传输与版本演进 · src-rc

开发一个 MCP server 到底要多少工作量?2026-07-08

有现成 API 的话,一个中等复杂度的 server 通常几人天:描述工具、转调后端、整理返回、加鉴权,四件事,不是重写业务系统。

工作量的大头往往不在代码,在把工具描述写准——描述含糊会导致模型误调或不调,返工成本比写代码高。

下一步 先挑一个现成 REST 接口做包装原型,用 Inspector 点通,拿实测人天去报价。

依据 动手写 server

员工乱接外面的 server 怎么治?2026-07-08

上 MCP 网关做统一入口:白名单放行、集中审计、按部门限权。别让每个客户端各连各的、无人管控。

这个问题的实质是供应链风险——恶意 server 可以把攻击指令藏在工具描述里,客户端一连上、模型一读描述就被注入,发生在任何实际调用之前。网关是唯一能在流量层拦住它的位置。

下一步 画一张目标架构图:客户端 → 网关 → 若干 server,标出认证、审计、白名单各在哪一层。这张图是售前现场最常被要求画的。

依据 为什么要一个 MCP 网关 · 安全

我们内部系统的 server 能放到官方 Registry 吗?2026-07-08

不能。官方 Registry 只收公开 server,且仍是 preview、未正式发布。内部 server 必须自建私有 registry。

还有一层容易被忽略:官方 Registry 只是元数据货架,不托管代码、也不做安全审查——就算能放,也不该把它当企业应用商店用。

下一步 把「涉不涉及内部数据或私有网络」当判据,划出哪些 server 必须进私有目录。

依据 去哪儿发现 server · src-registry

MCP 出了这么多 CVE,还能用吗?2026-07-08

能,但要用对姿势。CVE 多恰恰说明它被广泛使用、被认真审视;官方已有安全指引和修复机制,关键是默认设防、及时更新。

两条几乎是事故直通车,也最容易避免:把 server 无鉴权裸暴露公网,以及图省事开全自动批准。注意 72.8% 那个投毒成功率有前提——它测的是「开启自动批准」的场景,关掉之后不适用,引用时必须带上这个限定。

下一步 对照 NSA/CISA 指引做一次安全自查表,逐条打勾或标注缺口——这张表是应对客户安全评审最有力的交付物。

依据 安全 · src-cve · src-mcptox

上线之后出了问题,怎么定位是谁的责任?2026-07-20

先分层:用 Inspector 单独跑 server 排除模型变量,再接客户端复现。协议层与业务层的失败也要分清——JSON-RPC 的 error 表示调用没走通(方法不存在、参数不合法),result.isError 表示调用到了但工具自己执行失败。

能不能定位,取决于上线前有没有留下回放能力。终极判断是一句话:任意一次调用都能回放「谁、经哪个版本、调了什么、为何被允许、结果如何」——五个字段缺一个,事后就说不清。

下一步 对照生产验收五条检查证据是否齐备:初始化记录、策略日志、审计记录、压测报告、评测集。

依据 上线前的五条验收线 · 报文字段

我们有几百个内部 API,是不是要全改造成 MCP server?2026-07-23

先定性再定量:不是改造,是包装——后端不动、业务不重写,MCP 层只做描述、转调、整理返回、鉴权四件事;而且不该全包。筛选判据就一条:这个能力会不会被两个以上 AI 应用或多个团队用到,会才包。落地上按业务域把相关接口聚成少数几个 server,第一批只包 AI 真用得上的那几个,其余按需再加。

客户听到「几百个」脑子里算的是重写业务系统的预算,一算就否掉。纠正成「加一层薄包装 + 只包该包的」,立项就从一个大项目变成可分批的小工程。而且包得越全越亏——工具定义随每条消息进上下文,没人调用的工具每一轮都在收费。

下一步 让他把接口清单按「哪几个是 AI 应用真会用到的」排一遍,第一批只取最前面那几个做包装原型,拿实测人天再谈范围。

依据 动手写 server · 什么时候不该上 MCP

让模型自己调工具,它是拿谁的权限在干活?出事怎么办?2026-07-23

拆三层答,客户真正担心的是第三层。①谁触发:高危操作默认人工审批,绝不开全自动批准——这一条最立竿见影。②拿谁的令牌:远程 server 走 OAuth 2.1,token 透传是规范里 MUST 级的禁令,server 不得把收到的令牌原样转给下游,RFC 8707 的 audience 校验是强制项,防的就是「拿着给 A 的令牌去调 B」。③后端还要再判一次:MCP 层的令牌只证明「这个用户能调这个工具」,不等于「这个用户能看这条数据」。

真正的事故形态不是模型乱调,是权限被放大:server 挂一个通用高权限账号连后端,前两层做得再干净,谁问都能问出全公司的数据。三层里第三层最常漏,因为它不在协议里、在客户自己的系统里——主动挑明这一点,安全评审会顺很多。

下一步 让他画一遍「令牌从谁手上来、在哪一层停、后端凭什么身份查数据」这条链,断在哪一层当场就看得出来。

依据 鉴权:就是标准 OAuth · 安全

我们已经有 API 网关和集成平台了,这不是重复建设吗?2026-07-23

不重复,而且你已有的那套大半能直接用上。MCP 流量就是标准 JSON-RPC over HTTP,TLS、限流、审计、认证这些通用治理现有网关本来就接得住,不用为 MCP 再买一套;要补的只是它看不懂的那层协议语义:按 server 与工具粒度授权、server 发现与白名单、连接前审查工具描述。至于集成平台,它接的是系统与系统之间事先编排好的流程;MCP 多出来的是让模型自己发现有哪些能力、自己决定用哪个——两者不解决同一件事。

这类问题答成「我们的更好」就输了:对方要保护的是已有投资和已有团队。改叙成「你的治理层继续用,我只补它看不懂 MCP 的那一小块」,决策就从换平台降级成加一层,阻力小一个量级。反过来,如果 AI 只是众多消费者之一、又已有成熟 API 治理,那把 MCP 当可选适配层就够,不必强推。

下一步 拿他现有网关的能力清单逐条对:能接管的划掉,划不掉的那几条就是这次立项的真实范围——范围小反而更容易过。

依据 为什么要一个 MCP 网关 · 什么时候不该上 MCP

加了这一层,成本和延迟要增加多少?2026-07-23

贵的地方和客户以为的不一样。网关那一跳通常不是瓶颈——调优后是 1–2ms 的量级,相对模型推理可以忽略。真正的成本在工具定义常驻上下文,而且它随每一条消息进上下文、不是每会话一次,所以是按轮次乘的:GitHub 官方 server 那 94 个工具,光定义就约 17.6k tokens。压缩描述能把它降下来,但描述质量直接决定模型会不会误调,不是免费的。

这改变的是选型时该问哪句话:不是「支持多少功能」,是「暴露多少工具」。工具多不等于能力强,但一定等于上下文贵。报价时要按轮次算上下文账,只算调用次数会漏掉大头。

下一步 把要接的 server 按工具数排一遍,当前场景用不上的先不挂;客户拿「多一层代理会不会慢」反对上网关时,把话题拉回加密配置,而不是要不要网关。

依据 运行期成本

09上云怎么落地#cloud

前面几节讲协议本身怎么工作。这一节换个视角:把 server 从 demo 搬进企业,每个环节在云上对应什么现成能力、该顺着追问客户什么、哪些事云替你做不了。同一环节给多厂商代表选项,不绑死一家。

同一环节给多厂商代表选项,不绑死单一供应商;只列有真实云关联的环节,没有就不硬凑。服务能力以各云 2026 年现状为准,报方案前按当期文档复核。

从 demo 到生产:server 放哪、谁能调、去哪找

技术环节代表性云服务(多厂商,非绑定)给客户一句话
Server 托管函数计算 / 容器服务跑自建 server;主流云与平台提供托管 MCP 运行时与目录(如 Bedrock AgentCore Runtime、Gemini Enterprise)server 就是个小服务,云上部署走熟路
统一鉴权API 网关 + OAuth,对接各云 IAM 做认证、限流、审计把 MCP 流量纳入现有 API 治理,不另起炉灶
远程接入Cloudflare 等提供远程 MCP 托管与 Streamable HTTP 出口远程 server 像普通 Web 服务一样上线
现成生态官方 servers 仓库 + 各厂商官方 server(数据库、SaaS 类);API→MCP 桥(AgentCore Gateway、Apigee)把现有 API 转成 MCP 工具先用现成的,只为私有系统写自己的 server
私有目录自建私有 registry(实现官方 OpenAPI 接口)管理内部 server内部 server 数据不出门、集中可控

顺着追问什么:你们打算暴露多少个工具?这个数直接乘进每一轮对话的上下文,比「支持哪些功能」更能预测账单。现有的 API 网关和 IAM 是哪一套,MCP 流量能不能直接挂上去、不另买一套治理?哪些 server 会碰内网数据——那些就是必须进自建私有目录的。

云替你做不了什么:末句改为:「官方 Registry 仍是 preview、未 GA,可能有破坏性变更,而且只是元数据货架——不托管代码、不做安全审查、不收私有 server,上面有条目不等于通过了安全审查,更不能直接当企业应用商店用。」

本节服务清单与「给客户一句话」与讲义各章的「上云怎么落地」页同源,未引入新事实;「顺着追问什么」与「云替你做不了什么」两格是网页版补的售前视角。不可外推边界:这是「哪个环节有云服务可用」的地图,不是选型结论——具体产品的地域可用性、配额、计价单位与生命周期状态会月级变动,出方案前按当期官方文档逐项复核。

11来源与核实#sources

本页时效性数字均经联网核实后写入,完整登记(事实 × 核实日期 × 信源)见本模块 MANIFEST。核实窗口 2026-07-08 至 2026-08-01(运行期成本三条为 2026-07-20 补核,SDK 版本口径为 2026-08-01 补核)。引用任何数字前先核日期。

来源 ID信源支持什么不能支持什么
src-aaifaaif.io 官方博客治理归属、SEP 机制、捐赠时间不涉及协议技术细节
src-specmodelcontextprotocol.io 规范页现行规范口径、三原语与控制面定义不代表尚未发布的新版行为
src-rcMCP 官方博客 RC 发布文2026-07-28 版的逐项改动清单与迁移路子RC 锁定不等于正式发布,条款可能微调
src-sdkmodelcontextprotocol.io/docs/sdk;python-sdk / typescript-sdk 两仓 GitHub releases官方 SDK 支持等级、语言覆盖,以及各语言正式版的发布日与版本号支持等级是承诺,不是安全认证;发布节奏各语言不同步
src-registryregistry 官方页Registry 的定位与 preview 状态不能作为企业级目录方案的依据
src-cvedev.to 汇总2026 年 1–4 月 CVE 体量与代表案例二次汇总,单条 CVE 细节以官方通告为准
src-mcptoxarXiv 2508.14925(MCPTox)自动批准场景下的投毒成功率基准环境结论,不可外推到关闭自动批准的部署
src-cost-tokAtlassian 工程博客《MCP Compression》2026-03-29工具定义常驻上下文的 token 量级(94 工具 ≈ 17.6k,压缩后 3.9k / 0.5k)未公布模型与计数方法,量级参考不作精确报价
src-cost-latEnvoy AI Gateway 官方基准 2025-12-08网关一跳额外延迟(调优后 1–2ms / 会话)单机 echo 工具、按会话计的基准,真实负载与 KDF 迭代数不同结果差异大

下一次定点复查:2027-01-31。新版规范正式发布,需整体复核的是协议解剖的生命周期一节、传输与版本演进整节,以及页顶的版本状态条。本页所有带 待复查 标记的位置就是复查清单。