Give your agent a Cerebro login

Connect Claude, ChatGPT, Cursor or Codex and the agent can do what you do in the app: find the right dashboard, run a query, build a new page and check that it renders. The MCP server and the CLI share the same 67 capabilities, and your access rules come along.

Claude

cerebro · connected
Which property is dragging NOI this quarter?

cerebro · dashboard_list

cerebro · query_run

cerebro · dashboard_render

Riverbend Lofts. It is 3.9% under budget, and per unit its repairs cost is $1,180, the highest of the five. Here is the NOI map with the per-unit view on.

Cedar Point Residential · 5 properties · 1,046 units

Where NOI comes from.

TotalPer unit

Portfolio NOI, T12

$6.42M

2.4% above underwriting

NOI per unit, T12

$6,138

▴ 3.2% vs last year

Opex ratio

41.2%

▾ 0.7 pts

Occupancy, weighted

92.8%

▴ 0.4 pts

Every figure links to its property page · captured today 6:00

capabilities shared by the MCP server and the CLI
67
capabilities shared by the MCP server and the CLI
CLI, API and MCP requests since March 2026
350K+
CLI, API and MCP requests since March 2026
MCP client registrations
300+
MCP client registrations
MCP clients seen in production
7
MCP clients seen in production
Clients calling the MCP server in production:ClaudeChatGPTCursorCodexClaude CodeGleanComposio

Pick the one that matches where you work

Most people start with MCP in the chat app they already use. Agents that work from a repo or a terminal use the CLI. Your own code uses the API.

MCP server

Hosted at app.cerebroanalytics.com. Claude, ChatGPT, Cursor and any other MCP client get all 67 capabilities as tools, named like dashboard_render and query_run.

  • Nothing to install
  • Browser sign-in or a personal access token
  • Threads saved back to Cerebro

CLI

The same 67 capabilities as commands, with JSON output. Install it once and Codex, Claude Code or any terminal agent can reuse your login.

  • One-line installer with the agent skill
  • Plan, apply and verify for dashboard changes
  • Good for dashboards kept in a repo

REST API

9 read endpoints for your own code: dashboards, tiles, the results of their saved queries, data source status, and a query endpoint for read-only SQL.

  • Scoped API tokens
  • Tokens list the dashboards they may read
  • Optional date range on tile results

Connect in about a minute

Sign up first so there is an account to sign in to. Then pick your client.

MCP server

Claude

Settings, then Connectors, then Add custom connector. Paste the URL and sign in when Claude asks.

Server URL
https://app.cerebroanalytics.com/api/mcp/v1

Claude Code

Run this once. Claude Code opens the sign-in page the first time it calls Cerebro.

Terminal
claude mcp add --transport http cerebro https://app.cerebroanalytics.com/api/mcp/v1

Cursor

Settings, then MCP, then Add new MCP server. Paste this into mcp.json.

mcp.json
{
  "mcpServers": {
    "cerebro": {
      "url": "https://app.cerebroanalytics.com/api/mcp/v1"
    }
  }
}

ChatGPT

In a Project, choose Connectors, then Add. Use a personal access token from the access page in Cerebro.

Server URL
https://app.cerebroanalytics.com/api/mcp/v1

Using Glean, Composio or another MCP client? Point it at the same URL. If it can't open a browser to sign in, create a personal access token on the MCP and CLI access page.

CLI

The installer downloads the CLI, signs you in and installs the matching agent skill so your agent knows the commands.

Codex, Claude Code and other terminal agents
curl -fsSL https://app.cerebroanalytics.com/api/cli/install.sh | bash
Claude and Cowork
curl -fsSL https://app.cerebroanalytics.com/api/cli/install.sh | bash -s -- --agent cowork
Sign in and check
cerebro login
cerebro whoami

Plugin bundle

One zip with the MCP connection, the CLI and the dashboard-building skills. Upload it in Claude or Cowork under Customize, then Add plugin. For Codex, unzip it and run the installer, then restart Codex.

Codex, from the unzipped cerebro folder
bash install-plugin.sh

