# 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](/docs/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.
