内容提要
MCP协议第五版将MCP从有状态双向协议改为无状态请求-响应,删除会话层,引入MRTR和显式句柄传递。OpenClaw.NET通过PR #196升级至csharp-sdk v2.0,支持Streamable HTTP、协议协商、MCP Apps代理及Tasks扩展,成为迷你SaaS的编排操作系统,简化网关规则,实现标准运维。
延伸解读
无状态化:从“特殊协议”到“标准服务”
MCP 第五版删除会话层,改为无状态请求-响应,使 MCP 服务更像可标准运维的“迷你 SaaS”。对 OpenClaw.NET 的 Gateway 层而言,这大幅简化了网关规则,因为不再需要维护会话状态。跨调用状态(如浏览器实例)通过显式句柄传递,与 OpenClaw.NET 的 MetaSkill DAG 设计理念契合,便于将复杂任务拆解为可复用的步骤。
MRTR 与 Harness 的“中断-恢复”互补
旧协议中服务端可主动请求客户端(如用户确认),依赖持续连接,无状态架构下无法工作。第五版引入 MRTR(Multi Round-Trip Requests)解决此问题,通过 input_required 等机制实现多轮交互。OpenClaw.NET 的 Harness 引擎具备“中断-恢复”机制,与 MRTR 天然互补,使得在无状态环境下仍能处理需要用户参与的复杂流程,提升生产环境的可靠性。
协议协商与回退:生产环境的务实升级
PR #196 在 OpenClawHttpClient 中实现了协议协商:优先尝试 server/discover,若返回 404 或 -32601 则回退到 initialize,并捕获协商版本供后续请求复用。这种设计兼容新旧协议版本,确保在混合环境中平滑过渡。同时,Streamable HTTP 请求头(如 Mcp-Method、Mcp-Name)的注入,为网关路由和监控提供了标准化基础,降低了运维复杂度。
从工具到应用:MCP Apps 与 Tasks 扩展
第五版将 MCP Apps 纳入正式扩展框架,PR #196 实现了 /apps/mcp/{appId} 代理端点,使 MCP 服务不仅能提供工具调用,还能承载 UI 界面(如 OpenSandbox 沙箱渲染)。Tasks 扩展则支持异步任务(如批量处理、模型训练),与 Harness 融合后,可编排更复杂的业务流程。这标志着 MCP 从单一工具调用向完整应用生态演进,OpenClaw.NET 则充当这些应用的编排层。
Q&A
MCP协议第五版相比之前版本最核心的变化是什么?
MCP协议第五版最核心的变化是删除了协议层的会话,从有状态的双向协议变成了无状态的请求-响应协议。
MCP第五版中,跨调用状态(如浏览器实例、购物车)是如何传递的?
MCP第五版中,跨调用状态通过显式句柄传递,例如第一次调用create_browser返回browser_id,后续调用open_page(browser_id)、click(browser_id)等都需要传递该句柄。
MCP第五版引入了MRTR,它解决了什么问题?
MRTR(Multi Round-Trip Requests)解决了无状态架构下服务端无法主动请求客户端的问题,例如需要用户确认删除等场景,通过input_required、inputResponses、requestState等机制实现多轮交互。
OpenClaw.NET在PR #196中升级到了csharp-sdk v2.0,主要支持了哪些新特性?
PR #196升级到csharp-sdk v2.0,全面支持Streamable HTTP、协议协商(server/discover)、MCP Apps代理端点、Tasks扩展以及JSON Schema 2020-12。
OpenClaw.NET如何实现协议协商?
OpenClaw.NET通过OpenClawHttpClient实现协议协商:优先尝试server/discover,如果返回404或-32601则回退到initialize,并捕获协商版本供后续请求复用。
MCP第五版中,MCP Apps和Tasks扩展分别是什么?
MCP Apps是提供UI界面的扩展,通过/apps/mcp/{appId}代理端点访问;Tasks是异步任务扩展,例如批量处理、模型训练、审批流等,OpenClaw.NET通过tasks.EnableProtocol = true启用。
MCP第五版对JSON Schema的升级是什么?OpenClaw.NET如何处理?
MCP第五版将JSON Schema升级到2020-12版本,OpenClaw.NET在PR #196中处理了该升级,并支持AllowRelaxedInputSchemaValidation选项,以兼容旧版schema。
MCP第五版的无状态化对OpenClaw.NET的Gateway层有什么好处?
无状态化使MCP从需要特殊照顾的协议变成可以标准运维的服务,因此OpenClaw.NET的网关规则可以大幅简化,有利于标准运维。