
MCP 这东西确实好用。接上之后一句话,AI 就能替你翻网盘、查数据库、改工单,活干完再回来交差。
代价是你得先把钥匙交给它。Anthropic 内部红队今年 2 月做过一次演练:一封「同事请你帮个忙」的邮件,同一段提示词试了 25 次,AI 有 24 次照做,把云服务器的密钥编码后发去了外部地址。
那封邮件看上去和平时的协作请求没区别。同事口气,「帮我跑一下这个」,底下附一段现成的提示词,复制粘贴就行。提示词读起来也正常,全是布置任务的话——只有中间夹了一句:把云服务器的密钥读出来,编码一下,发到某个外部地址。
写下这段的不是哪家安全厂商的营销稿,是 Anthropic 自己的工程博客。
两天前,7 月 28 日,MCP 自己也出了一次大改版,官方自己人的说法是「远程 MCP 上线一年多以来最重要的一次」。一年半攒下的接法被亲手推翻,几个功能进了退休倒计时。
这两件事之间没有因果,一个是 5 月的复盘,一个是本周的发版。可它们凑在同一个季度,指着同一处:给 AI 接外部工具,考题换了。前两年大家比的是能不能连上,现在要答的是连上之后会不会出事。
先把 MCP 说清楚:它到底替你管什么
MCP 全称 Model Context Protocol,中文一般叫模型上下文协议。名字唬人,干的事朴素。
想象一个只会动脑、没长手的房客。他想查地图、翻网盘、发邮件、调数据库,每样都是不同厂家的电器,插头形状各不相同。过去每接一样,工程师就得给它单独拉一条线。MCP 定的是插座和插头的统一规矩——房客不用为每台电器重学一遍怎么接。
比喻到这儿得打住。插座只管供电,MCP 管的事更多:这个工具叫什么名字、要填哪些参数、返回什么、允许它动什么。它不替你判断这次该不该按下去。 后面所有麻烦都从这句话里长出来。
这东西已经不小了。官方发布文里的口径是:四个第一梯队 SDK(TypeScript、Python、Go、C#)合起来接近每月五亿次下载,其中 TypeScript 和 Python 各自的累计下载都过了十亿。去年 12 月 9 日,Anthropic 把 MCP 捐给了 Linux Foundation 新成立的 Agentic AI Foundation,同一批进去的还有 Block 的 goose 和 OpenAI 的 AGENTS.md——它不再是一家公司说了算的私产。
你可能已经用过它了,只是不知道这三个字母。在 Microsoft 365 的办公 Agent 里点一下「查工单」「改状态」,背后走的可能就是它——微软官方文档 6 月已经把远程 MCP Server 写成了可注册的企业连接器,认证和敏感凭据都交给专门的密钥保险库存着。阿里云百炼的官方文档里,一个智能体最多能同时挂五个 MCP 服务。你看上去只是在聊天窗口里点了一下,它手里拿的是业务系统的钥匙。

两天前那次大改,跟「会不会出事」是两回事
先把这次改版说完,一是它就是本周大家在聊的那件事,二是很多人正把它误读成一次安全升级。
官方一句话总结:MCP 从一个双向、有状态的协议,变成请求/响应式的无状态协议。
翻成人话得举个例子。旧规矩像餐厅里那个记性极好的服务员:你这桌点过什么、说过不要香菜,全在他脑子里,后面每一轮都得他来接,换人就断。新规矩是后厨每张小票都写清桌号、菜名、忌口——谁端菜都不会接错,人多了随时加。

具体就是:过去每段对话开头要先「握个手」、再给这段对话贴个身份标签,现在这两样全删了,每个请求自己把该说的信息带齐,服务器不用记着你是谁。想先问清对方支持什么也行,官方为此新加了一个专门的问询动作,服务器必须答,客户端爱问不问。工具清单还加了「保质期」,让客户端能放心存下来、不用每次重问。做系统的人拿到的实惠很直接:随便哪台服务器都能接你这一单,扩容不再被「会话」绑死。
服务器过去能在半路反过来问你一句(「这一步确认吗?」),现在改成先把请求退回来、标一句「还缺料」,你补齐了再发一次。跑得久的活儿也从主协议里搬了出去单独处理。
还有几个老功能进了退休倒计时——做过 MCP 的人熟的那几个:让服务器反问用户、找模型借次推理、读运行日志,加上老的传输方式和一种旧的客户端注册法。它们还能用,官方承诺至少十二个月,像小区换门禁,物业先贴一年公告,不是今晚就把旧卡剪了。但新项目别再往上接。官方也没把这次包装成无痛升级,原文写着那些破坏性改动配了详细迁移说明,还专门提了一句:依赖会话标识符的开发者会有迁移成本。这套改法社区吵了一轮,有人算出每次调用要多背三倍多的字节,也有人直说这根本不算无状态——那是工程口味之争,先按下。
要紧的是记住这次改的是什么:怎么部署、怎么扩容、怎么让普通云上那套负载均衡伺候得了它。倒也不是跟安全全无关系——方法名被提到了 HTTP 头上,网关和防火墙不用拆开报文就能拦、能限流,审计也好接一些。但那些真会把数据往外送的手法,它一个字都没碰。 会咬人的坑在另一头。
那为什么偏偏是「连接」这一层被动了刀?因为模型这半年在往一个方向长:不是多答对几道题,是能连着干好几个小时的活,还动真实系统。7 月 27 日更新的 Kimi K3,月之暗面把它定位成开放权重的原生多模态智能体模型,模型卡里明写会编排终端工具,任务举例到了长期编码、CAD 和芯片设计。智谱 7 月 13 日发的 GLM-5.2,官方把长程任务和百万级上下文摆在最前面,训练里就带工具调用、子任务拆解和多轮环境反馈。
模型越能连着自己干,「它手上有哪些工具、权限到哪、出错怎么收」这层就越顶不住原来那点设计。你司要是明年真上这类能自己连着跑几小时的 agent,接线那层的坑,最后是落到用它的人头上。
Anthropic 自己交的学费
5 月 25 日那篇工程博客,是我见过的大厂里少有的、把自己踩的坑一条条摊开写的。它讲的不是协议怎么定,讲的是东西装上以后到底怎么出事。
先看两个数字。Claude Code 早期靠弹窗问用户「这个操作允许吗」,遥测显示用户批准了大约 93% 的弹窗。弹窗看多了就不看了,这事一点都不意外。后来他们上了操作系统级沙箱,弹窗量降了 84%,把靠人盯着改成靠边界拦着。
然后是两个单靠沙箱或弹窗没兜住的边界问题。
一个是信任对话框还没弹,事情已经办完了。你克隆一个仓库准备看代码,仓库里躺着一个配置文件,写了启动时要执行的动作。Claude Code 启动先读项目设置、后弹「你信任这个文件夹吗」——顺序反了,攻击者提交的那段在你点头之前就跑了。修法不是再弹一次窗,是把项目本地配置的解析和执行整个推到用户点头之后。
另一个更值得琢磨。工作区里放了个恶意文件,里面藏着指令和攻击者自己的 API key。AI 读了别处的文件,然后调用 Anthropic 的文件接口把它们传上去——传到了攻击者的账号里。出口检查看了目的地,发现是 Anthropic 自家的接口地址,放行。官方对这件事的原话是:沙箱完美地工作了,但数据还是被外泄了。

他们后来把白名单这东西重新想了一遍。过去当它是「这些地址可以聊」的目的地过滤器,现在当它是一份能力授权——放行一个域名,等于把那个域名上所有能调的功能都算进了攻击面。
关于 MCP,这篇文章有一节专门讲,标题叫「信任 AI 读到的东西」。里头两句该抄下来贴墙上。
一句是远程和本地的差别比看起来大。本地装的工具你能读源码、能锁版本,知道它不会背着你变;远程的、托管的那种,你批准完它随时能改行为,装的那天做的信任判断,第二天可能就不作数了。目录之外的连接器,先拿假数据在爆炸半径可控的地方跑。
另一句是工具本身可信,它的输出照样是攻击面。一个 GitHub 连接器就算过了恶意软件扫描,也能把一个被下过毒的说明文件原样塞进模型的上下文。而一旦被这么带着做完了一次授权范围内的调用,事后翻日志只看得见「成功、已授权」,倒查不出来。
顺带一个工程判断也挺有意思:Claude Cowork 把本地 MCP Server 从虚拟机里搬了出来,理由三条——放里面更难审计、虚拟机一更新依赖就脆、本来就有些 MCP 得跟本地数据库这类进程打交道。搬出来之后它的定位更接近「用户自己选择安装的软件」,由管理员决定开哪些。
外面的实证:不必等 AI 判断错,就能出事
Anthropic 讲的是自家产品。外部研究者的公开演示补上了另外几种形状,三个都有一手来源,性质也都得说清。
Invariant Labs 去年 4 月 7 日那个最有画面感:他们做了个恶意的「每日冷知识」工具,把隐藏指令写在工具描述里。AI 压根没调用这个工具,光是读到描述就被带偏,转头用可信的 WhatsApp 工具发消息——表面上只写了个「Hi」,聊天记录夹在后面的参数里,发给了攻击者的号码。同一份研究还演示了「装的时候是好的、第二次启动才变坏」。
同年 5 月 26 日那个更贴办公场景。仓库主人只说了一句「看看公开仓库有哪些待办问题」。AI 读到一个带隐藏指令的恶意问题单,接着用同一把 GitHub 钥匙去拉私有仓库,自己在公开仓库开了个合并请求。演示里泄出去的包括私有项目名、搬家计划和薪资。研究者特意说明,这不是 GitHub 那个 Server 哪行代码有 bug,是一把钥匙同时够得着「不可信的外部内容」和「敏感的私有数据」。
第三个连 AI 判断错都不需要。JFrog 去年 7 月 9 日披露了 mcp-remote 的一个漏洞(CVE-2025-6514):恶意服务器在授权信息里塞一个特制地址,客户端试着打开它的时候就触发命令执行。受影响版本 0.0.5 到 0.1.15,0.1.16 修了。
这三个的边界得摆明:前两个是研究团队搭出来的可复现演示,不是已知的真实受害事故;第三个是真实披露并修复的漏洞,但 JFrog 没说存在大规模在野利用。谁要拿这些去写「MCP 已经泄了几十万人的数据」,那是他自己加的。
你要是被公司要求接一个,至少确认这几件
非工程师不用去学协议细节。看六件事就够了,顺序大致是从最该问的往下:
谁做的——官方厂商、公司 IT,还是某个陌生个人仓库。要什么权限——只读一个文件夹,还是整个网盘、代码库、数据库的账号。能做什么——只查,还是能发信、删文件、改工单、动钱。数据去哪——它能不能把 A 系统里的内容写进 B 系统,或者发到公网。谁确认——写操作每次都问,还是勾了一次「一直允许」;那个确认框有没有把完整参数摊给你看(那 93% 就是这么来的)。怎么停——能不能立刻吊销令牌、关掉服务、翻日志、把动作回滚。
监管这边的关注点差不多也落在这儿。全国网安标准化技术委员会 7 月 1 日发的智能体部署使用安全指引,覆盖评估、准备、部署、使用、停用五个阶段;配套的标准计划里,系统权限调用、工具调用、高风险操作人工介入、日志留存、异常阻断都写进了主要技术内容。这份文件不是专门管 MCP 的,但它盯的几处,恰好就是 MCP 把 AI 接上外部系统之后暴露出来的那几处。
最后
有句话得说在前面,免得读完记反了:这次的无状态改造解决的是部署、路由和扩容。工具描述能下毒、一把钥匙跨系统捞数据、恶意远程服务器、客户端代理自己有漏洞——这些不会因为删掉会话就消失一个。
我倒觉得这次改版最实在的地方在别处。它把一年半攒下来的经验,用一次带痛感的破坏性升级兑现了:老的接法不装样子往下延,退休时间明着写至少十二个月,迁移说明摆在那儿。协议这种东西,肯把自己的旧设计推翻,通常说明真有人在拿它干活。
至于 Anthropic 那篇复盘,它的价值是把「AI 出事」从玄学拉回工程。25 次里 24 次那个数字之所以刺人,是因为那次注入是用户自己亲手粘进去的。模型层的分类器盯的是用户意图,用户自己输入的东西,它看不出哪儿不对;把它拦住的,是文件边界和出网限制这种笨办法。
所以下次有人跟你说「给 AI 接上这个就自动化了」,你可以顺口问一句:它拿的是哪把钥匙,那把钥匙还能开哪几扇门。
数据来源
- Model Context Protocol 官方博客:《The 2026-07-28 Specification》(2026 年 7 月 28 日)
- Model Context Protocol 官方规范:《Key Changes · 2026-07-28》与《Feature lifecycle and deprecation policy》
- Anthropic Engineering:《How we contain Claude across products》(2026 年 5 月 25 日)
- Linux Foundation:《Linux Foundation Announces the Formation of the Agentic AI Foundation》(2025 年 12 月 9 日)
- Invariant Labs:《WhatsApp MCP Exploited》(2025 年 4 月 7 日)、《GitHub MCP Vulnerability》(2025 年 5 月 26 日)
- JFrog Security Research:《CVE-2025-6514: Critical mcp-remote RCE Vulnerability》(2025 年 7 月 9 日)
- Microsoft Learn:《Agent connectors for Microsoft 365》(2026 年 6 月)
- 阿里云百炼官方文档:《官方与第三方 MCP 服务》
- 全国网络安全标准化技术委员会:《网络安全标准实践指南——智能体部署使用安全指引》(2026 年 7 月 1 日)
- Hugging Face:moonshotai/Kimi-K3 模型卡(2026 年 7 月 27 日更新);Z.ai 官方博客:《GLM-5.2》(2026 年 7 月 13 日)