To chart Amazon Redshift data in Claude, ChatGPT or another AI client, connect it here, then create an app on it.
Bonnard reads Amazon Redshift through a read-only user, so your apps query only what you grant.
Amazon Redshift at a glance
Fact
Amazon Redshift
Credential
A read-only user
Port
5439 by default
SSL
verify-full by default
Network
A publicly accessible cluster or Serverless workgroup, reached from Bonnard’s IP addresses
Tenancy
No tenancy, Multi-tenant (RLS) or Schema per tenant
DataConnect the databases and integrations your apps read.Available connectionsDatabasesPostgreSQLBigQueryRedshiftClickHouseMotherDuckMySQL / MariaDBMSSQLIntegrationsPostHogDemo dataEcommerceEcommerceSetting up…PostHogDatabaseConnect a databaseConnection nameAcme sampleEndpointacme.c7hx8kq2wzpe.eu-west-1.redshift.amazonaws.comCluster or Serverless workgroup endpoint host only (no :port/database suffix). Thecluster/workgroup must be reachable and our egress IPs allowlisted on the port.Port (optional)5439DatabaseacmeUseracme_readerSSL modeverify-fullCA certificate (PEM) (optional)Password••••••••••••••••Encrypted at rest.Allow our IP addressesIf your database is firewalled, allowlist these egress IPs so we can reach it:208.77.244.241208.77.244.242152.55.184.240These addresses are stable. We will give advance notice before any change.Test & connectBackTesting connection...Back1Details2Tenancy3DoneNeed help?Setup guideConnection details areencrypted at rest.DatabaseConnect a databaseConnection nameAcme sampleEndpointacme.c7hx8kq2wzpe.eu-west-1.redshift.amazonaws.comCluster or Serverless workgroup endpoint host only (no :port/database suffix). Thecluster/workgroup must be reachable and our egress IPs allowlisted on the port.Port (optional)5439DatabaseacmeUseracme_readerSSL modeverify-fullCA certificate (PEM) (optional)Password••••••••••••••••Encrypted at rest.Allow our IP addressesIf your database is firewalled, allowlist these egress IPs so we can reach it:208.77.244.241208.77.244.242152.55.184.240These addresses are stable. We will give advance notice before any change.Test & connectBackTesting connection...Back1Details2Tenancy3DoneNeed help?Setup guideConnection details areencrypted at rest.DatabaseConnect a databaseconnectedAcme sampleNo tenancyMulti-tenant (RLS)Schema per tenantNo customer routing is applied. Every allowed caller sees the data available to this credential.Save & continueBackSaving…BackconnectedAcme sampleNo tenancyMulti-tenant (RLS)Schema per tenantRow-levelisolationbytenant,withapolicythatfiltersoncurrent_setting('app.tenant_id').RequiresRLSalreadyenabledonyourtables.SeesetupSQL.Tenant ID lookup (optional)Pick a table and column where your customer IDs are, these will be used for tenant mapping purposes.TableSelect a table…ColumnSelect a column…Save & continueBackSaving…BackDetails2Tenancy3DoneNeed help?Setup guideConnection details areencrypted at rest.DatabaseConnect a databaseconnectedAcme sampleNo tenancyMulti-tenant (RLS)Schema per tenantNo customer routing is applied. Every allowed caller sees the data available to this credential.Save & continueBackSaving…BackconnectedAcme sampleNo tenancyMulti-tenant (RLS)Schema per tenantRow-levelisolationbytenant,withapolicythatfiltersoncurrent_setting('app.tenant_id').RequiresRLSalreadyenabledonyourtables.SeesetupSQL.Tenant ID lookup (optional)Pick a table and column where your customer IDs are, these will be used for tenant mapping purposes.TableSelect a table…ColumnSelect a column…Save & continueBackSaving…BackDetails2Tenancy3DoneNeed help?Setup guideConnection details areencrypted at rest.DatabaseConnect a databaseConnection saved"Acme sample" is ready to use.4 tables discovered · No tenancySearch tables…4 tablesSchemaTable ↑TypeRowsColumnspubliccustomerstable–5publicorder_itemstable–5publicorderstable–6publicproductstable–4Next stepCreate an app so your users can query these tables from their AI client.Create an app Or view source detailsBack to setupDetailsTenancyDoneNeed help?Setup guideConnection details areencrypted at rest.DatabaseConnect a databaseConnection saved"Acme sample" is ready to use.4 tables discovered · No tenancySearch tables…4 tablesSchemaTable ↑TypeRowsColumnspubliccustomerstable–5publicorder_itemstable–5publicorderstable–6publicproductstable–4Next stepCreate an app so your users can query these tables from their AI client.Create an app Or view source detailsBack to setupDetailsTenancyDoneNeed help?Setup guideConnection details areencrypted at rest.
Requirements
The Admin role in your Bonnard workspace.
A Redshift user that can create users, for example a superuser.
A cluster or Serverless workgroup that is publicly accessible.
1. Create a read-only user
Bonnard connects as this user. Agents can query only the tables that the user can read.
SQL
-- A user that can log in but cannot create databases or usersCREATE USER mcp_reader PASSWORD '<password>' NOCREATEDB NOCREATEUSER;-- Run these two lines once for each schema apps should queryGRANT USAGE ON SCHEMA <schema> TO mcp_reader;GRANT SELECT ON <schema>.<table_1>, <schema>.<table_2> TO mcp_reader;
Replace <password>, <schema> and the table names with your values. Grant tables that you add later the same way.
2. Allow Bonnard’s IP addresses
If your database has an IP allowlist, add Bonnard’s IP addresses to it for port 5439. The connect form shows them
under Allow our IP addresses. Bonnard cannot reach databases on a private network. On Redshift, add them as
inbound rules to the VPC security group of the cluster or workgroup.
3. Add the connection
In the console at app.bonnard.ai, select Data, then Redshift.DataConnect the databases and integrations your apps read.Available connectionsDatabasesPostgreSQLBigQueryRedshiftClickHouseMotherDuckMySQL / MariaDBMSSQLIntegrationsPostHogDemo dataEcommerceEcommerceSetting up…PostHogDataConnect the databases and integrations your apps read.Available connectionsDatabasesPostgreSQLBigQueryRedshiftClickHouseMotherDuckMySQL / MariaDBMSSQLIntegrationsPostHogDemo dataEcommerceEcommerceSetting up…PostHog
Enter a Connection name. Then enter the user’s details from the table below.DatabaseConnect a databaseConnection nameAcme sampleEndpointacme.c7hx8kq2wzpe.eu-west-1.redshift.amazonaws.comCluster or Serverless workgroup endpoint host only (no :port/database suffix). Thecluster/workgroup must be reachable and our egress IPs allowlisted on the port.Port (optional)5439DatabaseacmeUseracme_readerSSL modeverify-fullCA certificate (PEM) (optional)Password••••••••••••••••Encrypted at rest.Allow our IP addressesIf your database is firewalled, allowlist these egress IPs so we can reach it:208.77.244.241208.77.244.242152.55.184.240These addresses are stable. We will give advance notice before any change.Test & connectBackTesting connection...Back1Details2Tenancy3DoneNeed help?Setup guideConnection details areencrypted at rest.DatabaseConnect a databaseConnection nameAcme sampleEndpointacme.c7hx8kq2wzpe.eu-west-1.redshift.amazonaws.comCluster or Serverless workgroup endpoint host only (no :port/database suffix). Thecluster/workgroup must be reachable and our egress IPs allowlisted on the port.Port (optional)5439DatabaseacmeUseracme_readerSSL modeverify-fullCA certificate (PEM) (optional)Password••••••••••••••••Encrypted at rest.Allow our IP addressesIf your database is firewalled, allowlist these egress IPs so we can reach it:208.77.244.241208.77.244.242152.55.184.240These addresses are stable. We will give advance notice before any change.Test & connectBackTesting connection...Back1Details2Tenancy3DoneNeed help?Setup guideConnection details areencrypted at rest.
Select Test & connect. Bonnard signs in as the user and reads the tables that the user can read.
Amazon Redshift connection fields
Field
Enter
Connection name
A name for this database in Bonnard, for example Production.
Endpoint
The cluster or workgroup endpoint, without the port or database.
Port
5439, unless your cluster or workgroup uses another port.
Database
The database to read, for example dev.
User and Password
The read-only user from step 1, for example mcp_reader.
SSL mode
Keep verify-full.
4. Choose the tenancy
Select how callers get the data. Then select Save & continue.
Tenancy options
Option
Use it when
No tenancy
All callers get the same data.
Multi-tenant (RLS)
Your row-level security policies decide each caller’s rows. The policies read the caller’s tenant (the customer that the caller belongs to) from current_setting('app.tenant_id').
Schema per tenant
Each tenant’s tables sit in their own schema, named by a pattern, for example customer_{tenant}.
DatabaseConnect a databaseconnectedAcme sampleNo tenancyMulti-tenant (RLS)Schema per tenantNo customer routing is applied. Every allowed caller sees the data available to this credential.Save & continueBackSaving…BackconnectedAcme sampleNo tenancyMulti-tenant (RLS)Schema per tenantRow-levelisolationbytenant,withapolicythatfiltersoncurrent_setting('app.tenant_id').RequiresRLSalreadyenabledonyourtables.SeesetupSQL.Tenant ID lookup (optional)Pick a table and column where your customer IDs are, these will be used for tenant mapping purposes.TableSelect a table…ColumnSelect a column…Save & continueBackSaving…BackDetails2Tenancy3DoneNeed help?Setup guideConnection details areencrypted at rest.DatabaseConnect a databaseconnectedAcme sampleNo tenancyMulti-tenant (RLS)Schema per tenantNo customer routing is applied. Every allowed caller sees the data available to this credential.Save & continueBackSaving…BackconnectedAcme sampleNo tenancyMulti-tenant (RLS)Schema per tenantRow-levelisolationbytenant,withapolicythatfiltersoncurrent_setting('app.tenant_id').RequiresRLSalreadyenabledonyourtables.SeesetupSQL.Tenant ID lookup (optional)Pick a table and column where your customer IDs are, these will be used for tenant mapping purposes.TableSelect a table…ColumnSelect a column…Save & continueBackSaving…BackDetails2Tenancy3DoneNeed help?Setup guideConnection details areencrypted at rest.
Connection saved shows the number of tables discovered.
DatabaseConnect a databaseConnection saved"Acme sample" is ready to use.4 tables discovered · No tenancySearch tables…4 tablesSchemaTable ↑TypeRowsColumnspubliccustomerstable–5publicorder_itemstable–5publicorderstable–6publicproductstable–4Next stepCreate an app so your users can query these tables from their AI client.Create an app Or view source detailsBack to setupDetailsTenancyDoneNeed help?Setup guideConnection details areencrypted at rest.DatabaseConnect a databaseConnection saved"Acme sample" is ready to use.4 tables discovered · No tenancySearch tables…4 tablesSchemaTable ↑TypeRowsColumnspubliccustomerstable–5publicorder_itemstable–5publicorderstable–6publicproductstable–4Next stepCreate an app so your users can query these tables from their AI client.Create an app Or view source detailsBack to setupDetailsTenancyDoneNeed help?Setup guideConnection details areencrypted at rest.
Troubleshooting
Host resolves to a private or reserved address.
Make the cluster or workgroup publicly accessible.
The test times out
Make sure that Bonnard’s IP addresses are on your allowlist (step 2).
Connected, but introspect failed: <message>
The user cannot read the table list. Fix what the message names.
A table is missing
Grant SELECT on it. Then select Re-introspect on the database’s Tables tab.
Any other error
Any other error is Redshift’s own message. Examine the field that the message names. Then select Test & connect
again.
Charts in your AI client
Create an app on this database, so that Claude, ChatGPT, Cursor, Microsoft Copilot,
Gemini and other MCP clients can query it and draw charts.