# The MCP tools a Bonnard app offers

> Each MCP tool and behaviour of a Bonnard app, with what it lets the agent do, its default and what changes when it is off.

Updated: 2026-10-15

An MCP tool is one operation that an app offers to an agent, the model in an AI client that acts for a person. The
agent calls tools to find tables, run SQL and draw charts. In the console at `app.bonnard.ai`, the app's **Tools** tab
sets which tools the agent gets. Two behaviours add no tool: Correct a wrong name and Track call intent.

Verified 15 Oct 2026.

Each setting has a switch on the **Tools** tab, unless the table says otherwise.

Table: The settings at a glance

| Setting | Default | MCP tools |
| --- | --- | --- |
| **Docs** | On while Charts or Personal dashboards is on, with no switch | `explore_docs` |
| **Explore schema** | On, with no switch | `explore_schema` |
| **SQL query** | On, with no switch | `sql_query` |
| **Charts** | On | `render_chart`, `fetch_view_data` |
| **Export data** | On | `create_export_file` |
| **Personal dashboards** | On for a new app | `save_dashboard`, `delete_dashboard`, the Published dashboards tools and Docs |
| **Personal charts** | On | `save_chart` (only while Export data is on), `explore_charts`, `delete_chart` |
| **Published dashboards** | Off | `render_dashboard`, `explore_dashboards`, `search_param_values`, `fetch_view_data` |
| Correct a wrong name | On, with no switch in the console | None. It adds table names to errors |
| **Call intent** | On, with its switch on the Settings tab | None. It adds an `intent` argument to each tool |

## Change a setting

You need the Admin role in your Bonnard workspace.

1. In the console, select **Apps**, then the app, or **Open app details** in the setup steps.
2. Select the **Tools** tab.
3. Select the switch next to the setting. The change saves immediately.

A row with no switch shows **included**. When a setting is off, its row adds "Off: hidden from agents." and the app
does not offer its tools.

The switch for call intent is on the **Settings** tab, in the [Track call intent](#track-call-intent) entry.

Bonnard applies a change to a setting from the next request to the app. The change applies to the staging URL and the
production URL. See [Publish and staging](https://bonnard.ai/docs/apps/publish-and-staging.md).

## Docs

`explore_docs` gives the agent reference pages to read before it builds a chart or a dashboard. The pages cover chart
types and their options, KPI tiles and dashboard params. It shows only the pages for the tools that the app offers.

The Docs row has no switch and shows **included**. The app offers `explore_docs` only while [Charts](#charts) or
[Personal dashboards](#personal-dashboards) is on.

## Explore schema

`explore_schema` gives the agent an overview of the database and finds tables by a concept. For one table, it returns
the columns, their types, the row count and sample rows.

The tool answers only with the tables that the app shows. Tables that you hide on the app's **Data** tab are not in
its answers. See [Table curation](https://bonnard.ai/docs/connect-data/table-curation.md).

Always included. Explore schema and SQL query have no switch, because an app without them has nothing to do.

## SQL query

`sql_query` runs one SQL query against the app's database and returns the rows. Table curation is not access control:
a query that names a hidden table runs.

Always included.

## Charts

`render_chart` draws a chart from a SQL query, or a carousel of up to 10 charts. `fetch_view_data` is for the chart
widget, which calls it to load a chart's data.

On by default. When Charts is off, the agent cannot draw a chart with `render_chart`. `save_chart` then cannot save
a new chart, because it saves only what `render_chart` drew. If Personal dashboards is off too, the app does not offer
Docs.

## Export data

`create_export_file` makes a file from a result or a chart that the agent has: a CSV, a gzip-compressed CSV or a PNG
image. The file comes from the result that Bonnard captured when the query ran, so the query does not run again.

While Export data is on, `sql_query` also takes two arguments, `capture_only` and `max_rows`. With them, the agent
can capture more rows for a file than the standard limit of 5,000 rows.

On by default. When it is off, the agent cannot make files, `sql_query` loses the two arguments and the app does not
offer `save_chart`.

## Personal dashboards

From the AI client, each person who uses the app can keep their own dashboards. `save_dashboard` saves a new
dashboard or changes a saved one, and `delete_dashboard` deletes one.

The app also offers the Published dashboards tools and Docs, so that the agent can show and draw the saved
dashboards. This applies even when Published dashboards is off. In that case, the tools offer only personal
dashboards.

On by default for a new app. An app made before 14 Oct 2026 has it off, unless an admin changed it. When it is off,
people cannot save dashboards from the AI client.

## Personal charts

`save_chart` saves a chart that the agent drew, `explore_charts` shows the saved charts, and `delete_chart` deletes
one. Each person gets only their own charts.

`save_chart` saves from a captured result, so it needs Export data. While Export data is off, the app does not offer
`save_chart`.

On by default. When it is off, the app offers none of the three tools.

## Published dashboards

`explore_dashboards` shows the dashboards that the app offers, and `render_dashboard` draws one. The dashboard widget
calls `search_param_values` to fill its filter menus, and `fetch_view_data` to load data.

Off by default. When it is on, the row shows the published dashboards of the app's database, each with a checkbox:

1. Select the checkbox of each dashboard that the app offers. Each change saves immediately.
2. To add or change dashboards, select **Manage dashboards →**. It opens the **Dashboards** page.

All checkboxes start clear. Until you select one, the app offers none of these tools, unless Personal
dashboards is on. If the database has no published dashboard, the row shows "No dashboards yet for", then the database
name, and a **Create a dashboard** button.

The production URL serves the published version of each selected dashboard. The staging URL serves its current
draft.

## Correct a wrong name

This behaviour covers table names only. When an agent names a table that does not exist, Bonnard adds the closest
real table names to the error. This applies to `explore_schema` with a table name, and to `sql_query`.

The same error also names up to 25 of the app's tables. Hidden tables are never in the suggestions. A wrong column name gets
no suggestions: the error tells the agent to read the table's columns with `explore_schema`.

On by default. The console has no control for it.

## Track call intent

While this behaviour is on, each tool takes an optional `intent` argument of up to 300 characters: why the agent makes
the call. Bonnard asks the agent for one sentence of 15 to 25 words, with no names, emails, IDs or row values. The
intent never changes the result. Bonnard records it with the call.

On by default. To change it, select the switch on the **Call intent** card of the app's **Settings** tab. When it is
off, the tools have no `intent` argument and Bonnard records no intent.

The console does not show the recorded intents.
