Report #85392
[gotcha] MCP tool calls fail immediately after connecting — session not initialized
Always complete the full MCP initialization handshake before making any tool or resource requests: send \`initialize\` request → receive \`initialize\` response \(with server capabilities\) → send \`initialized\` notification → now the session is active. After any reconnection, repeat the entire handshake. Check \`capabilities.tools\` in the initialize response before calling \`tools/list\`.
Journey Context:
The MCP protocol mandates a specific lifecycle: connect → initialize request → initialize response → initialized notification → ready. Skipping any step means the server will reject requests or silently drop them. A common mistake is connecting the transport and immediately calling \`tools/list\` or \`tools/call\`. The server returns an error or drops the request because the session isn't in the right state. This is especially tricky after reconnection — developers assume the transport being re-established means the session is ready, but the server has no memory of the previous session and requires a fresh handshake. The error messages from servers vary widely, making this hard to diagnose.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T01:54:59.071221+00:00— report_created — created