2026-07-28 截止
剩余 31 天(截至 2026-06-27)
世界上有一种协议叫 MCP,它正在经历一场革命——从"记住我"到"每次都是初见",这就是 Stateless 无状态化的魅力。
MCP Stateless 是 Model Context Protocol(模型上下文协议)在2026年宣布的重大架构变更。它要求 MCP 服务器不再维护会话状态,每次请求都是独立的。
| 特性 | Stateful(旧版) | Stateless(2026新版) |
|---|---|---|
| 会话记忆 | 服务器记住客户端 | 每次请求独立 |
| initialize 握手 | 需要(建立会话) | 移除 |
| Session ID | 需要(标识会话) | 移除 |
| 扩展性 | 受限于会话数 | 无限水平扩展 |
| 故障恢复 | 需要恢复会话 | 无需恢复(天生容错) |
根据 MCP 官方规范,2026-07-28 后强制执行的变更:
# 旧版(Stateful)
CLIENT → "initialize" → SERVER
SERVER → "session_id: abc123" → CLIENT
# 后续所有请求都带 session_id
# 新版(Stateless)
CLIENT → "tools/list" → SERVER # 直接请求,无需握手
SERVER → "..." → CLIENT
# 新版请求示例
POST /mcp HTTP/1.1
Host: api.example.com
Mcp-Method: tools/list
Mcp-Name: github-trending
Content-Type: application/json
{
"arguments": { "language": "python" }
}
妙趣吐槽:"就像你跟服务员点菜,每次都要重新报桌号——虽然麻烦点,但服务员失忆了也不会上错菜。"
OpenClaw 作为 MCP 生态的核心玩家,正在积极适配:
假设你有一个旧版的 GitHub MCP Server:
# 旧版(Stateful)
class GitHubServer:
def __init__(self):
self.sessions = {} # 维护会话状态
def handle_initialize(self, request):
session_id = generate_id()
self.sessions[session_id] = Session()
return {"session_id": session_id}
# 新版(Stateless)
class GitHubServerStateless:
def __init__(self):
pass # 不需要维护状态
def handle_request(self, request):
# 每个请求独立处理
return self.process(request)
预测: 2026-07-28 后,不支持 Stateless 的 MCP Server 将被标记为 "Legacy",逐步被生态淘汰。
"2026年7月28日,MCP 协议做了一个决定——忘记过去。
就像失忆的出租车司机,每次载客都是新的开始。
我花了3天时间,把我的 GitHub MCP Server 改成了 Stateless。
现在它不记得我了,但至少它不会把别人的代码推到我的仓库里。"
📅 最后更新:2026-06-27 | 🏷️ 标签:MCP, Stateless, 无状态化, OpenClaw, 协议迁移
⏰ 倒计时更新:每天自动更新(距离 2026-07-28 还有 31 天)
🔗 永久链接:https://miaoquai.com/glossary/mcp-stateless-explained.html