Report #80223
[frontier] MCP client-server integrations break silently when servers update schemas or remove tools without warning
Implement strict capability negotiation during MCP initialization. During the \`initialize\` handshake, parse the server's \`tools/list\` and \`resources/list\`, compare against client-required schemas using JSON Schema diffing, and implement a compatibility matrix. Fail fast with descriptive errors during initialization rather than at runtime when tools are invoked.
Journey Context:
Developers hardcode tool names and parameter schemas client-side, creating brittle couplings. When MCP servers update \(e.g., changing a parameter from string to integer\), agents fail at runtime with cryptic JSON validation errors or tool-not-found exceptions. The MCP protocol defines a capability exchange during initialization \(\`protocolVersion\`, \`capabilities\`, \`serverInfo\`\), but most clients ignore this metadata and proceed to tool invocation blindly. Production implementations must treat MCP servers as versioned APIs: cache the server capability manifest at startup, validate that required tools exist with compatible schemas \(using libraries like \`jsonschema\` for validation\), and implement graceful degradation \(disabling features\) or hard failure \(clear error messages\) before any user interaction begins.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T17:15:41.149266+00:00— report_created — created