The Basedash MCP server gives Claude Code, Cursor, ChatGPT, and any MCP client the same AI analyst as the app, with your models and permissions. Ask questions and build dashboards without leaving your tools.
14-day trial. No credit card required.
Paid conversions by channel
basedash connectedWhich signup channels drove paid conversions this quarter? Then put the chart on our Growth dashboard.
question "Paid conversions by signup channel, weekly, this quarter"
returned response_message · 1 chart · paid_conversions.csv
Referral is the fastest riser: weekly paid conversions climbed from 18 to 46 this quarter, while paid search slipped from 31 to 24. Basedash used your paid_conversions model.
instructions "Weekly paid conversions by channel, Q3"
dashboard_id "growth"
returned chart url · screenshot
Done. Paid conversions by channel is on the Growth dashboard, and anyone who can open that dashboard can see it.
Powering analytics for 5000+ teams worldwide
Headless analytics
Your client hands each question to the same AI analyst that runs Basedash chat. It reads your models and context, writes and runs the SQL, and returns the answer with charts and CSV files, so your agent gets a checked result instead of a guess at your schema.
From your MCP client
ask_question
"What was net revenue by region last fiscal quarter?"
Basedash analyst
AnsweredRead the net_revenue model · Models
Applied your fiscal calendar · AI context
Ran SQL on Snowflake · 1.4s
Queried only what Finance can see · Access
- ↳response_message
- ↳chart · screenshot
- ↳net_revenue_by_region.csv
Build from your client
Ask your agent for a dashboard and it builds one in your workspace from plain-language instructions, or adds a chart to one you already have. Every result links back into Basedash, and your agent can look up and edit existing work you have access to.
basedash
10 tools
Ask
Build
Look up
ask_question
Ask a question in plain English and get the Basedash analyst's answer. Pass a chat_id to keep going in the same chat.
Scope
- mcp:chat:ask
Inputs
- question required
- chat_id optional
Returns
chat_id, the answer, charts with screenshots, CSV files
get_data_sources
List the databases, warehouses, and apps connected to the workspace, so the client knows what it can ask about.
Scope
- mcp:chat:ask
Returns
Connected data sources
create_dashboard
Build a dashboard in your workspace from plain-language instructions.
Scopes
- mcp:chat:ask
- mcp:dashboards:write
Inputs
- instructions required
Returns
A link to the new dashboard
edit_dashboarddestructive
Change an existing dashboard from plain-language instructions. Clients see it marked destructive.
Scopes
- mcp:chat:ask
- mcp:dashboards:write
Inputs
- dashboard_id required
- instructions required
Returns
A link to the updated dashboard
create_chart
Build one chart from instructions, on a dashboard you name or in your drafts.
Scopes
- mcp:chat:ask
- mcp:dashboards:write
Inputs
- instructions required
- dashboard_id optional
Returns
A link to the chart and a screenshot
edit_chart
Change an existing chart from plain-language instructions.
Scopes
- mcp:chat:ask
- mcp:dashboards:write
Inputs
- chart_id required
- instructions required
Returns
A link to the chart and a screenshot
list_dashboards
List the dashboards the signed-in person can open.
Scope
- mcp:dashboards:read
Returns
Dashboards you can access
get_dashboard
Read one dashboard the signed-in person can open.
Scope
- mcp:dashboards:read
Returns
The dashboard and its charts
list_charts
List the charts the signed-in person can open.
Scope
- mcp:dashboards:read
Returns
Charts you can access
get_chart
Read one chart the signed-in person can open.
Scope
- mcp:dashboards:read
Returns
The chart
Governed by default
The first connection opens an OAuth sign-in in your browser, with no API key to paste into a config file. From then on, every call runs as you: the same source access, row-level security, and hidden data as the app, with separate scopes for asking, reading, and building.
Claude Code wants to connect to Acme
Signed in as [email protected] · Finance
mcp:chat:ask
Ask questions and list connected data sources
mcp:dashboards:read
Read the dashboards and charts you can open
mcp:dashboards:write
Create and edit dashboards and charts
Every call runs with your access
- Data sources
- 4 of 6, by group
- Row-level security
- Region = EMEA
Claude Code is connected
You can close this tab. Questions from Claude Code now run as [email protected], with Finance's access.
Connection cancelled
Claude Code can't reach your workspace until you allow it.
API and Slack
Start a chat over the REST API and get the finished answer back in one request, or stream it as it's written. In Slack, mention @Basedash in a channel and the answer lands in the thread with its charts, under the permissions of whoever asked.
REST API · Start a chat
$ curl -X POST \
".../chats?wait=120" \
-H "Authorization: Bearer bd_key_…" \
-d '{"message": "Active teams by plan?"}'
201 "status": "finished"Dana @Basedash how many teams were active last week, by plan?
Basedash 235 active teams. Scale leads with 82.
What's included
One URL, a browser sign-in, and the controls you already set up in Basedash.
Remote server
Streamable HTTP at one URL, nothing to install.
OAuth sign-in
Connect in the browser, with no API key to manage.
Scoped access
Separate scopes to ask, to read, and to build.
Your permissions
Every call follows the app's access controls.
Charts and files
Answers come back with chart images and CSVs.
Links back to the app
New dashboards and charts open in Basedash.
No half-built work
Basedash removes a dashboard that fails to build.
Included in every plan
Startup and Enterprise, billed as AI usage.
“We ripped out Metabase and stopped pasting results into Claude. The whole analysis now happens in one conversation.”
Phil Leggetter
Head of DevRel · Hookdeck
Read case study →
“For a security-conscious company like ours, Basedash instantly clicked. Reports that took weeks are ready in hours.”
Claudio Godoy
AI Agents Lead · Taxfyle
Read case study →
Which clients connect, how sign-in and permissions work, and what your agent can do once it's in.
Which AI clients can connect to the Basedash MCP server?
Any MCP client that supports remote servers over streamable HTTP, including Claude Code, Cursor, ChatGPT, and Windsurf, plus agent frameworks and internal tools that speak MCP. Add https://charts.basedash.com/api/public/mcp as a remote server. In Claude Code, run claude mcp add basedash --transport http followed by the URL. In Cursor, add a streamable-http server under Settings, then MCP. In ChatGPT, add it under Settings, then Connections. Clients limited to stdio or SSE transports won't connect.
Do I need an API key to use the MCP server?
No. The first time your client connects, Basedash opens an OAuth sign-in in your browser, and you approve the connection with your normal Basedash account. The client keeps the token it receives, so there's no key to paste into a config file or rotate by hand. If the sign-in window never appears, check that pop-ups aren't blocked, then remove the server from your client and add it again, since some clients only open it on the first attempt.
Which permissions apply to requests from an MCP client?
Every tool call runs as the person who signed in. Basedash applies the same data source access, row-level security, and AI data visibility settings as the app, so an agent can only query what that person can query and only sees dashboards and charts they can open. OAuth scopes add a second layer: asking questions uses mcp:chat:ask, reading dashboards and charts uses mcp:dashboards:read, and creating or editing them needs mcp:dashboards:write as well as mcp:chat:ask.
What can my agent do through the MCP server?
ask_question sends a question to Basedash's AI analyst and returns the answer, any charts, and CSV files, and it can continue an earlier chat for follow-ups. get_data_sources lists what's connected. create_dashboard, edit_dashboard, create_chart, and edit_chart build from plain-language instructions and return links into Basedash. list_dashboards, get_dashboard, list_charts, and get_chart find existing work the signed-in person can access.
Should I use the MCP server or the REST API?
Use the MCP server when someone works in an AI client and wants Basedash as one of its tools: sign-in is OAuth, and the client decides when to call it. Use the REST API when your own code needs answers, like a backend job, an internal app, or a scheduled script. It authenticates with an API key from Settings, can wait for the finished answer or stream it over server-sent events, and also covers charts, dashboards, models, automations, and workspace administration.
Is the MCP server included in my plan?
Yes. The MCP server is included in both the Startup and Enterprise plans, with nothing extra to turn on. Questions asked through it run on the same AI analyst as the app, so they count toward your workspace's AI usage like any other chat. If the workspace runs out of AI usage, questions from MCP clients stop being answered until usage is available again, while lookups of existing dashboards and charts keep working.
Where do dashboards and chats created over MCP end up?
Dashboards and charts your agent creates are saved to your Basedash workspace like any other. A new dashboard appears with the rest, and a chart created without a dashboard lands in your drafts, with a link back in the tool result either way. The conversation itself stays in your client: chats started over MCP are kept out of the chat list in Basedash, so agent traffic doesn't crowd the app's history.
Can the Basedash agent call other MCP servers too?
Yes, in the other direction. The MCP server lets outside agents use Basedash, and MCP connectors let the Basedash agent use outside tools. Add a remote MCP server, such as Linear, HubSpot, or one your team built, and the agent can pull context from it and take actions there while it analyzes your data. You set each tool to run on its own, wait for approval, or stay blocked.