MCP, shell CLI, or in-app chat — pick the surface that fits your workflow. Same tools, different drivers.
Pick your driver
Every tool below is the same tool — only the way you call it differs. MCP is AI-driven (a model in your client decides when to call which tool). Shell CLI is not — you call commands directly from a terminal or script. Chat is the in-app surface at DataUnmess Studio.
Hosted MCP endpoint for your AI client.
Paste our hosted endpoint and an API key into Claude Code, Gemini, Claude Desktop, Cursor, Windsurf, ChatGPT, or any MCP-compatible client. Their AI then invokes DataUnmess tools on your behalf — no in-app tokens.
Pick this when: You already pay for an AI subscription and want it to drive DataUnmess.
Headless commands. No AI involved.
Run dash-ai query, dash-ai chart, dash-ai transforms run directly in your terminal. Deterministic, scriptable, perfect for cron jobs and CI pipelines. Only a subset of tools have a direct CLI.
Pick this when: You want scheduled jobs or scripted automation. The AI is not in the loop.
Natural language inside DataUnmess Studio.
Open DataUnmess Studio, type what you want, and the AI calls the tools below. The friendliest path, but the programmatic surfaces above are more battle-tested for serious workflows.
Pick this when: You want a quick exploration without configuring an external client.
26 tools
Each row is one tool. Cells show how to invoke it on each surface. ✓ available · excl intentionally excluded · — not applicable
| Tool | MCP | Chat | Shell CLI | What it does |
|---|---|---|---|---|
| Charts & theming | ||||
| build_chart | ✓ | ✓ | dash-ai chart | Create a chart from a dataset query. |
| update_chart | ✓ | ✓ | dash-ai charts update | Edit an existing chart's title, type, or fields. |
| remove_chart | excl | ✓ | excl | Delete a chart. Chat-only — destructive ops need conversational confirmation. |
| set_theme | ✓ | ✓ | dash-ai theme set | Apply a theme preset to the active dashboard. |
| set_category_colors | ✓ | ✓ | dash-ai theme colors | Pin specific colors to category values across charts. |
| build_analysis | ✓ | ✓ | dash-ai analysis build | Add a written analysis card alongside the charts. |
| Data & connections | ||||
| query_data | ✓ | ✓ | dash-ai query | Query an imported dataset (CSV/Excel/Sheets snapshot). |
| query_connection | ✓ | ✓ | dash-ai connections query | Run a SELECT against a connected database (Postgres/MySQL). |
| query_github | ✓ | ✓ | dash-ai github query | Browse a connected GitHub repo's code, structure, and tech stack. |
| query_google_sheets | ✓ | ✓ | dash-ai sheets read | List spreadsheets and read ranges from a live Google Sheets connection. |
| create_connection | ✓ | ✓ | dash-ai connections create | Return a deep-link to add a new connection. Never accepts credentials directly. |
| upload_dataset | ✓ | ✓ | dash-ai datasets upload | Programmatic dataset injection (rows + schema). |
| Flowcharts | ||||
| build_flowchart | ✓ | ✓ | dash-ai flowcharts build | Create a flowchart from nodes/edges or Mermaid. |
| update_flowchart | ✓ | ✓ | dash-ai flowcharts update | Add, remove, or rename nodes and edges. |
| duplicate_flowchart | ✓ | ✓ | dash-ai flowcharts duplicate | Copy the current flowchart under a new name. |
| remove_flowchart | excl | ✓ | excl | Delete a flowchart. Chat-only — destructive ops need conversational confirmation. |
| Data Pipelines | ||||
| build_transform_flow | ✓ | ✓ | dash-ai transforms build | Author a pipeline. Engine routes by source/sink: same-DB → SQL pushdown, mixed → DuckDB, api/xlsx → Python. |
| validate_transform_flow | ✓ | ✓ | dash-ai transforms validate | Dry-compile and sample-run a pipeline. Returns per-step SQL and sample rows. |
| run_transform_flow | ✓ | ✓ | dash-ai transforms run | Execute a pipeline and write to its configured sink. |
| get_transform_run | ✓ | ✓ | dash-ai transforms run-info | Inspect a single run — per-step status and compiled SQL on failure. |
| list_transform_runs | ✓ | ✓ | dash-ai transforms runs | List recent runs, optionally filtered by pipeline. |
| Workspace | ||||
| update_flow | ✓ | ✓ | dash-ai flows update | Rename and/or move a flowchart between folders. |
| update_dashboard | ✓ | ✓ | dash-ai dashboards update | Rename and/or move a dashboard between folders. |
| update_transformation | ✓ | ✓ | dash-ai transformations update | Rename and/or move a pipeline between folders. |
| Chat affordance | ||||
| call_mcp_tool | excl | ✓ | excl | Invoke a tool on a connected third-party MCP server. Chat-only — prevents MCP-in-MCP recursion. |
| suggest_next_steps | excl | ✓ | excl | Render clickable follow-up buttons in the DataUnmess chat panel. Chat-only — UI affordance. |
Advanced: the MCP server is hosted on our Vercel endpoint by default. You can also self-host it locally with dash-ai serve — same tools, same protocol, runs on your machine.
No AI required
The shell CLI also exposes read-only listing and admin commands that aren't AI tools — useful for scripting and inspection.
| dash-ai datasets list | List all imported datasets in the workspace. |
| dash-ai datasets info <name> | Show columns, row count, and a sample of a dataset. |
| dash-ai connections list | List all configured data connections. |
| dash-ai flows list | List flowcharts in the workspace. |
| dash-ai dashboards list | List dashboards in the workspace. |
| dash-ai transforms list | List pipelines in the workspace. |
| dash-ai serve [--http] [--port 3100] | Self-host the MCP server locally (alternative to the Vercel-hosted endpoint). |
Add -f json, -f table, or -f compact to any command to control output format.
Common questions
Yes for any surface that touches your data — MCP, Shell CLI, and Chat all require a DataUnmess workspace. The Chat surface uses your browser session; MCP and the Shell CLI use an API key issued from your account settings.
For now, run the MCP server locally or expose it through your Cloudflare Tunnel at mcp-dev.dataunmess.ai. Later, hosted MCP will move to a separate backend instead of the public frontend host.
Destructive operations (remove_chart, remove_flowchart) need conversational context to confirm intent before deleting. The web chat can ask 'are you sure?' and remember the answer; external MCP clients cannot reliably do that. We exclude these from MCP rather than risk an AI deleting work without confirmation.
Yes. Add our hosted MCP endpoint plus an API key to Claude Code, Gemini, Claude Desktop, Cursor, Windsurf, ChatGPT, or any MCP-compatible client. Their AI then drives DataUnmess tools using tokens from your subscription. No in-app AI tokens consumed. See the Connect MCP page for setup steps.
Use the shell CLI for scheduled jobs, CI pipelines, and scripts where you don't want an AI in the loop. The CLI is deterministic — same command, same output. MCP is for humans collaborating with an AI; the CLI is for machines following a script.
A gap is a tool we plan to support on that surface but haven't shipped yet. For example, upload_dataset works via MCP today but not yet via Chat or MCP CLI. Gaps are tracked in TOOL_PARITY.md and addressed in priority order.
Two minutes from zero to a working MCP connection in Claude Code, Gemini, Claude Desktop, Cursor, or Windsurf.