Versioning
The API's version is in its path: every route is under /v1.
What counts as breaking
A change is breaking if it does any of these:
- removes or renames an operation or an argument;
- makes an optional argument required;
- changes the shape of a response;
- changes a status code.
Adding an operation, an optional argument or a field in a response is not breaking. A program reading the API should ignore fields it does not know.
A breaking change ships either opt-in, behind a new optional argument, or under /v2 for the routes it touches. It never ships silently under /v1.
What changed
Every change to the contract, breaking or not, is in the changelog, newest first. That includes a change to an operation's description, because an MCP client reads descriptions as the instructions for using a tool.