Skip to main content
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 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.
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.

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 with the TablePro version, the call, expected and actual behavior, and the matching activity log row if there is one.