Skip to main content

URL Scheme

The tablepro:// URL scheme drives the TablePro GUI from outside the app. Use it from the shell with open, from another app with NSWorkspace.shared.open(url:), or from a Raycast extension with open() from @raycast/api. The scheme covers two kinds of actions:
  • Navigate: open a connection, table, or query tab.
  • Pair: bootstrap an MCP token for an extension.
Data exchange is not part of the URL scheme. For that, use MCP.

Connection IDs are UUIDs

Connection paths use the connection’s UUID, not its display name.
You can copy the URL for any connection from the sidebar context menu: right-click the connection, Copy Connection Deep Link.
Pre-0.37 builds accepted tablepro://connect/<name>/... paths. Those paths were removed in 0.37. Bookmarks built against old TablePro versions must be regenerated. Use Copy Connection Deep Link to get the new UUID-keyed URL.

Open a connection

Opens the saved connection. If the connection is already open in a window, that window comes to front. If the UUID does not match a saved connection, an error alert appears.

Open a table

The first form opens the table in the connection’s current database and schema. The second selects a database first. The third (Postgres-style) selects both. Table and schema names with spaces or special characters must be percent-encoded.

Run a query

Opens a new query tab with the SQL pre-filled. TablePro always shows a confirmation dialog with a preview of the SQL before opening, so the user can verify the query is safe. The query does not auto-execute; the user runs it from the editor. The SQL has a 51,200-character cap. To run SQL from a script and read rows back, use the MCP execute_query tool instead. The URL scheme is for handing SQL into the GUI, not for headless execution.

Start pairing

Starts a pairing flow. TablePro presents an approval sheet, the user picks scopes and connections, and TablePro returns a one-time code via the redirect URL. The user can change scopes and connections in the approval sheet. The query parameters are a request, not a grant. Example invocation from a Raycast extension:
See Pairing for the full sequence and the exchange step.

Lazy-start the MCP server

Starts the MCP server if it is not already running, then returns. Used by the bundled tablepro-mcp CLI to bootstrap on cold launch. The user does not need to enable MCP in Settings beforehand. The first call starts the server on a free port in the 51000-52000 range and writes a handshake file at ~/Library/Application Support/TablePro/mcp-handshake.json.

Import a connection

Creates a saved connection from query parameters and opens the connection editor for review. A confirmation dialog shows the connection details before adding, so you can reject unexpected imports. The user adds a password before connecting; passwords are never accepted in the URL. Required parameters: name, host, type. type accepts any registered database type name (case-insensitive). Examples: MySQL, PostgreSQL, MongoDB, Redis, ClickHouse, Oracle, DuckDB, Cassandra.

Core parameters

SSH parameters

Set ssh=1 to enable SSH tunneling.

SSL parameters

Plugin-specific fields

Use the af_ prefix to pass driver-specific fields. For example, af_replicaSet=myrs passes replicaSet to the MongoDB plugin.

Errors

Invalid UUIDs, missing connections, or malformed query parameters surface as error alerts. The error message names the failing field. Examples:
  • Connection not found: 9f1f0c3e-2e3d-4b14-9c3a-1d2f4ad1f6f1
  • Invalid connection ID format
  • Missing required parameter: client
URL scheme errors are also written to the activity log under the admin category with outcome error.