🎯 什么是MCP无状态化?
MCP(Model Context Protocol)无状态化是2026年最重要的协议升级。目标是让MCP Server不再依赖会话状态,从而实现:
- 水平扩展:多个MCP Server实例无需共享状态
- 故障恢复:Server重启后客户端无需重新连接
- 负载均衡:请求可以路由到任意实例
📋 关键变更
1. 移除initialize握手
旧规范:客户端必须先发送initialize请求,Server返回initialized通知。
新规范:直接发送工具调用请求,无需握手。
# 旧方式(已废弃)
Client → Server: {"method": "initialize", "params": {...}}
Server → Client: {"method": "initialized"}
# 新方式(2026-07-28起)
Client → Server: {"method": "tools/call", "params": {...}}
# 无需initialize!
2. 移除Session ID
旧规范:每个会话有一个唯一的Session ID,包含在请求头中。
新规范:不再需要Session ID,每个请求都是独立的。
# 旧方式 Headers: X-MCP-Session-ID: abc123 # 新方式 Headers: Mcp-Method: tools/call Mcp-Name: search
3. 新增Mcp-Method和Mcp-Name Header
为了在无状态模式下路由请求,新增两个Header:
Mcp-Method:MCP方法名(如tools/call)Mcp-Name:工具名(如search、fetch)
POST /mcp HTTP/1.1
Host: example.com
Mcp-Method: tools/call
Mcp-Name: search
Content-Type: application/json
{
"arguments": {"query": "OpenClaw tutorial"}
}
🚀 迁移步骤
步骤1:检查当前MCP Server版本
# 查看OpenClaw使用的MCP版本 openclaw mcp --version # 输出示例: # MCP Version: 2026.6 (Stateful) # ⚠️ 需要升级到 2026.7+ (Stateless)
步骤2:更新OpenClaw配置
# ~/.openclaw/config.yaml
mcp:
version: "2026-07" # 启用无状态模式
stateless: true
# 迁移选项
migration:
skipInitialize: true
removeSessionId: true
addMethodHeader: true
步骤3:测试无状态模式
# 启动OpenClaw(无状态模式)
openclaw --mcp-stateless
# 测试MCP调用
curl -X POST https://your-server.com/mcp \
-H "Mcp-Method: tools/call" \
-H "Mcp-Name: search" \
-H "Content-Type: application/json" \
-d '{"arguments": {"query": "test"}}'
⚠️ 兼容性警告
如果你的客户端(如ClawHub Skills)仍在使用旧版MCP,需要在2026年7月28日前完成迁移,否则将无法连接。
- 检查所有已安装的Skills的MCP版本
- 联系Skill作者获取更新
- 或者使用兼容层(不推荐)
✅ 迁移检查清单
- ☐ 备份当前MCP配置文件
- ☐ 更新OpenClaw到v2026.7+
- ☐ 修改config.yaml启用stateless模式
- ☐ 测试所有MCP工具调用
- ☐ 更新文档和教程
- ☐ 通知用户迁移完成