Bonnard

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
FactAmazon Redshift
CredentialA read-only user
Port5439 by default
SSLverify-full by default
NetworkA publicly accessible cluster or Serverless workgroup, reached from Bonnard’s IP addresses
TenancyNo tenancy, Multi-tenant (RLS) or Schema per tenant

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 users
CREATE USER mcp_reader PASSWORD '<password>' NOCREATEDB NOCREATEUSER;

-- Run these two lines once for each schema apps should query
GRANT 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

  1. In the console at app.bonnard.ai, select Data, then Redshift.
  2. Enter a Connection name. Then enter the user’s details from the table below.
  3. Select Test & connect. Bonnard signs in as the user and reads the tables that the user can read.
Amazon Redshift connection fields
FieldEnter
Connection nameA name for this database in Bonnard, for example Production.
EndpointThe cluster or workgroup endpoint, without the port or database.
Port5439, unless your cluster or workgroup uses another port.
DatabaseThe database to read, for example dev.
User and PasswordThe read-only user from step 1, for example mcp_reader.
SSL modeKeep verify-full.

4. Choose the tenancy

Select how callers get the data. Then select Save & continue.

Tenancy options
OptionUse it when
No tenancyAll 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 tenantEach tenant’s tables sit in their own schema, named by a pattern, for example customer_{tenant}.

Connection saved shows the number of tables discovered.

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.