MCP stdio 传输的 stderr 阻塞:服务端写满标准错误缓冲区为何让工具调用挂起
本地 MCP Server 用 stdout 传 JSON-RPC、用 stderr 写日志时,客户端若不读取 stderr,管道缓冲区写满后服务端会阻塞在写日志调用上,工具调用随之无响应。本文从管道缓冲机制出发,解释阻塞的形成过程、日志级别与异步写入的缓解效果,并给出可观测指标和部署边界。
共 1 篇文章
本地 MCP Server 用 stdout 传 JSON-RPC、用 stderr 写日志时,客户端若不读取 stderr,管道缓冲区写满后服务端会阻塞在写日志调用上,工具调用随之无响应。本文从管道缓冲机制出发,解释阻塞的形成过程、日志级别与异步写入的缓解效果,并给出可观测指标和部署边界。