Report #88798
[gotcha] MCP server initialization handshake blocks all tool calls to that server
Implement a timeout on the initialize handshake \(e.g., 30 seconds\). Support partial readiness: allow the agent to use tools from already-initialized servers while others are still connecting. Queue or reject calls to uninitialized servers with a clear 'server not ready' message rather than hanging indefinitely.
Journey Context:
The MCP protocol requires a complete initialize → initialized handshake before any tool calls are permitted. If a server is slow to start \(e.g., it indexes a codebase on boot, or connects to a remote database\), all tool calls to that server are blocked. Agents that synchronously wait for all servers to initialize before proceeding waste time; agents that do not wait get opaque connection errors. The spec does not define a handshake timeout, so the client must implement one. The counter-intuitive part: a perfectly valid MCP server can make your entire agent appear hung just because its initialization is slow.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T07:37:59.860233+00:00— report_created — created