# Protocol & methods

## Protocol versions

On `initialize` the server echoes the client's requested `protocolVersion` when it supports it,
and otherwise answers with the default. The supported set:

- `2025-11-25`
- `2025-06-18` — default
- `2025-03-26`
- `2024-11-05`

`2024-11-05` (the original public MCP revision, still sent by several shipped clients) is
supported deliberately: the wire shapes this server uses are unchanged across every listed
revision, so echoing it back is honest rather than merely permissive.

## Methods

| Method | Rate-limited | Audited | Notes |
|---|---|---|---|
| `initialize` | no | no | Negotiates the protocol version; stamps last-used |
| `ping` | no | no | Returns `{}` |
| `tools/list` | no | no | The tools this token may call, with `title`, `annotations` and `inputSchema` |
| `tools/call` | **yes** | **yes** | Executes one tool and writes exactly one audit row |

An MCP `tools/call` envelope is `{ "name": "<tool>", "arguments": { … } }`; `arguments` may be
omitted or null (treated as `{}`). Every tool's `inputSchema` sets `additionalProperties: false`.

See also [Endpoints and transport](/introduction#endpoints-and-transport) for body limits,
batching and notifications.
