Every Tableau developer knows the gap. The data is clean, the CSV is sitting in a folder, the stakeholder already knows what they want to see, and yet the next hour disappears into clicking. You drag pills onto shelves. You fix an axis that insists on starting at zero. You rebuild the same profit-ratio calculation you've written a hundred times before. None of it is hard. All of it is slow.
I've spent more than a decade in enterprise presales, and a large part of that time has been spent in exactly that gap: taking data that's ready and turning it into a dashboard that's ready. So when AI agents became genuinely capable, the obvious question was whether an agent could close that gap for me.
The short answer is yes, but not the way I first expected. Here's the full story, step by step.
Step 1: I started with an MCP server
My first attempt was the approach everyone reaches for today: a Model Context Protocol server. I built one called Twilize, which exposes Tableau operations as tools a language model can call.
MCP is a great protocol. The model gets a set of tools (listing data sources, running queries, fetching workbooks) and decides, turn by turn, which one to call next. It's a conversation between the AI and your tools.
For certain jobs, that conversation is exactly right. Ask "which region is dragging down Q3 margin?" against a governed Tableau environment and an MCP-connected agent shines. It explores, queries, and reasons its way to an answer.
Then I asked it to build a complete sales dashboard, and I started noticing the cracks.
Step 2: I found out that building isn't the same as answering
A polished dashboard isn't a Q&A task. It's a construction task with dozens of interdependent decisions: which fields become KPIs, what the time grain should be, which chart suits which measure, how everything fits on one canvas, which calculations are needed and whether they'll actually compile.
When you give that job to a free-running agent, four problems show up quickly.
It needs a live Tableau connection. MCP works on a running Tableau Server or Cloud site, with credentials and published data sources. If you're an analyst holding a spreadsheet, you usually don't have that, and you certainly don't have admin rights to set it up.
It's non-deterministic. Ask the same agent to "build a sales dashboard" twice and you can get two different sequences of tool calls. Sometimes you get a half-built result because the model lost track partway through. That's fine in a chat. It's a real problem when you need something you can hand over.
Someone has to check the output, and that someone is you. Models invent field names that don't exist. They write calculations that won't compile. They'll happily build a map for a dataset with no geographic fields at all. With a raw MCP setup, catching all of that is your job.
It assumes you know how to drive an agent. Editing JSON config, managing a client, handling API tokens, guiding a model through a multi-step build: developers are fine with this. For the analyst with a deadline, it's a wall.
None of this means MCP is bad. It means I was using a conversational protocol for a manufacturing job.
Step 3: I wrapped the model in a pipeline
The shift in my thinking was simple. The AI should make the design decisions. It should not be responsible for the scaffolding.
So I built TabGen, a small, free Windows app that places the model inside a deterministic pipeline. Every run follows the same five stages.
Profile the data. TabGen reads your CSV, Excel file, or database connection and builds a compact profile: field names, data types, which columns are dimensions and which are measures, and whether there's anything date-like or geographic.
Parse the intent. You describe the dashboard in plain English, the way you'd explain it to a colleague. For example:
Executive sales overview: KPIs for total sales and profit, sales trend over time, top 10 products, and sales by region.
The model turns that sentence into a structured plan: two KPI cards, a time-series line, a top-N bar chart, and a regional map.
Validate against the real schema. This is the stage raw agents skip. Every field the model references is checked against the actual data. Every calculation is checked. If the model proposes a map and there's no geography, that element is dropped. Anything that fails validation never reaches the file.
Assemble from proven templates. The validated plan is built using workbook structures I know open correctly in Tableau, not XML the model improvised on the spot.
Package the workbook. The output is a standard .twbx file. You open it in Tableau Desktop or the free Tableau Public and everything is editable.
For the prompt above, what comes out is exactly what was described: KPI cards at the top, the sales trend, the top-10 products bar chart, and the regional map, laid out on a single dashboard. And because the pipeline is fixed, you get a complete, openable workbook every time, not just when the model happens to have a good run.
Step 4: I made privacy and setup non-issues
Two concerns come up in every enterprise conversation I've had in presales: Where does my data go? and How painful is this to install? I designed TabGen to answer both before anyone asks.
It runs entirely on your machine. The app bundles its own Python runtime and opens in your browser on localhost. There's nothing to configure.
You bring your own AI key. TabGen works with your own Anthropic (Claude) or OpenAI (ChatGPT) key. The key stays in memory for the session and is never written to disk.
Your rows stay local. Only a compact schema and a small sample of rows are sent to the model, which is enough for it to understand the shape of the data. The full dataset never leaves your computer.
Installation is a double-click, and the interface is a text box and a Generate button.
Step 5: I let Tableau do the finishing
This is the part I most want people to understand: TabGen doesn't try to replace Tableau or the person using it.
It writes the first draft. Tableau is still where you finish. Change a mark type, adjust the colour palette, tweak a tooltip, add the one custom calculation only your business understands, then publish. The tedious 80% is done, and you spend your time on the 20% that actually requires judgement.
That's also why I don't believe AI will replace Tableau developers. It will replace the clicking. The thinking stays with you.
So when should you use which?
After building both, here's how I'd summarize it:
An MCP server gives a model access. TabGen gives you an artifact.
Use an MCP server for conversational analytics over a governed Tableau environment, or when you're building your own agentic workflows and want the model to explore freely.
Use TabGen when you have a file or a database, a clear idea of what you want to see, and no interest in spending the next hour clicking. "I have a CSV and I want a good dashboard in two minutes" is exactly the problem it was built to solve.
Try it yourself
TabGen can be downloaded at tableaugen.com. It runs locally and works with your own Claude or ChatGPT key. Point it at a dataset, type a sentence, and look at the first draft. Within a minute you'll know whether it fits the way you work.
If you try it, I'd love to hear what you point it at first. Leave a comment and tell me what worked and what broke. Those reports are how the pipeline gets better.
Top comments (0)