Warehouse Adapters
Bundled adapters that turn a native warehouse driver result into typed chart data.
An adapter is a small function that wraps your warehouse driver and returns a runSql callback for
addCharts. It maps the driver's column types to chart field kinds (dimension, measure, time) so the
chart picks sensible axes and formatting automatically.
Each adapter lives at its own import subpath. The underlying driver is an optional peer dependency — you only install the one you use, and importing a subpath pulls in no runtime dependency beyond your driver.
Postgres
import { Pool } from "pg";
import { postgresRunSql } from "@bonnard/mcp-charts/postgres";
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
addCharts(server, { runSql: postgresRunSql(pool) });Queries run inside a READ ONLY transaction.
BigQuery
import { BigQuery } from "@google-cloud/bigquery";
import { bigQueryRunSql } from "@bonnard/mcp-charts/bigquery";
const bq = new BigQuery();
addCharts(server, {
runSql: bigQueryRunSql(bq, {
location: "europe-west2",
maximumBytesBilled: "200000000", // cost guard
defaultDataset: "analytics", // unqualified table names resolve here
}),
});DuckDB
import { duckDbRunSql } from "@bonnard/mcp-charts/duckdb";
addCharts(server, { runSql: duckDbRunSql(connection) });Snowflake
import { snowflakeRunSql } from "@bonnard/mcp-charts/snowflake";
addCharts(server, { runSql: snowflakeRunSql(connection) });Databricks
import { databricksRunSql } from "@bonnard/mcp-charts/databricks";
addCharts(server, { runSql: databricksRunSql(session) });Optional peer dependencies
Install only the driver(s) you use:
| Adapter | Subpath | Peer dependency |
|---|---|---|
| Postgres | @bonnard/mcp-charts/postgres | pg |
| BigQuery | @bonnard/mcp-charts/bigquery | @google-cloud/bigquery |
| DuckDB | @bonnard/mcp-charts/duckdb | @duckdb/node-api |
| Snowflake | @bonnard/mcp-charts/snowflake | snowflake-sdk |
| Databricks | @bonnard/mcp-charts/databricks | @databricks/sql |
Connect adapters with a read-only, least-privilege role. See Security.