Find the org, pull the dashboard, check the numbers

Every data command takes an org id, so an agent working for ten clients can't mix them up. Commands return JSON by default. Add --pretty when a person is reading.

dashboard render returns the same PNG that Slack posts and MCP clients show. dashboard verify checks data, config and layout, and in rendered mode it checks the image too.

cerebro
$ cerebro org resolve "cedar point"
{ "org_id": "8c1e2f04-…", "name": "Cedar Point Residential" }
 
$ cerebro dashboard list --org-id $ORG --pretty
Juniper Flats · Operating pulse custom 7 tabs
Portfolio · NOI map custom 1 tab
 
$ cerebro dashboard render --org-id $ORG --id $DASH --preset last_30_days
Capturing 9 tiles against live data
✓ artifact ready · noi-map.png
 
$ cerebro dashboard verify --org-id $ORG --id $DASH --mode rendered
✓ 9 of 9 tiles returned data · layout ok · render ok
 
$ cerebro query run --org-id $ORG --schemas quickbooks \
$ --sql "select property, sum(amount) from repairs group by 1"
{ "rows": [ ... 5 rows ], "meta": { "request_id": "..." } }
cerebro
$ cerebro dashboard renderer set --org-id $ORG \
$ --dashboard $DASH --html-file renderer.html
Plan: publish renderer v14 · 3 sections changed
Nothing saved. Re-run with --plan-id and --apply.
 
$ cerebro dashboard renderer set --org-id $ORG \
$ --plan-id $PLAN --apply --html-file renderer.html
✓ Published v14 · v13 kept in history
 
$ cerebro dashboard verify --org-id $ORG --id $DASH --mode rendered
✓ No issues found

Agents can build dashboards too, one signed plan at a time

Creating a dashboard, adding a tile or publishing a new layout returns a plan first. The agent shows you the plan, then applies it with the plan id. Every applied change becomes a version you can restore.

Some teams keep their dashboard source in a repo and publish every change this way: plan, apply, verify.

Pull dashboard numbers into your own code

The API covers reading: dashboards, tiles, the results of the saved queries behind each tile, and the status of each data source. Ask for a different date range and SQL-backed tiles rerun for that window.

It also runs read-only SQL. Turn on Run SQL queries for a token and your server can post a statement to the query endpoint and page through the rows, which is how partners sync Cerebro back into Zoho or a client portal.

API tokens carry scopes and a list of the dashboards they may read. Building and editing stay in the MCP server and the CLI.

Get a dashboard with every tile's data
curl https://app.cerebroanalytics.com/api/v1/orgs/$ORG/dashboards/$DASH/bundle \
  -H "Authorization: Bearer $CEREBRO_API_TOKEN"
Run a read-only query from your own server
curl -X POST https://app.cerebroanalytics.com/api/v1/orgs/$ORG/query \
  -H "Authorization: Bearer $CEREBRO_API_TOKEN" \
  -d '{"sql": "select account, balance from ar_aging where days_late > 30 limit 500"}'
GET/api/v1/orgs/{org_id}/dashboards
GET/api/v1/orgs/{org_id}/dashboards/{id}
GET/api/v1/orgs/{org_id}/dashboards/{id}/tiles
GET/api/v1/orgs/{org_id}/dashboards/{id}/tiles/{tile_id}
GET/api/v1/orgs/{org_id}/dashboards/{id}/bundle

An agent gets your access, never more

The MCP server, the CLI, the API and automations all go through the same permission checks as the app. Revoke a grant and it stops working everywhere at once.

Org scoped

Every data call names an org. Cross-org access is checked on the server, not in the client.

Grants with expiry

Data source grants to an org or one person, with an end date, apply to every surface.

Read-only SQL

query_run takes one validated, read-only statement, with row limits and a timeout.

Plans before changes

Dashboard edits come back as a signed plan and only save when applied.

All 67 capabilities

The MCP tool name is the capability id with underscores, so dashboard.render is dashboard_render. The CLI uses the same names as commands, like cerebro dashboard render.

