{
  "status": "Illustrative acceptance plan, not an executable test suite or observed production result",
  "topic": "MCP tool schema versioning",
  "date": "2026-11-04",
  "sourceArticle": "https://aptixlabs.com/insights/mcp-tool-schema-versioning",
  "setup": [
    "Use synthetic accounts and records",
    "Record the environment and implementation version",
    "Agree the expected product contract before testing"
  ],
  "reviewSequence": [
    "Record input meaning and side effects alongside types",
    "Classify proposed changes as additive or breaking",
    "Retire old contracts using observed caller usage"
  ],
  "cases": [
    {
      "id": "1",
      "condition": "An old caller omits a newly optional field",
      "expectedBehavior": "Previous behavior remains predictable",
      "observedBehavior": null,
      "status": "not_run"
    },
    {
      "id": "2",
      "condition": "A required field changes meaning",
      "expectedBehavior": "Reject or route through an explicit version",
      "observedBehavior": null,
      "status": "not_run"
    },
    {
      "id": "3",
      "condition": "An enum gains a new value",
      "expectedBehavior": "Old response consumers handle it safely",
      "observedBehavior": null,
      "status": "not_run"
    }
  ],
  "tradeoff": "Maintaining multiple versions costs effort. A short overlap period with a measured caller inventory is usually easier to operate than indefinite support for every historical shape."
}