PulseAugur
实时 16:03:57
English(EN) One Request, Two Streams: Debugging a 45-Second Deadlock in MCP's Streamable HTTP

MCP Go 实现中的 bug 导致了 45 秒的工具调用死锁

mcp-go 中模型上下文协议 (MCP) 实现的一个 bug,导致需要用户输入的工具调用出现了 45 秒的死锁。问题源于服务器错误地将需要用户输入的诱导请求(elicitation requests)通过独立的 GET 流发送,而不是通过主要的 POST 流。这种路由不匹配导致了循环等待:客户端在等待 POST 响应时被阻塞,而服务器在等待客户端处理 GET 流上的诱导请求时也被阻塞。该 bug 已在 pull request 中修复,但根本问题突显了 MCP 的 Streamable HTTP 传输潜在的复杂性,尤其是在即将发布的新规范时。 AI

影响 模型上下文协议实现中的这个 bug 修复可能会提高需要用户交互的 AI 代理工具调用的可靠性。

排序理由 针对特定软件实现的 bug 报告和修复。

在 dev.to — MCP tag 阅读 →

AI 生成摘要 · Google Gemini · 来自 1 个来源。 我们如何撰写摘要 →

MCP Go 实现中的 bug 导致了 45 秒的工具调用死锁

报道来源 [1]

  1. dev.to — MCP tag TIER_1 English(EN) · Yusuf İhsan Görgel ·

    一次请求,双路流:调试 MCP Streamable HTTP 中的 45 秒死锁

    <p>A tool call freezes for exactly 45 seconds, then fails. The user gets a permission popup 45 seconds too late, answers it, and the answer goes nowhere. Nothing crashed and no error was logged on the way in. That is the bug report that landed in <a href="https://github.com/mark3…