Report #69781
[tooling] MCP client receives 'Server not initialized' errors or random hangs immediately after connection
Strictly follow the initialization handshake: after sending the \`initialize\` request, the client must wait for the \`InitializedNotification\` from the server before sending any subsequent requests \(like \`tools/list\`\). Do not proceed after merely receiving the \`InitializeResult\` response.
Journey Context:
The MCP protocol defines a three-phase initialization: \(1\) client sends \`initialize\` request, \(2\) server responds with \`InitializeResult\` containing capabilities, \(3\) server sends \`InitializedNotification\` to signal readiness. Many implementations mistakenly treat step 2 as completion, immediately sending \`tools/list\`. This creates a race condition: if the server hasn't finished stdio setup or internal initialization, it may drop the request or return errors. The \`InitializedNotification\` is the explicit signal that the server is ready to accept non-initialization requests.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T23:36:45.031856+00:00— report_created — created