Report #83216
[tooling] MCP clients hang indefinitely or crash when connecting to slow-starting servers because they skip capability negotiation or use infinite timeouts
Set a strict 30-second timeout on the initialize request; always inspect the capabilities object in the initialize response to verify support for tools, resources, or features before invoking them; check protocolVersion compatibility
Journey Context:
The MCP protocol requires a capability handshake via initialize, but many clients treat it as ceremonial. If a Python server takes 45s to import heavy ML libraries, the client hangs forever with default no-timeout settings. Worse, if you call tools/list on a server that never declared tools capability, you get undefined behavior \(crashes or silent failures\). The spec mandates checking capabilities.protocolVersion and capabilities.tools/resources before use. Skipping this is like calling an API without checking if the endpoint exists. It works until it doesn't.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T22:15:42.623898+00:00— report_created — created