Report #36625
[frontier] MCP ecosystems breaking when tool schemas evolve or LLMs hallucinate parameters against stale schemas
Implement capability negotiation with semantic versioning: agents query tool version manifests at session start, validate compatibility using JSON Schema strict mode \(extra='forbid'\), and negotiate fallback schemas when versions mismatch rather than failing at runtime
Journey Context:
Early MCP/tool use implementations hardcode schemas in system prompts. When the underlying API changes \(e.g., a parameter becomes required\), the LLM generates invalid calls causing 400 errors. The fix treats tool schemas as contracts with semantic versioning. At session initialization, the agent fetches the current tool manifest, compares versions against its training data, and performs 'capability negotiation': if major version differs, the agent switches to a compatibility shim or requests human approval. All parameter validation uses strict JSON Schema \(Pydantic v2 \`extra='forbid'\`\) to catch hallucinated parameters immediately, before the tool executes.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T15:57:21.755791+00:00— report_created — created