2026年9月29日,Earendil正式发布了Pi 0.99.0版本。曾经在官网首页高挂不支持MCP声明、核心成员Mario Zechner甚至专门撰文论证为什么你不需要MCP的Pi团队,在这天把MCP原生内置进了核心层。
表面上看,这是一出向行业现实低头的俗套戏码。当Anthropic与OpenAI几乎把MCP做成了大模型工具链的事实标准,任何固守轻量CLI和Unix管道哲学的Agent框架都会被生态裹挟。但细看Pi 0.99.0的技术实现就会发现,这并非降旗投降,而是一场精心谋划的反向夺权。
伪方案破产与Token黑洞
此前Pi团队不愿接纳MCP,很大程度是因为现有MCP生态充斥着对上下文窗口的粗暴挥霍。大部分MCP Server仍按照最原始的Harness设计,习惯把未经裁剪的大段原始文本直接倾倒入上下文,让大模型在泥潭里翻找答案。

社区早期为了在Pi上强行使用MCP,涌现了以nicobailon/pi-mcp-adapter为代表的第三方插件。这类插件玩了一个聪明的数字把戏:通过声明一个仅占约200 token的单一通用Proxy工具和mcpScript脚本,试图规避庞大Schema对上下文的挤占。
但这套逻辑很快在真实工程中演化成了灾难。单一代理工具抹去了类型约束,把服务发现、连接、鉴权与格式解析的全部负担,统统丢回给了大模型的推理循环。模型不得不反复猜测参数、解析错误并在多轮对话中盲目重试,省下的定义成本,最终全被不可控的多轮往返Token翻倍吞噬。
随后社区派生的@ineersa/my-pi-mcp-adapter试图通过关键字搜索和按需激活类型化Schema来止血,宣称单轮对话能节省数千Token上下文。这证明了社区对动态调度的渴求,但也暴露了第三方扩展的天然天花板:没有底层运行时对模型新特性的感知能力,外挂层永远在拆东墙补西墙。
五级暴露与WASM沙盒
Pi团队意识到,MCP最致命的瓶颈是难以组合(Hard to compose)。在现行规范下,如果一个任务需要调用三次回调,模型就必须做三次完整的文本往返,把庞大的中间结果全部压进提示词窗口。

在最新发布的Pi 0.99.0中,团队重构了核心扩展系统。内置MCP不仅同时支持stdio和streamable HTTP协议、提供OAuth认证,还允许开发者通过mcp.json或pi.registerMcpServer()注册服务。更核心的改变,在于Pi设计了五种工具暴露模式(Exposure Modes):
- direct.始终声明给模型上下文,适合高频核心能力;
- codemode.仅在JS环境中可见,由代码沙盒调用并汇总结果;
- codemode-deferred.沙盒内按需搜索并动态激活;
- deferred.通过tool_search按需加载进主上下文;
- hidden.完全注册但在当前会话保持禁用。
与其配合的是Pi原生绑定的Codemode机制。Codemode基于编译为WASM的QuickJS沙盒,直接运行在Agent Harness端。大模型不再被当成一个单步按按钮的操作工,而是变成了一个写代码的调度员:模型直接编写一段JavaScript代码,利用内置的prepareLoadout()、outputSchema和带有调用记录限制的嵌套ctx.executeTool(),在本地沙盒内顺序或并发编排多个MCP工具调用。
海量原始数据在沙盒内被就地过滤、清洗,最终只有经过裁剪的structuredContent与isError标识会被送回模型上下文。
殊途同归的权力转移
如果把视角从Pi挪开,会发现整个行业正在形成一种心照不宣的默契。

OpenAI在其最新的Tool Search规范里,明确建议对庞大工具集采用命名空间(Namespace)或MCP服务器级别的延迟加载(defer_loading: true),并建议将每个命名空间严格控制在10个函数以内以削减上下文消耗。而Anthropic在Advanced Tool Use方案中,同样在推行延迟工具加载(Deferred Tools)与代码执行(Code Execution)的结合。
协议提供原材料,但调度权必须收归运行时。
各方看似实现细节不同,本质上是在做同一件事:终结模型对外部协议的直接盲目依赖。MCP一度试图让外界以为它能一统接口天下,但在真实的工程重力面前,静态描述是抵挡不住上下文爆炸的。
古人讲「善战者,因其势而利导之」。Pi这次推翻旧言,不是向MCP妥协,而是把MCP降维成了一个纯粹的远程数据获取接口,然后用自己的WASM代码沙盒把调控权力夺了回来。
- 风险.当编排逻辑被封装进QuickJS沙盒、由模型自动循环执行时,传统工具调用中单步人工确认(Approval)的安全边界被彻底击穿了;如果在沙盒代码中触发了连带的破坏性操作,现有的事后审计几乎无能为力。
这场版本更新释放的信号非常明确:给Agent喂工具的粗放时代已经结束。MCP Server开发者如果继续抱着返回未裁剪大文本的旧习惯,迟早会被这种沙盒编排机制排除在可用链路之外。
