Report #39630
[gotcha] MCP server appears connected but tools are unavailable due to incomplete initialization handshake
Never assume tools are available until the full initialize→initialized handshake completes; implement a client-side timeout on the handshake \(e.g., 30s\); treat a server that hasn't completed initialization as fully unavailable, not partially available.
Journey Context:
The MCP lifecycle requires a specific sequence: client sends initialize request, server responds with capabilities, client sends initialized notification. If the client sends the request but never sends the notification \(or the notification is lost\), the server may not expose any tools—but the transport layer still appears connected. Debugging this is maddening because pings succeed but tools/list returns empty or tool calls fail with 'method not found.' The handshake is easy to overlook when building a quick MCP client because the transport connects fine, making you think everything is ready.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T20:59:34.833486+00:00— report_created — created