An MCP database tool can keep the same name while becoming a different operation.
A default changes from 7 days to 30. A field becomes optional. An enum gains a value. An error that meant “retry” now means “ask the user.”
The server starts. The client discovers the tool. The first visible failure may be a production answer.
Treat tools/list as a versioned interface:
- normalize the complete contract
- calculate a deterministic digest
- classify every diff as patch, compatible, breaking, or security-sensitive
- pin important workflows to an approved digest
- replay representative calls against the candidate
- canary the new version before broad rollout
- keep old and new operations during a documented migration window
Schema compatibility is not semantic compatibility. Changing a default time range, tenant interpretation, data source, redaction rule, or error meaning can be breaking without changing a JSON type.
Store the contract digest with each trace. Then an incident review can answer which interface, policy, and result shape produced an answer.
Full guide: MCP database tool contract versioning
Top comments (0)