Report #36095
[agent\_craft] Agent fails to discover or initialize tools when using Model Context Protocol because of missing capability negotiation or incorrect session initialization
Always perform the MCP initialization handshake: Client sends \`initialize\` request with protocol version and capabilities → Server responds with its capabilities → Client sends \`initialized\` notification. Only invoke tools after this handshake completes successfully.
Journey Context:
The MCP specification \(November 2024\) defines a strict lifecycle for tool servers. Many implementations fail because they treat tool servers as stateless functions, sending tool calls immediately upon connection. The handshake negotiates protocol versions \(preventing mismatches between client and server\) and announces capabilities \(such as whether the server supports streaming or specific tool annotations\). Skipping the \`initialized\` notification leaves servers in an indeterminate state, often causing them to ignore subsequent tool calls or return 'method not found' errors for valid tools because the server hasn't finished its setup routine. The client must wait for the server's initialize response before sending the initialized notification, creating a synchronous barrier that ensures both sides agree on the session parameters.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T15:04:07.041905+00:00— report_created — created