Tools reference#
Reference for tool-related functions, views, and types. For guide-style documentation, see Tools reference . For the full native tool catalog, see Native tools .
Catalog views#
aidb.tools#
The unified, read-only catalog of every tool AIDB knows about — the union of native tools, registered SQL tools, and cached MCP tools.
Column |
Type |
Description |
|---|---|---|
name |
text |
The tool's name. |
description |
text |
Shown to the model as part of the tool's definition. |
tool_type |
text |
'native_tool', 'sql_tool', or 'mcp_tool'. |
params |
jsonb |
For native_tool/sql_tool: an array of {name, type, description} objects. For mcp_tool: the server's raw JSON Schema inputSchema. |
read_only |
boolean |
Whether the tool is known to never write. Always false for mcp_tool rows — see Read-only mode . |
aidb.sql_tool_registry#
Backs registered SQL tools. aidb.tools is the union view most
queries should use instead; query this directly to see a SQL tool’s
stored query text.
Column |
Type |
Description |
|---|---|---|
name |
text |
Unique tool name (primary key). |
description |
text |
Shown to the model. |
query_text |
text |
The stored SQL statement, with ${name} placeholders. |
read_only |
boolean |
Whether the tool is enforced as read-only. |
return_type_hint |
aidb.ToolParam[] |
Documented return shape. Not currently surfaced to the model. |
params |
aidb.ToolParam[] |
The tool's declared parameters. |
created_at |
timestamp |
Creation time. |
updated_at |
timestamp |
Last update time. |
aidb.mcp_registry#
Registered external MCP servers.
Column |
Type |
Description |
|---|---|---|
name |
text |
Unique server name (primary key). |
url |
text |
The server's MCP endpoint. |
transport |
text |
'streamable_http' or 'sse'. |
headers |
jsonb |
Stored request headers. Not readable by aidb_users (may hold secrets). |
headers_env |
text |
Environment variable name to read headers from instead. Mutually exclusive with headers. |
tool_filter |
text[] |
Tool names imported from this server, if filtered. |
created_at |
timestamp |
Registration time. |
updated_at |
timestamp |
Last update time. |
Tool management functions#
aidb.create_sql_tool#
Registers a parameterized SQL query as a tool.
Parameters#
Parameter |
Type |
Default |
Description |
|---|---|---|---|
name |
TEXT |
Required |
Unique name for the tool. |
description |
TEXT |
Required |
Shown to the model as part of the tool's definition. |
sql_statement |
TEXT |
Required |
The query to run, with ${name} placeholders for each declared parameter. |
params |
JSONB |
Required |
The tool's parameters, built with aidb.tool_params(). |
read_only |
BOOLEAN |
true |
If true, reject the statement at registration time unless it's provably read-only. |
return_type_hint |
JSONB |
NULL |
Documents the query's return shape. Not currently surfaced to the model. |
Returns#
TEXT — the tool’s name, on success. Raises if the name is already
taken (by any tool type) or the statement isn’t a single, invocable,
read-only-compliant (if read_only => true ) statement.
Example#
SELECT aidb.create_sql_tool(
name => orders_by_customer,
description => Look up recent orders for a customer by id.,
sql_statement => SELECT id, status, total FROM orders WHERE customer_id = ${customer_id} ORDER BY created_at DESC LIMIT ${limit},
params => aidb.tool_params(
aidb.tool_param(customer_id, INT, The customers id.),
aidb.tool_param(limit, INT, Maximum number of orders to return.)
),
read_only => true, -- optional; enforced, not just descriptive. Default: true
return_type_hint => NULL -- optional; documents the returned row shape, same aidb.tool_params() shape as `params`. Default: NULL
);
aidb.delete_tool#
Deletes a SQL tool or an MCP server registration by name (removing every tool the server advertised along with it). Built-in native tools can’t be deleted.
Parameters#
Parameter |
Type |
Description |
|---|---|---|
name |
TEXT |
The tool or server name. |
Returns#
TEXT — the deleted name, on success. Raises if no such tool or
server exists, or if name is a native tool.
aidb.import_mcp_tools#
Registers an external MCP server and imports the tools it advertises.
Parameters#
Parameter |
Type |
Default |
Description |
|---|---|---|---|
name |
TEXT |
Required |
Unique name for the server registration. |
url |
TEXT |
Required |
The server's MCP endpoint URL. |
transport |
TEXT |
'streamable_http' |
'streamable_http' or 'sse' — only 'streamable_http' is fully supported today. |
headers |
JSONB |
NULL |
Request headers to send. Mutually exclusive with headers_env. |
tool_filter |
TEXT[] |
NULL |
Import only these tool names. Omit to import everything the server advertises. |
headers_env |
TEXT |
NULL |
Environment variable holding the headers JSON, read fresh on each use instead of storing it. Mutually exclusive with headers. Name must start with the AI pipelines prefix. |
Returns#
TEXT — the server’s name, on success. Raises if the name is taken,
the URL is unreachable, or no advertised tool matches tool_filter .
Example#
SELECT aidb.import_mcp_tools(
name => weather,
url => https://weather.example.com/mcp,
transport => streamable_http, -- optional; streamable_http or sse. Default: streamable_http
headers => NULL, -- optional; request headers to send, for example, an auth token. Mutually exclusive with headers_env. Default: NULL
tool_filter => NULL, -- optional; import only these tool names. Default: NULL (import everything the server advertises)
headers_env => NULL -- optional; env var holding the headers JSON instead of storing it. Mutually exclusive with headers. Default: NULL
);
aidb.refresh_mcp_tools#
Re-fetches an already-registered MCP server’s advertised tools and refreshes the cache.
Parameters#
Parameter |
Type |
Description |
|---|---|---|
name |
TEXT |
The registered server's name. |
Returns#
INTEGER — the number of tools now cached (after tool_filter
applies).
aidb.get_mcp_tools#
Converts every currently registered tool (native, SQL, and MCP alike)
into an MCP tools/list -shaped descriptor.
Returns#
TABLE(name TEXT, description TEXT, input_schema JSONB) — one row per
tool in aidb.tools .
Parameter helpers#
aidb.tool_param#
Builds one SQL tool parameter.
Parameters#
Parameter |
Type |
Default |
Description |
|---|---|---|---|
name |
TEXT |
Required |
The parameter's name. |
type |
TEXT |
Required |
The parameter's SQL type. |
description |
TEXT |
Required |
Description shown to the model. |
Returns#
JSONB — pass one or more of these to aidb.tool_params() .
aidb.tool_params#
Combines one or more aidb.tool_param() results, or (called with no
arguments) declares an empty parameter list.
Parameters#
Parameter |
Type |
Description |
|---|---|---|
params |
VARIADIC JSONB[] |
Zero or more aidb.tool_param() results. |
Returns#
JSONB — pass to aidb.create_sql_tool() ’s params or
return_type_hint .
aidb.param / aidb.params#
Generic parameter-spec constructors, used by native tools that accept an
enum-constrained argument. aidb.param() additionally accepts
enum_values TEXT[] . Not typically needed directly —
aidb.tool_param() /aidb.tool_params() are the constructors for
create_sql_tool() .