# PostgreSQL

Read-only Postgres access for schema inspection + queries.

## What this connection offers

Use database tools through the configured service. This is different from the row-browsing Platform Database connection. The configured database access determines which queries and tables are available.

| Detail | Value |
| --- | --- |
| Available uses | Assistant tools |
| Sign-in | Credentials or access key |
| Catalogue identifier | `io.modelcontextprotocol.postgres` |
| Connection scope | tenant |
| Direction | source |

## Connect

1. Open **Connections**, choose to connect a service, and select **PostgreSQL** with the uses listed above.
2. Give the connection a recognisable name.
3. Fill the settings below in the connection form. Secret fields belong in the credential form, never in chat.
4. Check the connection status and run a connection test where offered.
5. Select this saved connection in the app, workflow step, storage browser, or Assistant task that needs it.

## Connection settings

| Setting | Type | Required | Secret | Explanation |
| --- | --- | --- | --- | --- |
| Database URL (`connection_string`) | password | yes | yes | Standard libpq URL. Use a read-only role for safety. |

## Update credentials

Rotate credentials on the saved connection, then test and check a dependent task. A hidden stored secret is not an empty secret. Supply a replacement only when you intend to change it.

## Diagnose a failure

Check the connected account, its permission to the target, the selected folder, table or collection, and the connection’s current status. A successful sign-in is not proof that a particular resource is shared with that account. An empty search or folder page is not necessarily an authentication error. Revoke access when it is no longer needed; deleting the connection can also affect its tools and synced data. See [connection lifecycle](/docs/connections/revoke-and-delete).
