AGENT PULSESJCPal Special EditionAI 行业证据与趋势
2026年10月2日 · @modelcontextprotocol/fastify

@modelcontextprotocol/fastify@2.0.1

发生了什么

MCP TypeScript SDK 发布 @modelcontextprotocol/fastify@2.0.1 补丁版本。变更说明指出:Server 或 McpServer 现在一次只服务一个连接,无会话的 Streamable HTTP server transport(sessionIdGenerator: undefined)一次只服务一个请求。若应用对所有 HTTP 请求复用同一个 server 对象或无状态 transport,升级后第二个请求起会失败,connect() 以 SdkError 代码 ALREADY_CONNECTED 拒绝。createMcpHandler(buildServer) 与 serveStdio(buildServer) 在每次调用返回新 server 时仍可正常工作。

EVENT STORY

发展脉络

  1. 首次出现@modelcontextprotocol/fastify@2.0.1MCP TypeScript SDK Releases
  2. 当前判断MCP 生态正从「能跑通」进入「按连接生命周期管理」阶段,SDK 用破坏性补丁强制开发者修正资源复用假设。判断:这会短期增加升级成本,但降低多请求并发下的状态串扰风险。可验证信号是其他语言 SDK 是否跟进同类约束。Agent Pulse · 分析
改变了什么

MCP TypeScript SDK 的 Fastify 集成包发布 2.0.1 补丁,核心是连接语义收紧:一个 Server 或 McpServer 一次只服务一个连接,无会话的 Streamable HTTP transport 一次只服务一个请求。官方说明给出的失败模式很具体——把 server 对象建在 handler 外、在 handler 内 connect(transport),进程收到的第二个 HTTP 请求就会失败,connect() 抛出 ALREADY_CONNECTED。修复方向是按请求构建 server 与 transport,或按会话各建一套;createMcpHandler(buildServer) 和 serveStdio(buildServer) 这类每次返回新 server 的写法不受影响。

能力边界怎么变了

这是一次把隐式共享状态显式化的破坏性语义变更:此前可复用的单例 server 现在与连接一一绑定,复用即触发 ALREADY_CONNECTED。可验证的下一信号是官方迁移指南或后续补丁是否放宽该约束,以及社区是否出现按请求构建 server 的样板封装。

为什么重要

MCP 生态正从「能跑通」进入「按连接生命周期管理」阶段,SDK 用破坏性补丁强制开发者修正资源复用假设。判断:这会短期增加升级成本,但降低多请求并发下的状态串扰风险。可验证信号是其他语言 SDK 是否跟进同类约束。

对谁有影响

对依赖 MCP 的开发者工具与 Agent 平台,升级前需审计 server 与 transport 的创建位置,否则线上第二个请求即失败。价值在于提前暴露并发状态缺陷,代价是一次迁移改造。可验证信号是升级后错误率与 ALREADY_CONNECTED 日志是否消失。

接下来观察

若该约束被其他 MCP SDK 采纳,按请求或按会话构建 server 可能成为默认范式;反之若被回退,说明单例复用仍是主流用法。观察点是后续版本说明中是否再次调整连接模型。