MCP 长任务不再占住对话:2.1.319 把 MCP task 自动转后台
有些 MCP 工具一跑就是几分钟:构建、数据导出、远程检查。以前这类调用会把对话卡在工具里。CLI 2.1.319 在终端里加入了对 MCP tasks 的支持。
行为变化
当 MCP 服务器把一次工具调用作为 task 来运行时,Claude Code 会立刻把它转到后台,并在任务结束时把结果告诉 Claude。这样模型可以先干别的,结果出来再接上。
想保持原来的等待方式
新增环境变量 CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND:设置后,Claude Code 会在工具调用内部等待 MCP task 完成,而不是马上转后台。
适合开关的情形:
- 后续步骤强依赖这个结果,不想让模型在没有结果时乱走;
- 调试某个 MCP 服务器,希望时序简单可复现;
- 脚本化场景里更看重顺序确定。
使用建议
- 自己写 MCP 服务器的话,确认它是否以 task 方式返回,才能享受后台化;
- 升级后留意长任务的完成通知是否按预期到达;
- 同一版本还修了:旧握手协议的 MCP 服务器因声明了只对新服务器有用的扩展而连不上或返回空结果的问题,老服务器用户可以再试一次。
小结
2.1.319 让 MCP 长任务默认走后台,不再堵住会话;需要同步等待时,用 CLAUDE_CODE_DISABLE_MCP_TASK_BACKGROUND 退回原样。