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 throughinitialize 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 lists it as current or recent. Dropping one is a
Removed entry in the CHANGELOG, never a silent change. 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.
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.
- 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.
-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.
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, markedBREAKING 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
/mcpand/v1/integrations/exchange. - The handshake file at
~/Library/Application Support/TablePro/mcp-handshake.json. Use the bundledtablepro-mcpbridge 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; uselist_connectionsinstead.

