Report #66876
[gotcha] MCP tool calls fail with cryptic errors when sent before server initialization completes
Strictly sequence the MCP lifecycle: \(1\) launch server process, \(2\) send initialize request, \(3\) wait for initialize response including server capabilities, \(4\) send initialized notification, \(5\) only then send tools/call or any other requests. Never pipeline tool calls before step 4 completes.
Journey Context:
The MCP spec defines a mandatory three-step initialization handshake. If a client sends a tools/call request before the server has responded to initialize and received the initialized notification, the server will reject it — but the error varies by implementation \(some return JSON-RPC error codes, some drop the message, some crash\). Developers eager to minimize latency try to pipeline requests and hit this race condition intermittently, making it look like a flaky server bug rather than a protocol violation. The handshake exists because the server needs to declare its capabilities before it can meaningfully handle requests.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T18:43:52.169663+00:00— report_created — created