REST also on the APIWrites changes something

System · 3

Check the connection and who you are signed in as.

  • system_health

    Check that the Cerebro CLI and MCP server are up.

  • system_whoami

    Show the signed-in user and a preview of the orgs they can reach.

  • system_doctor

    Run a quick check of the local setup.

Organizations · 2

Find the org to work in. Every data call needs an org id.

  • org_list

    List the organizations you can access.

  • org_resolve

    Find an organization from part of its name.

Data sources · 3

See what an org has connected and whether it is syncing.

  • datasource_listREST

    List an org's connected data sources.

  • datasource_getREST

    Get the details of one data source.

  • datasource_statusREST

    Check a data source's sync and health status.

Dashboards: read · 6

Pull dashboards, tiles and tile data, with an optional date range.

  • dashboard_listREST

    List the dashboards an org can see.

  • dashboard_getREST

    Get one dashboard's details.

  • dashboard_tilesREST

    List a dashboard's tiles.

  • dashboard_tile_getREST

    Get one tile and refresh its result, optionally for a different date range.

  • dashboard_bundleREST

    Get a dashboard and the data for every tile in one call.

  • dashboard_renderer_getREST

    Get a custom dashboard's HTML layout and its version number.

Dashboards: render and verify · 4

Turn a dashboard into an image, and check it before anyone else sees it.

  • dashboard_render

    Render a whole dashboard to a PNG.

  • dashboard_tile_render

    Render one tile to a PNG.

  • dashboard_render_status

    Check on a long render job until the image is ready.

  • dashboard_verify

    Check a dashboard for data, config and layout problems, optionally against the rendered image.

Dashboards: create and edit · 5

Changes return a signed plan first. Nothing is saved until you apply it.

  • dashboard_createWrites

    Create a dashboard. Plans by default and saves when you apply.

  • dashboard_updateWrites

    Change a dashboard's name, description or which orgs can see it.

  • dashboard_renderer_setWrites

    Publish a custom HTML layout on a dashboard, or switch it back to a grid.

  • dashboard_plan_changes

    Create a signed plan for a dashboard change without saving anything.

  • dashboard_apply_changesWrites

    Apply a signed plan you created earlier.

Dashboards: tiles · 4

Add and change the SQL-backed tiles behind a dashboard.

  • dashboard_tile_createWrites

    Add a SQL-backed tile and its chart in one step.

  • dashboard_tile_updateWrites

    Change a tile's SQL, chart settings, title, position or result cache.

  • dashboard_tile_deleteWrites

    Remove a tile from a dashboard. The saved chart stays.

  • dashboard_tile_duplicateWrites

    Copy a tile and its chart.

Dashboards: sections · 2

Pick the parts of a custom dashboard that can be posted on their own.

  • dashboard_sections_list

    List the tabs and sections that can go to Slack or a scheduled report on their own.

  • dashboard_sections_labelWrites

    Label a custom dashboard's charts, tables and tabs so they can be posted on their own.

Dashboards: versions and restore · 6

Every saved edit is a version. Restoring makes a new version, so nothing is lost.

  • dashboard_versions

    List whole-dashboard versions: layout plus every tile's SQL and settings.

  • dashboard_restoreWrites

    Put the layout and every tile back to an earlier version in one step.

  • dashboard_version_diff

    Compare two dashboard versions, tile by tile. System admins only for now.

  • dashboard_tile_revisions

    List a tile's past revisions, including tiles that were deleted. System admins only for now.

  • dashboard_renderer_versions

    List the version history of a custom layout.

  • dashboard_renderer_restoreWrites

    Republish an earlier custom layout as a new version.

Dashboards: embeds · 2

Share a live dashboard as a link that needs no Cerebro login.

  • dashboard_embed_get

    Get a dashboard's embed link, whether it is on and when its token last rotated.

  • dashboard_embed_setWrites

    Turn an embed link on or off, rotate its token or change its slug.

Dashboards: actions · 2

Buttons on a dashboard that post a signed webhook to another system.

  • dashboard_actions_list

    List a dashboard's action buttons and the host each one posts to.

  • dashboard_action_setWrites

    Create, replace or remove an action button.

