Postgres
Tools to query and explore a postgres database
1.0.1Arcade's Postgres toolkit connects agents to a PostgreSQL database, enabling schema discovery, table introspection, and read-only SQL querying.
Capabilities
- Schema & table discovery — enumerate all schemas and tables in the database before constructing any query, ensuring exact names are known.
- Table introspection — retrieve the full structure (columns, types, constraints) of any named table prior to querying.
- Read-only querying — execute
SELECTstatements with support for joins, filtering, aggregation, ordering, pagination (LIMIT/OFFSET);INSERT,UPDATE,DELETE, and DDL are blocked. - Query safety guardrails — built-in rules enforce column-explicit selects, case-insensitive string matching, trimmed strings,
LIKE-based matching, and index-only joins to reduce runtime errors.
Secrets
POSTGRES_DATABASE_CONNECTION_STRING — A full PostgreSQL connection string (URI or DSN) that includes the host, port, database name, username, and password, e.g. postgresql://user:password@host:5432/dbname. Obtain this from whoever administers your PostgreSQL instance (cloud provider console, self-hosted config, or a secrets manager). For managed providers the connection string is typically found in the database's connection details page (e.g., AWS RDS console → Connectivity, Supabase dashboard → Settings → Database, Neon dashboard → Connection Details). Ensure the credentials grant at least SELECT privileges on the target schemas; no write permissions are required or recommended.
Store this value as an Arcade secret: https://docs.arcade.dev/en/guides/create-tools/tool-basics/create-tool-secrets — you can also manage secrets directly at https://api.arcade.dev/dashboard/auth/secrets.
Available tools(4)
| Tool name | Description | Secrets | |
|---|---|---|---|
Discover all the schemas in the postgres database. | 1 | ||
Discover all the tables in the postgres database when the list of tables is not known.
ALWAYS use this tool before any other tool that requires a table name. | 1 | ||
You have a connection to a postgres database.
Execute a SELECT query and return the results against the postgres database.
No other queries (INSERT, UPDATE, DELETE, etc.) are allowed.
ONLY use this tool if you have already loaded the schema of the tables you need to query.
The final query will be constructed as follows:
SELECT {select_query_part} FROM {from_clause} JOIN {join_clause}
WHERE {where_clause} HAVING {having_clause}
ORDER BY {order_by_clause} LIMIT {limit} OFFSET {offset}
When running queries, follow these rules which will help avoid errors:
* Never "select *" from a table. Always select the columns you need.
* Always order your results. Use the most important columns or the primary key if you're unsure.
* Always use case-insensitive queries to match strings in the query.
* Always trim strings in the query.
* Prefer LIKE queries over direct string matches or regex queries.
* Only join on columns that are indexed or the primary key. Do not join on arbitrary columns. | 1 | ||
Get the schema/structure of a postgres table in the postgres database
when the schema is not known, and the name of the table is provided.
This tool should ALWAYS be used before executing any query.
All tables in the query must be discovered first,
so that their exact names are known. | 1 |