> ## Documentation Index
> Fetch the complete documentation index at: https://ngquct-docs-fix-500-query-results.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Versioning

> Which MCP protocol versions TablePro accepts, and the stability policy for the URL scheme, tools, and resources

Ask the server which protocol versions it takes, never this page: `server/discover` returns them in
`supportedVersions`, and an unsupported one is rejected with `-32022` whose `data.supported` carries
the same list. A client that hardcodes the list breaks on the release that adds one.

The other number, TablePro's own, governs everything else on this tab: the URL scheme, the MCP tool
catalog, the resource list, the prompt catalog, and the pairing flow. It follows semver.

## Which era gets new work

The newest protocol version is the only one that gets new features. It is stateless, it carries two
methods no older version can reach, and it is what a new client should be built against.

Older versions keep working through `initialize` and `Mcp-Session-Id` so a shipped client does not
break on an app update, and they see a reduced feature set. One stays accepted for as long as the
[specification](https://modelcontextprotocol.io) lists it as current or recent. Dropping one is a
`Removed` entry in the CHANGELOG, never a silent change. [MCP Protocol](/external-api/mcp-protocol)
has the version list and the per-era differences.

For stdio clients this is somebody else's problem: the bundled `tablepro-mcp` bridge answers the
client's `initialize` locally and speaks the newest version upstream. See
[MCP Clients](/external-api/mcp-clients).

## Stability rules

Within a major TablePro version the External API is additive only:

* New URL scheme actions, MCP tools, prompts, resources and error codes can appear.
* A new tool input field can appear when it is optional and has a default.
* A new tool output field can appear.

And within a major version, none of these happen:

* A URL scheme path is removed or changes meaning.
* A tool or prompt is removed or renamed.
* A required input field is added to an existing tool.
* An output field is removed or changes type.
* A resource is removed.

Error codes are the one place this already moved. TablePro's own codes left the `-32000` block, which
the specification froze, for `-33000` and above; a client that matched on the old numbers needs
updating once. The current table is in [MCP Protocol](/external-api/mcp-protocol#errors).

## Breaking changes before 1.0

The app is on 0.x, so the minor version is the release boundary. A break can land between 0.67 and
0.68, but never silently. Once 1.0 ships, breaks move to major bumps.

Nothing in the External API is deprecated right now. When something is, it is deprecated in the docs
first, with the replacement named and a CHANGELOG entry to match. It then keeps working for at least
one more minor version. A later release removes it, marked `BREAKING` in the CHANGELOG.

## What is not under the contract

These can change in any release, without notice:

* Transport framing, internal message routing, and any HTTP path other than `/mcp` and
  `/v1/integrations/exchange`.
* The handshake file at `~/Library/Application Support/TablePro/mcp-handshake.json`. Use the bundled
  `tablepro-mcp` bridge instead of parsing it.
* Token storage. Tokens are managed in **Settings > Integrations**.
* The audit log at `~/Library/Application Support/TablePro/mcp-audit.db`. Read it through the
  activity window.
* The connections file at `~/Library/Application Support/TablePro/connections.json`. Its shape can
  shift between minor versions; use `list_connections` instead.

## Reporting a contradiction

File an issue at [github.com/TableProApp/TablePro](https://github.com/TableProApp/TablePro/issues)
with the TablePro version, the call, expected and actual behavior, and the matching activity log row
if there is one.
