Developers

Build boards from your AI agent.

Boardtrail speaks the Model Context Protocol, so Claude, Cursor and any other MCP client can read your workspace and build dashboards in it. Point an agent at a CSV and ask for a dashboard.

Connect a client

Create an API key under your profile, granting the scopes you want the agent to have, then add this to your MCP client config.

{
  "mcpServers": {
    "boardtrail": {
      "type": "http",
      "url": "https://boardtrail.io/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

The endpoint is https://boardtrail.io/mcp. Authentication is the same bearer key the REST API uses, with the same scopes.

What an agent can do

Read and create only. There is no tool that edits or deletes anything, so an agent that misunderstands you builds a spare board rather than damaging one you already have. Every call is checked twice: the key must carry the scope, and you must have a role in the workspace that allows it. Members are read-only.

ToolWhat it doesScope
list-organizationsList the Boardtrail workspaces this key can reach, with the slug every other tool needs. Start here.read
list-data-sourcesList the connected data sources in a workspace. Returns names, types and health only. Call describe-data-source for the column keys you need to configure a widget.read
describe-data-sourceRead the columns and a sample of rows from a data source. Call this before configuring any widget: it returns the exact column keys, which are slugged from the origin headers and cannot be guessed.read
list-boardsList the dashboards in a workspace, with how many widgets and save points each has.read
get-boardRead one board including every widget, its type, config and grid position. Call this before adding widgets to a board that already has some, so you can see what is there.read
read-widget-dataRead the rows behind a widget, after its data source transforms have run. Use this to answer questions about what the numbers actually say.read
list-save-pointsList the save points on a board. A save point freezes both the layout and the data as they were, so the board can be viewed exactly as it looked then.read
list-templatesList the ready-made board templates. Copying one with copy-template gives a complete working board in a single step, so check here before building from scratch.read
create-organizationCreate a new workspace owned by the key holder. Only needed when list-organizations comes back empty, or the user explicitly asks for a separate workspace.organizations:create
preview-data-sourceFetch and parse a URL without saving anything, to see whether it works and what columns it has. Do this before create-data-source so you can tell the user what the file actually contains rather than guessing from its name.data-sources:write
create-data-sourceConnect a public CSV or Excel link, or an unauthenticated JSON API, to a workspace. Sources needing a password, an auth header or a database connection cannot be created here and must be added by a person in the web app.data-sources:write
create-boardCreate an empty dashboard in a workspace. Add widgets to it with create-widget.boards:write
copy-templateCopy a ready-made template, with all its widgets and sample data, into a workspace as a new board. The fastest way to a working dashboard. Use list-templates to see what is available.boards:write
create-widgetAdd a chart, table or tile to a board. Call describe-data-source first and use its exact column keys: config keys and column names are both checked, so a mistake comes back as an error rather than a chart that quietly draws the wrong thing. Leave position out and the widget is placed below the existing ones at a sensible size.widgets:write
create-save-pointFreeze the board and its current data so it can be viewed exactly as it is now. Worth doing once a board is finished, since this server cannot edit or delete anything afterwards.snapshots:write

What it will not do

  • No editing or deleting. Boards, widgets and sources can be created, never changed or removed. Capture a save point when a board is finished.
  • No credentials. Agents can connect public CSV and Excel links and unauthenticated JSON APIs. Anything needing a password, an auth header or a database connection has to be added by a person here, so secrets never pass through a model.
  • No crossing workspaces. A key only reaches the workspaces its owner belongs to, and ids from anywhere else simply do not resolve.

Try it

Once connected, ask for what you want in plain language. The server ships a build-a-dashboard prompt that walks the agent through inspecting the columns before it picks any charts.

Build me a dashboard from
https://example.com/monthly-revenue.csv
showing how revenue is trending by region.