Catalog · 3

Look at the tables before writing SQL.

  • catalog_summary

    List cataloged tables with row estimates. Works on Snowflake too.

  • catalog_table_ddl

    Get a table's columns and data types.

  • catalog_table_sample

    Get redacted sample rows from a table.

Semantic layer · 4

The org's own definitions, recipes and proven queries.

  • semantic_map

    Load the org's analytics brief: metrics, recipes, concepts and table notes.

  • semantic_search

    Search tables, columns and saved recipes in plain English.

  • semantic_artifact_get

    Read one recipe, metric or table card, with its validation queries.

  • semantic_examples

    List proven queries that already power dashboards, ranked by confidence.

Query · 1

The escape hatch when no dashboard answers the question.

  • query_run

    Run one validated, read-only SQL statement against an org's data.

Saved prompts · 3

Run the playbooks your team already saved in Cerebro.

  • prompt_list

    List the saved prompts you can see.

  • prompt_get

    Get a saved prompt and its text.

  • prompt_runWrites

    Run a saved prompt in a new or existing thread.

Threads · 3

Pick up an analysis where someone else left it.

  • thread_get

    Get a thread's summary, scope and recent runs.

  • thread_messages

    List a thread's messages.

  • thread_replyWrites

    Add a message to a thread and get the agent's reply.

From sign-up to your agent's first answer

  1. 01

    Sign up and connect a source

    Create a free account and connect a CRM, accounting app, ad account or database.
  2. 02

    Connect your agent

    Add the MCP server URL to your chat app, or run the CLI installer for a terminal agent.
  3. 03

    Ask for something real

    "Which client's retainer is running over this month?" The agent finds the org, the dashboard and the answer.

Questions developers ask

Can an agent change things, or only read?

Both. Agents can build dashboards, edit tiles, publish layouts, turn on embeds, add action buttons and restore old versions. Changes to dashboards return a signed plan first, and nothing is saved until the plan is applied. SQL through query.run is always read-only, and database connections are read-only.

What can a connected agent see?

The same orgs, dashboards and data sources as the account it signed in with, and nothing more. Data source grants and their expiry dates apply to the MCP server, the CLI, the API and automations the same way they apply in the app. A personal access token can be pinned to a single org.

How does sign-in work?

Claude, Claude Code and Cursor use browser sign-in. The CLI signs in with cerebro login and reuses that session in later terminals. Headless clients use a personal access token from the MCP and CLI access page in Cerebro.

What does the REST API cover?

Dashboards, tiles and the results of the saved queries behind them, data source details and sync status, and a query endpoint that runs one read-only SQL statement with paging. That is 9 of the 67 capabilities, meant for pulling numbers into your own code. Each API token has scopes and a list of the dashboards it may read. For everything else, use the MCP server or the CLI.

Do I need to install anything for MCP?

No. The server is hosted at https://app.cerebroanalytics.com/api/mcp/v1. Point any MCP client at it and sign in. The CLI and the plugin bundle are optional.

What happens to the conversation when I close the agent?

Threads started from an agent are saved as Cerebro threads. You can open them in the app, and another agent can continue one with thread_reply.

Is this included in the free plan?

Yes. The MCP server, the CLI and the API are on every plan, including free.

People who check the SQL

“I had to search through thousands of records today for something that isn't easily searchable in Zoho, and Cerebro did it very quickly and then gave me the SQL code that I could run myself to generate a report to share with the client for verification.”
Spencer WhiteheadConsultant, The Workflow Academy
“Even if the data's wrong, someone like me can go in, find what's wrong and fix it through the CLI. The iteration cycle is now a day or two. It's amazing.”
Bryant StephensData lead, Truly Free Home
“One prompt turns into a dashboard that's incredibly useful for somebody, and it took me 15 minutes.”
Bryant StephensData lead, Truly Free Home

Sign up and connect your agent today

Free to start. Connect a source, add the MCP server to the chat app you already use and ask your first question.