The DASH:Gen MCP server lets an AI assistant build a dashboard from a file on your computer and save the finished file next to it. You say "make a dashboard from ~/Downloads/sales.xlsx, revenue by region and month"; the assistant uploads the file to DASH:Gen, waits about a minute and saves the HTML dashboard, the Apache Superset bundle or the Power BI project in your downloads folder.
MCP (the Model Context Protocol) is the open standard Claude Desktop, Claude Code, Cursor, VS Code and other assistants use to call tools. The server runs on your own computer; it talks only to dashgen.de, with your API key.
1. What it costs
Every dashboard the assistant builds costs Coins, charged when the run starts — the same list price as in the app, and never out of the app's free daily changes, which stay yours in the app window.
| Run | Price with the default model |
|---|---|
| HTML dashboard | 0.2 Coins |
| A new version of an HTML dashboard (another design, theme, chart type, file or instruction) | 0.2 Coins |
| Apache Superset bundle | 0.25 Coins |
| Power BI project | 0.5 Coins |
A description longer than 2,000 characters doubles the price, and so does an HTML file above the standard size. A run that fails is refunded. Looking things up is free: your balance, the sheets of a workbook, the list of designs, themes and templates, a job's status and the finished file.
2. Get an API key
The server signs in with an API key. Keys come with the Pro and Max plans.
- Open dashgen.de → Account → API keys.
- Name the key (for example Claude on my laptop) and press Make a key.
- Copy the key (
dg_…). It is shown once.
Revoke a key on the same page when you stop using it, or if it may have leaked — it stops working on the next request. At most five keys can be live at once.
3. Install
The server is the npm package @dashgen/mcp-server and needs Node.js 20 or newer.
Claude Code
claude mcp add dashgen -e DASHGEN_API_KEY=dg_your_key -- npx -y @dashgen/mcp-server
Claude Desktop — Settings → Developer → Edit config, then add to claude_desktop_config.json:
{
"mcpServers": {
"dashgen": {
"command": "npx",
"args": ["-y", "@dashgen/mcp-server"],
"env": { "DASHGEN_API_KEY": "dg_your_key" }
}
}
}
Cursor — the same block in mcp. VS Code — the same block under "servers" in mcp, with "type": "stdio" added.
Optional settings, as further env entries:
| Variable | Default | |
|---|---|---|
DASHGEN_OUTPUT_DIR | ~/Downloads/dashgen | where finished files are saved |
DASHGEN_BASE_URL | https://dashgen.de/api/v1 | another deployment of DASH:Gen |
DASHGEN_ENABLE_SHARE | off | true offers the tool that makes a public link |
4. The tools
| Tool | What it does | Cost |
|---|---|---|
generate_dashboard | builds a dashboard from a file path, an https link or pasted CSV/JSON; waits and saves the file | one run |
get_dashboard_job | the state of a run; saves the file once it is finished | free |
revise_dashboard | a new version of an HTML dashboard: design, theme, chart type, a library template, a newer file or a new instruction | one HTML run |
inspect_workbook | the sheets and header rows of a workbook, before a run | free |
get_quota | your balance, the price of each target, the reset date | free |
list_looks | designs, colour themes and reference tables | free |
list_templates | chart templates and Power BI templates you can use | free |
share_dashboard | a public link to an HTML dashboard, or stops it (only with DASHGEN_ENABLE_SHARE) | free |
inspect_model | the tables, columns, measures and relationships of a Power BI model on your disk — read locally, nothing uploaded | free, no server call |
generate_report_for_model | a report on a Power BI model you already have: the .pbip project folder or a .pbit; writes the report beside the model | one Power BI run |
The assistant is told the price in every tool description, and every result says what the run cost and what is left.
A report on a model you already have
You keep your model; DASH:Gen draws the report. Point generate_report_for_model at a .pbip project (or its .SemanticModel folder, or a .pbit) and say what the report should show. The server sends only the model's definition — table, column and measure names, the DAX, the relationships — never a partition's source (a SharePoint site, a server, a file path) and never data; the .pbi folder is not read. What comes back is a report folder and a .pbip placed beside your model folder, never inside it: open the new .pbip in Power BI Desktop and press Refresh. With add_measures: true the design agent may add measures, delivered as one TMDL file beside the project to copy into your model's definition/tables/. Call inspect_model first — it reads the model locally, for free — to name the measures and columns you want in the prompt. The whole workflow, refresh included, is on the A report on your Power BI model page.
You: Build a sales dashboard on ~/reports/Sales/Sales.pbip — revenue by region and month, gross margin, top customers.
Assistant: (inspect_model) Five tables; measures Total Revenue, Gross Margin %, Order Lines… (generate_report_for_model) Done — Sales Dashboard.pbip and Sales Dashboard.Report are beside your model. Open the .pbip in Power BI Desktop and press Refresh. It cost 0.5 Coins.
5. An example
You: Make a dashboard from ~/Downloads/sales-2026.xlsx — revenue by region and the monthly trend. Check the price first.
Assistant: (get_quota) You have 14.6 Coins; an HTML dashboard costs 0.2. (inspect_workbook) The workbook has two sheets; "Orders" has the data, headers on row 3. (generate_dashboard) Done — saved to ~/Downloads/dashgen/Sales 2026.html. It cost 0.2 Coins; 14.4 are left.
You: Same thing in the Brutal design.
Assistant: (revise_dashboard) Saved as ~/Downloads/dashgen/Sales 2026 (2).html, 0.2 Coins.
6. Privacy and limits
- The file goes to dashgen.de and nowhere else; the server keeps nothing. What happens to it there is the same as for an upload in the app.
- The key lives in your assistant's configuration file in plain text. Treat that file like a password and revoke the key if the file is shared.
- A run takes about a minute. If the assistant stops waiting, the run goes on; ask it for the job again and the file is saved then. A failed run is refunded once its status has been read, and the server reads it for you for ten minutes after it stopped waiting.
- The same request retried by the assistant is not charged twice: every run carries an idempotency key.
Everything the server calls is the public API: see the API page.
DASH:Gen