Skip to main content
Eight URIs, all read-only, all JSON. A client reads them to find its way around before it calls a tool. Every clears the same gates a tool call does: the token’s resources:read scope, its connection allowlist, and the connection’s External Clients level and AI policy. See Scopes and gates. Reads count against the caller’s request rate like anything else.

Discovery

resources/list returns tablepro://connections, plus four entries for each connection that is currently connected and visible to this token: its schema, its tables, its databases, and its history. The list is sorted by connection name. resources/templates/list returns the seven templated URIs, so a client can build one for a connection that is not open yet. Both methods page at 50 entries with nextCursor.

The URIs

{connection_id} must be a UUID; a name is -32602. On the tables URI, row_counts=true asks for approximate counts and 1 and yes also work. completion/complete fills every variable in these templates against the live schema, including table, database and schema. See Completions.
These URIs live inside the MCP transport and are not the shell-level URL scheme deep links, which happen to share the tablepro:// prefix.

Reading

resources/read needs params.uri and, in the modern era, an Mcp-Name header carrying the same URI. Every URI except tablepro://connections reads a live session, and TablePro opens the connection first if it is not open yet. A connection that will not open is -32602.
The payload is a JSON string inside text. The shapes on the rest of this page are what you get after parsing it. Each read carries a private cache hint whose TTL depends on the URI; the numbers are in Cache hints.

tablepro://connections

database is the session’s browsed database when connected, the saved default otherwise. type uses display casing (MySQL, PostgreSQL, SQLite). Connections with external_access: blocked or ai_policy: never are omitted, as are connections outside the token’s allowlist.

tablepro://connections/{id}/schema

Capped at 100 tables. Beyond that the payload also carries truncated: true and total_tables. For a larger schema use the list_tables tool, or search_schema to find one column. This is the only subscribable resource. See Subscriptions.

tablepro://connections/{id}/history{?limit,search,date_filter}

executed_at is ISO 8601. schema_name appears when the entry has one, and error_message when was_successful is false, redacted.

Errors

Resource-not-found is -32602 rather than a code of its own; MCP Protocol lists the rest.