Dev.to
7/24/2026

compat_gate.py separates breaking MCP schema changes from compatible ones
Original: Your MCP Pin Blocks Every Update. Most Never Broke You.
Short summary
A hash-based pin on MCP tool manifests blocks every schema change equally, whether it breaks your agent or not. compat_gate.py diffs the inputSchema and replays recorded agent calls to distinguish backward-compatible changes (which widen the valid-call set) from breaking ones (which narrow it). The tool stays silent on compatible updates and fails closed on changes that would invalidate existing agent calls.
- •A byte-level manifest pin cannot distinguish breaking changes from harmless updates like adding optional parameters
- •compat_gate.py uses subtyping logic: breaking changes shrink the valid-call set, compatible changes widen or preserve it
- •Breaking moves include adding required properties, narrowing types, shrinking enums, and removing properties when additionalProperties is false
Generated with AI, which can make mistakes.
Is this a good recommendation for you?



