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 · connectedcerebro · 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.
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
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
https://app.cerebroanalytics.com/api/mcp/v1Claude
Settings, then Connectors, then Add custom connector. Paste the URL and sign in when Claude asks.
https://app.cerebroanalytics.com/api/mcp/v1Claude Code
Run this once. Claude Code opens the sign-in page the first time it calls Cerebro.
claude mcp add --transport http cerebro https://app.cerebroanalytics.com/api/mcp/v1Cursor
Settings, then MCP, then Add new MCP server. Paste this into 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.
https://app.cerebroanalytics.com/api/mcp/v1Using 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.
curl -fsSL https://app.cerebroanalytics.com/api/cli/install.sh | bashcurl -fsSL https://app.cerebroanalytics.com/api/cli/install.sh | bash -s -- --agent coworkcerebro login
cerebro whoamiPlugin 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.
bash install-plugin.shFind 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 org resolve "cedar point"{ "org_id": "8c1e2f04-…", "name": "Cedar Point Residential" }$ cerebro dashboard list --org-id $ORG --prettyJuniper Flats · Operating pulse custom 7 tabsPortfolio · NOI map custom 1 tab$ cerebro dashboard render --org-id $ORG --id $DASH --preset last_30_daysCapturing 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 dashboard renderer set --org-id $ORG \$ --dashboard $DASH --html-file renderer.htmlPlan: publish renderer v14 · 3 sections changedNothing 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.
curl https://app.cerebroanalytics.com/api/v1/orgs/$ORG/dashboards/$DASH/bundle \
-H "Authorization: Bearer $CEREBRO_API_TOKEN"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.
System · 3
Check the connection and who you are signed in as.
system_healthCheck that the Cerebro CLI and MCP server are up.
system_whoamiShow the signed-in user and a preview of the orgs they can reach.
system_doctorRun a quick check of the local setup.
Organizations · 2
Find the org to work in. Every data call needs an org id.
org_listList the organizations you can access.
org_resolveFind an organization from part of its name.
Data sources · 3
See what an org has connected and whether it is syncing.
datasource_listRESTList an org's connected data sources.
datasource_getRESTGet the details of one data source.
datasource_statusRESTCheck a data source's sync and health status.
Dashboards: read · 6
Pull dashboards, tiles and tile data, with an optional date range.
dashboard_listRESTList the dashboards an org can see.
dashboard_getRESTGet one dashboard's details.
dashboard_tilesRESTList a dashboard's tiles.
dashboard_tile_getRESTGet one tile and refresh its result, optionally for a different date range.
dashboard_bundleRESTGet a dashboard and the data for every tile in one call.
dashboard_renderer_getRESTGet 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_renderRender a whole dashboard to a PNG.
dashboard_tile_renderRender one tile to a PNG.
dashboard_render_statusCheck on a long render job until the image is ready.
dashboard_verifyCheck 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_createWritesCreate a dashboard. Plans by default and saves when you apply.
dashboard_updateWritesChange a dashboard's name, description or which orgs can see it.
dashboard_renderer_setWritesPublish a custom HTML layout on a dashboard, or switch it back to a grid.
dashboard_plan_changesCreate a signed plan for a dashboard change without saving anything.
dashboard_apply_changesWritesApply a signed plan you created earlier.
Dashboards: tiles · 4
Add and change the SQL-backed tiles behind a dashboard.
dashboard_tile_createWritesAdd a SQL-backed tile and its chart in one step.
dashboard_tile_updateWritesChange a tile's SQL, chart settings, title, position or result cache.
dashboard_tile_deleteWritesRemove a tile from a dashboard. The saved chart stays.
dashboard_tile_duplicateWritesCopy a tile and its chart.
Dashboards: sections · 2
Pick the parts of a custom dashboard that can be posted on their own.
dashboard_sections_listList the tabs and sections that can go to Slack or a scheduled report on their own.
dashboard_sections_labelWritesLabel 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_versionsList whole-dashboard versions: layout plus every tile's SQL and settings.
dashboard_restoreWritesPut the layout and every tile back to an earlier version in one step.
dashboard_version_diffCompare two dashboard versions, tile by tile. System admins only for now.
dashboard_tile_revisionsList a tile's past revisions, including tiles that were deleted. System admins only for now.
dashboard_renderer_versionsList the version history of a custom layout.
dashboard_renderer_restoreWritesRepublish 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_getGet a dashboard's embed link, whether it is on and when its token last rotated.
dashboard_embed_setWritesTurn 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_listList a dashboard's action buttons and the host each one posts to.
dashboard_action_setWritesCreate, replace or remove an action button.
Catalog · 3
Look at the tables before writing SQL.
catalog_summaryList cataloged tables with row estimates. Works on Snowflake too.
catalog_table_ddlGet a table's columns and data types.
catalog_table_sampleGet redacted sample rows from a table.
Semantic layer · 4
The org's own definitions, recipes and proven queries.
semantic_mapLoad the org's analytics brief: metrics, recipes, concepts and table notes.
semantic_searchSearch tables, columns and saved recipes in plain English.
semantic_artifact_getRead one recipe, metric or table card, with its validation queries.
semantic_examplesList proven queries that already power dashboards, ranked by confidence.
Query · 1
The escape hatch when no dashboard answers the question.
query_runRun one validated, read-only SQL statement against an org's data.
Tracking links, rotators, URLs and advertisers · 14
For orgs that run affiliate and paid traffic through Cerebro's tracking network.
link_listList an org's tracking links, with filters.
link_optionsLook up the advertiser, traffic source, offer, URL and rotator ids a link needs.
link_requirementsShow which parameters a new link still needs.
link_planBuild and preview the final tracking URL without saving it.
link_createWritesSave a planned tracking link.
rotator_getGet a rotator with every creative, its weight and its status.
rotator_createWritesCreate a rotator to split traffic across offer URLs.
rotator_content_addWritesAdd an offer URL to a rotator, or bring back one it held before.
rotator_weights_setWritesSet the traffic split across a rotator's active creatives.
rotator_content_status_setWritesPause or resume one creative in a rotator.
rotator_status_setWritesActivate or pause a whole rotator.
url_createWritesCreate a landing-page URL for an advertiser's offer.
url_updateWritesChange where an offer URL sends traffic.
advertiser_createWritesCreate an advertiser on the tracking network.
Saved prompts · 3
Run the playbooks your team already saved in Cerebro.
prompt_listList the saved prompts you can see.
prompt_getGet a saved prompt and its text.
prompt_runWritesRun a saved prompt in a new or existing thread.
Threads · 3
Pick up an analysis where someone else left it.
thread_getGet a thread's summary, scope and recent runs.
thread_messagesList a thread's messages.
thread_replyWritesAdd a message to a thread and get the agent's reply.
From sign-up to your agent's first answer
- 01
Sign up and connect a source
Create a free account and connect a CRM, accounting app, ad account or database. - 02
Connect your agent
Add the MCP server URL to your chat app, or run the CLI installer for a terminal agent. - 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.”
“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.”
“One prompt turns into a dashboard that's incredibly useful for somebody, and it took me 15 minutes.”
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.