Interactive charts

Interactive charts that live inside your customers' agent. Composable, plugin-based, and made to scale, built by AI-native developers obsessed with data.

npmpnpmyarnbun
npm install @bonnard/mcp-charts

Why use Bonnard Charts?

Inference

A sophisticated inference engine that produces high quality charts from queries

Works with text-to-SQL or semantic layers.

A few lines

Devs avoid building any frontend code, we handle that

One widget that works across all MCP apps. You don't maintain per-host rendering code.

Native

Interactive widgets, not static SVGs

Beautiful-by-default and native to the client. Brand, theme and formatting adjustable.

Every client

Visuals render cleanly in every agent client

ClaudeChatGPTCursorGeminiCopilot

Easy MCP visuals for data.

One function adds a charting tool to your MCP server. Pass a query callback and skip the frontend.

server.ts
  1. import { addCharts } from "@bonnard/mcp-charts";
  2. addCharts(mcpServer, { // add a `visualize` tool and MCP app to your mcp
  3. runSql: (sql) => db.query(sql), // pass a query callback
  4. });
Bar

Built for the agent, not just the user.

An agent can only use a tool it can read. The visualize tool is shaped for how the model calls it, not just for the human looking at the chart.

Context

Managed token context, not raw dumps

Compact text summaries and row sampling keep tool output small and readable.

row cappingpartial-result warningsprefix stripping
Feedback

Errors that guide the next action

Clear errors and feedback loops steer the agent toward the correct call.

error hintsnext_step guidancesql error hints
Determinism

Less hallucination surface

We push deterministic work out of the model and into the code.

auto-detected axesauto formattingauto-filled gaps
Clarity

Clear tool descriptions

The agent knows exactly how and when to call the tool.

typed schemausage examplesself-documenting

Take control of your data presentation.

It's the most important part of your experience. Don't hand it to the agent to improvise in artifacts or generated HTML.

Let the agent draw it
You lose control over the experience
Hallucinations become a real risk
Extra work for the user
Inconsistent branding
Bonnard Charts
You control the experience: one widget, native to every client
Generated from real query data, not agent inputs
Zero frontend work, we handle rendering
Your brand, theme and formatting, consistent everywhere

Handled for you

real query datadeterministic renderingnull/negative handlingtype coercionauto-aggregationhigh-cardinality guardrailsagent-tuned AXeval-driven

Charts built for agents.

Render charts in any agent client, generated from real query data.

ClaudeChatGPTCursorGeminiCopilot