To chart MotherDuck data in Claude, ChatGPT or another AI client, connect it here, then create an app on it.
Bonnard reads MotherDuck through an access token, so your apps query only the databases attached to the token’s account.
MotherDuck at a glance
Fact
MotherDuck
Credential
A Read Scaling or Read/Write access token
Databases
The databases attached to the token’s account
Connection
motherduck. DuckDB local-file mode is not available on the hosted service
Tenancy
No tenancy or Database per tenant (one database for each customer)
DataConnect the databases and integrations your apps read.Available connectionsDatabasesPostgreSQLBigQueryRedshiftClickHouseMotherDuckMySQL / MariaDBMSSQLIntegrationsPostHogDemo dataEcommerceEcommerceSetting up…PostHogDatabaseConnect a databaseConnection nameAcme sampleConnectionmotherduckDatabase (optional)acmeFor a database-per-tenant setup, use one sample tenant database here;set the per-tenant naming under Tenancy. Every database this appshould reach must already be attached to that account's workspace,which takes a read/write token: a Read Scaling token cannot attach.MotherDuck token••••••••••••••••••••••••••••••••••••••••••An access token for the MotherDuck service account that owns thosedatabases. For concurrent use, create it with type Read Scaling(Business plan) and set that account's read-scaling pool size. ARead/Write token runs every query on the account's one Duckling, oneat a time while it is busy. Nothing here can tell the two apart, so checkthe type in MotherDuck's Settings. Paste a token; a headlessconnection cannot use browser login. Stored encrypted, never logged.Encrypted at rest.SaaS safe modeonAllow 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 sampleConnectionmotherduckDatabase (optional)acmeFor a database-per-tenant setup, use one sample tenant database here;set the per-tenant naming under Tenancy. Every database this appshould reach must already be attached to that account's workspace,which takes a read/write token: a Read Scaling token cannot attach.MotherDuck token••••••••••••••••••••••••••••••••••••••••••An access token for the MotherDuck service account that owns thosedatabases. For concurrent use, create it with type Read Scaling(Business plan) and set that account's read-scaling pool size. ARead/Write token runs every query on the account's one Duckling, oneat a time while it is busy. Nothing here can tell the two apart, so checkthe type in MotherDuck's Settings. Paste a token; a headlessconnection cannot use browser login. Stored encrypted, never logged.Encrypted at rest.SaaS safe modeonAllow 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 tenancyDatabase per tenantNo customer routing is applied. Every allowed caller sees the data available to this credential.Save & continueBackSaving…BackconnectedAcme sampleNo tenancyDatabase per tenantEach tenant gets its own database.Representative database*customer_acmeOne real, existing tenant database. We connect + read table shapes from it (they're identical across tenants). Required.How are tenant databases named?Naming patternMap each tenantcustomer_{tenant}Preview: tenantacmedatabase…Enter a representative database so we can read the table shapes.Save & continueBackDetails2Tenancy3DoneNeed help?Setup guideConnection details areencrypted at rest.DatabaseConnect a databaseconnectedAcme sampleNo tenancyDatabase per tenantNo customer routing is applied. Every allowed caller sees the data available to this credential.Save & continueBackSaving…BackconnectedAcme sampleNo tenancyDatabase per tenantEach tenant gets its own database.Representative database*customer_acmeOne real, existing tenant database. We connect + read table shapes from it (they're identical across tenants). Required.How are tenant databases named?Naming patternMap each tenantcustomer_{tenant}Preview: tenantacmedatabase…Enter a representative database so we can read the table shapes.Save & continueBackDetails2Tenancy3DoneNeed 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 ↑TypeRowsColumnsmaincustomerstable11845mainproductstable524mainorderstable49206mainorder_itemstable134075Next 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 ↑TypeRowsColumnsmaincustomerstable11845mainproductstable524mainorderstable49206mainorder_itemstable134075Next 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 MotherDuck account, for example a service account, that has the databases for your apps attached to its workspace.
1. Create an access token
Bonnard connects with this token. Agents can query all databases attached to the token’s account.
In MotherDuck, open Settings. If you use a service account, open it under Service Accounts.
Select Create token. Then enter a name.
Select the token type from the table below.
Copy the token.
MotherDuck token types
Token type
Use it when
Read Scaling
Your MotherDuck plan is Business or Enterprise. The token can only read, and queries run in parallel on the account’s read-scaling pool. Results can lag the latest writes by a few minutes. This token cannot attach databases, so attach them first with a Read/Write token.
Read/Write
Your plan has no read scaling. All queries run on the account’s one Duckling. Bonnard runs read-only queries either way.
2. Add the connection
In the console at app.bonnard.ai, select Data, then MotherDuck.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 details from the table below.DatabaseConnect a databaseConnection nameAcme sampleConnectionmotherduckDatabase (optional)acmeFor a database-per-tenant setup, use one sample tenant database here;set the per-tenant naming under Tenancy. Every database this appshould reach must already be attached to that account's workspace,which takes a read/write token: a Read Scaling token cannot attach.MotherDuck token••••••••••••••••••••••••••••••••••••••••••An access token for the MotherDuck service account that owns thosedatabases. For concurrent use, create it with type Read Scaling(Business plan) and set that account's read-scaling pool size. ARead/Write token runs every query on the account's one Duckling, oneat a time while it is busy. Nothing here can tell the two apart, so checkthe type in MotherDuck's Settings. Paste a token; a headlessconnection cannot use browser login. Stored encrypted, never logged.Encrypted at rest.SaaS safe modeonAllow 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 sampleConnectionmotherduckDatabase (optional)acmeFor a database-per-tenant setup, use one sample tenant database here;set the per-tenant naming under Tenancy. Every database this appshould reach must already be attached to that account's workspace,which takes a read/write token: a Read Scaling token cannot attach.MotherDuck token••••••••••••••••••••••••••••••••••••••••••An access token for the MotherDuck service account that owns thosedatabases. For concurrent use, create it with type Read Scaling(Business plan) and set that account's read-scaling pool size. ARead/Write token runs every query on the account's one Duckling, oneat a time while it is busy. Nothing here can tell the two apart, so checkthe type in MotherDuck's Settings. Paste a token; a headlessconnection cannot use browser login. Stored encrypted, never logged.Encrypted at rest.SaaS safe modeonAllow 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 connects with the token and reads the tables in Database.
MotherDuck connection fields
Field
Enter
Connection name
A name for this database in Bonnard, for example Production.
Connection
Keep motherduck.
Database
The database to read. Empty means my_db. If each tenant (the customer that a caller belongs to) has its own database, enter one of them.
MotherDuck token
The token from step 1.
SaaS safe mode
Keep on. In safe mode, queries cannot read local files or load extensions.
3. 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.
Database per tenant
Each tenant’s tables sit in their own database, named by a pattern, for example customer_{tenant}. Queries go to the caller’s database, but can name any database that the token reaches.
DatabaseConnect a databaseconnectedAcme sampleNo tenancyDatabase per tenantNo customer routing is applied. Every allowed caller sees the data available to this credential.Save & continueBackSaving…BackconnectedAcme sampleNo tenancyDatabase per tenantEach tenant gets its own database.Representative database*customer_acmeOne real, existing tenant database. We connect + read table shapes from it (they're identical across tenants). Required.How are tenant databases named?Naming patternMap each tenantcustomer_{tenant}Preview: tenantacmedatabase…Enter a representative database so we can read the table shapes.Save & continueBackDetails2Tenancy3DoneNeed help?Setup guideConnection details areencrypted at rest.DatabaseConnect a databaseconnectedAcme sampleNo tenancyDatabase per tenantNo customer routing is applied. Every allowed caller sees the data available to this credential.Save & continueBackSaving…BackconnectedAcme sampleNo tenancyDatabase per tenantEach tenant gets its own database.Representative database*customer_acmeOne real, existing tenant database. We connect + read table shapes from it (they're identical across tenants). Required.How are tenant databases named?Naming patternMap each tenantcustomer_{tenant}Preview: tenantacmedatabase…Enter a representative database so we can read the table shapes.Save & continueBackDetails2Tenancy3DoneNeed 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 ↑TypeRowsColumnsmaincustomerstable11845mainproductstable524mainorderstable49206mainorder_itemstable134075Next 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 ↑TypeRowsColumnsmaincustomerstable11845mainproductstable524mainorderstable49206mainorder_itemstable134075Next 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
DuckDB local-file mode is not available on the hosted service. Use MotherDuck, or self-host Bonnard.
Set Connection to motherduck.
Query exceeded the 30s time limit.
MotherDuck did not return the table list in time. Select Test & connect again.
Connected, but introspect failed: <message>
The token cannot read the table list. Fix what the message names.
No tables are discovered
Examine Database. A database that the account did not attach shows no tables and no error.
A table is missing
Make sure that the table is in Database. Then select Re-introspect on the database’s Tables tab.
Any other error
Any other error is MotherDuck’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.