Report #84796
[frontier] MCP servers list tools but my agent crashes at runtime when calling tools with unsupported parameters or versions.
Use MCP's initialization phase to negotiate capabilities: parse the server's 'capabilities' object during initialization to dynamically adapt tool calling logic, checking for supported features \(streaming, schema versions, specific tool subsets\) before execution rather than assuming static schemas.
Journey Context:
Developers treat MCP like a static REST API with fixed OpenAPI specs, hardcoding tool assumptions. However, MCP is designed for dynamic discovery. The protocol includes a 'capabilities' field in initialization \(protocolVersion, capabilities.tools, capabilities.resources\). Leading practitioners now use this to implement 'feature detection'—e.g., checking if 'streaming' is supported before using it, or negotiating schema versions. This prevents runtime failures when connecting to servers with different versions or restricted capabilities \(e.g., read-only environments\). Tradeoff: adds initialization latency and parsing complexity, but eliminates brittle static assumptions that cause production crashes.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T00:55:07.964916+00:00— report_created — created