model2data studio
Remote MCP server (OAuth) to design a data model, generate realistic synthetic data, define metrics with known answers and build dashboards from a description. Free plan within its limits.
เซิร์ฟเวอร์ MCP แบบโฮสต์
npx add-mcp 'https://studio.jbanalytica.com/mcp'ติดตั้งลง Claude Code, Codex, Cursor และอื่นๆ
เอกสาร
- Under a minute from one sentence to a saved project
- 4 tables, 5,440 rows customers, products, orders and order lines, every key joined
- €109,975.29 revenue over 1,352 orders, checked against the generated data
- 1 dashboard KPIs, filters and charts, computed from the same rows
Every data project starts with a model and no data.
Access takes weeks, production data is full of personal information, and in the meantime nothing gets built or tested. Faking a column is easy. Faking a whole model, where every foreign key points to a real row, is not.
Analytics engineers
Build and test before source access
Seeds that look like production, a dbt project that runs, and tests that mean something, from the first day of the project instead of the fifth week.
Consultants
Show a working stack with no client data
Bring the client's own model to the first workshop as data, a dbt project and a dashboard they can click through. Nothing from their systems needed.
Data leads
Agree the numbers before anyone builds
Define each metric once, see the value it has to come to, and let people comment on a dashboard before anyone builds it.
One model in. Five things out.
Start from SQL you already have, a dbt project, a model in a GitHub repository, or a blank page. Everything after that comes from the one model.
In
Your data model
Write it as YAML or DBML, paste CREATE TABLE statements, import a dbt schema.yml, open a dbt project, or ask Claude for one.
- 01 Realistic data every key joined
- 02 Messy data, on purpose with the tests that should fail
- 03 A dbt project that runs under
dbt build - 04 Known answers the right value for every metric
- 05 A dashboard as code, ready to share
Ask Claude for a project. Get one that holds.
Add the studio to Claude as a connector, and Claude builds with the studio's own tools: the model, the metrics and their values, and the dashboard. Every file is checked by the studio before it is saved, so what Claude hands you opens, generates and adds up.
- 1 Add it to Claude. One click from the Claude directory, in claude.ai and Claude Desktop. In Claude Code or another MCP app, add the URL.
- 2 Sign in and approve. The consent page says what Claude can and cannot do. No API key, no Python, no config file.
- 3 Ask in one sentence. Claude creates the project in your account and gives you the link.
On every plan, Free included, within your plan's limits. Listed in the Claude directory as a Community connector.
# in Claude Code
claude mcp add --transport http model2data-studio \
https://studio.jbanalytica.com/mcp
# any other MCP app: the URL
https://studio.jbanalytica.com/mcp
The prompt from the demo
“Build me a model2data project for an online coffee roastery in Antwerp: customers, products, orders and order lines. Add revenue, orders and average order value as metrics, and a sales dashboard. Give me the link when it's done.”
- Read your projects, write and check a model, add metrics and see their known values (Pro, or on the bundled examples on Free), build dashboards, and preview up to fifty generated rows a table
- Delete or share projects, or manage API keys. Disconnect it any time under API keys in the account menu
In the Claude app: add the studio as a custom connector, sign in and approve, then ask. Claude builds the model, the metrics and the dashboard, and you open the project in the studio. Silent, with captions on screen.
Everything a data project needs before the real data arrives.
The input · your model
Start from what you already have
Paste a script from Snowflake, BigQuery, Databricks, PostgreSQL, MySQL, SQL Server or DuckDB: the tables, keys and relationships become a model, and the import says what it skipped. Or open a dbt project from GitHub and see it as a diagram drawn from its relationships tests.
The diagram redraws as you type, with an example value next to every column, so you see what the data will look like before a single row exists.
Modelling, importing and the diagram are free, with no account needed to start.

model2data studio: a schema in the editor on the left and, on the right, the diagram of five connected tables with an example of the value each column will generate.
01 · Realistic data
Data that behaves like a business
Every foreign key points to a real parent row, composite keys included, and with one hint an order never comes before its customer signed up. Orders arrive at lunch rather than at 3 a.m., grow through the year and peak in the gift season, with a real long tail.
Above the grid, each column shows a chart of what it generated next to the hint it asked for, and the summary names any column that fell back to placeholder text instead of hiding it.
Shaping the data (business hours, growth, seasonality, skew, nulls, distributions) is Pro. Every hint →

The Data tab after generating: five tables, 500 rows, no columns on placeholder text, and above the orders grid a chart per column showing skewed customers, business-hours timestamps and a long-tailed total.
02 · Messy data, on purpose
Prove your pipeline catches what real sources do
Switch data quality from Clean to Messy and the studio plans realistic defects for every table: duplicate keys, missing values, orphaned foreign keys, values that do not belong, and SCD2 history. Under What should break it lists the dbt tests that ought to fail, and on which rows.
Training is a seeded set of defects to practise finding, with one failing dbt test per kind.
Messy and per-table defects are Pro. Training is free on the bundled examples.

The Data quality panel set to Training on the coffee webshop example: Clean, Messy (Pro) and Training, four defects planned across customers, products, orders and order items, saved in the model as run.defects: training.
03 · A dbt project
A dbt project that runs, and your end layer with it
Seeds, a staging model per table, sources and tests derived from your keys, relationships and hints, ready for dbt build on DuckDB or Postgres. Add a star schema, a Data Vault or a semantic layer for dbt MetricFlow, Apache Ossie or Lightdash, worked out from your foreign keys.
Before you download, the export lists every file in the zip and what it is for.
Read every file free in the browser. Downloading the project is Pro.

The Export dbt project dialog: staging only, star schema, Data Vault or star plus semantic layer, DuckDB or Postgres, and a tree of every file in the zip, from seeds and staging models to a test per metric and metric_values.json, ending in cd dbt_coffee_webshop and dbt build.
04 · Known answers
The right number for every metric, before you write the SQL
Define revenue, orders or a cancellation rate once, in a metrics file next to the model. Because the data is generated, the studio knows what each one must come to: it shows the exact value and its value per month.
Those values ship with the dbt project as metric_values.json and a data test per metric, so your models, and later the real dashboard, have to produce the same figures. That is your acceptance test.
Known values on any model are Pro. Free sees them on the bundled examples.

The Metrics view of the coffee webshop: cards for revenue, orders, average order value, cancelled orders, cancellation rate and coffee units sold, each with its definition, its known value and a bar per month.
05 · Dashboards as code
A dashboard people agree on before anyone builds it
A dashboard is a small YAML file next to the model, in an open format. Edit it on the canvas or as text. Every number is computed from the metrics over the generated data, so a tile can never disagree with the metric it shows.
Send a link: stakeholders filter, click through and comment on the tile itself, with no account, and the comment waits for you in the studio, on the tile it is about.

A shared dashboard of the coffee webshop: four KPIs, revenue by month, revenue by country and coffee units sold by origin.
Safe to use on day one of an engagement.
Privacy
No production data goes in
The studio works from a schema, never from your rows, connection strings or credentials. What comes out is synthetic. It is hosted in the EU, in Frankfurt.
Determinism
Same seed, same bytes
The same model, settings, seed and anchor day give byte-identical output on the same engine version, in the studio, from the CLI and in CI. Safe to commit as fixtures and diff.
No lock-in
Open formats, open engine
The model, metrics and dashboard formats are open and versioned, with JSON Schemas. The generator is MIT licensed on PyPI and works without the studio.
Honesty
It names its own gaps
Columns that fell back to placeholder text are listed after every run, and the README of the engine says what it does not handle.
The joins hold, so an AI can build on top.
Jorin Vogel at Taleshape took one model2data schema for a network of eight clinics and generated 1,500 patients, 6,000 appointments and a dbt project with 71 tests that all pass. He pointed Shaper, his open-source dashboards-as-code tool, at the same DuckDB file, and an AI agent wrote the whole dashboard from one prompt, with no fixes.
That works because the data underneath holds. Every appointment points to a real patient, and only completed visits get billed.
Free to try on your own model. Pro for the whole workflow.
Free is the whole modelling workflow, capped on how much data comes out. Pro is the full product for one modeller. Team is coming soon for a data team of up to five, and Business is a conversation. All prices exclude VAT.
Free
Try it on your own model. No card needed.
€0no card, no time limit
- Live editor, diagram and previews, share links and embeds
- 100 rows per table, 2 projects
- Import DBML, SQL DDL or a dbt
schema.yml - Export CSV, DBML, SQL DDL, and the diagram as PNG, SVG or PDF
- Preview the dbt project, the star schema or the Data Vault in the browser
- Claude connector: build models, metrics and dashboards from Claude
Pro
For the modeller who wants a working dbt project before the data shows up.
€990 a year, excl. VAT (€82.50 a month)
- 50,000 rows per table, unlimited projects
- Shape the data: business hours, growth, seasonality, skew, nulls, distributions
- Download the whole dbt project, with a DuckDB or Postgres profile
- A star schema or a Data Vault derived from your model, as dbt models with tests
- Version history on every project, up to 50 versions kept
- CLI and API keys for CI, with drift checks
- API keys and a local MCP server for CI and scripts (the Claude connector is on every plan)
- Two-way git sync: your model as a YAML file in a GitHub repository, push and pull with conflict detection
- Email support
Team
Coming soon. One workspace for the whole data team. Same fixtures for everyone, in CI too.
€3,990 a year for up to 5 users, excl. VAT
- Everything in Pro, for up to 5 users
- Shared projects and fixtures
- One flat price, no seat counting
- Email support
Business
For larger teams and AI analytics. Talk to Jarich.
Custompriced in a conversation
- Everything in Team, for as many users as you need
- Higher row limits
- Profiling your own database inside your network, for a production-shaped replica (in development, scoped with you)
- Fixtures with known answers, when they ship
- Priority support and an onboarding call
Annual is ten months' price for twelve. Payments go through Paddle, our Merchant of Record. Team is not open yet: join the waitlist and you hear first when it is.
All four plans, feature by feature, and how paying works →
Two things on the way. Neither has a date.
Each one came out of a conversation with someone using the studio. Tell me which one you need, and it moves up the list.
Coming next
From dummy to real
Plug in your real source. model2data suggests the mappings (KUNNR to customer_id) and rewrites your staging models.
Planned for Pro
Coming next
Fixtures with known answers
Known values per metric are already here. This goes further: define a measure and its grain, and get small datasets with the correct result, plus variants that should and should not change it.
Planned for Business
Want one of these first? Tell me.
The engine is MIT licensed and on PyPI.
The generator behind the studio is an open-source Python package you can install and read today. It works fine without the studio. The studio is where the shaping, the previews and the CI checks live. What the engine does, and what neither does.
# install it
pip install model2data
# point it at a data model
model2data --file examples/ecommerce.dbml --rows 200 --seed 42
# add dbt unit-test fixtures from the same model
model2data --file examples/ecommerce.dbml --rows 200 --seed 42 --unit-tests
# and it is already a working dbt project
cd dbt_ecommerce && dbt build
- MIT licensed. Every line is readable, including the parts we got wrong first.
- Unit-test fixtures included.
--unit-testswrites dbt unit-test fixtures from the same model, free, in the engine itself. - CI on every push. A project is generated from an example schema and run through a real
dbt build, on the oldest supported dbt-core and on the latest, plus a Postgres integration run. - Limitations written down. The README lists what it does not handle, in the same file that sells it.
The questions that come up.
Do I need an account?
Not to try it. The editor, the live diagram, the example values and a preview of the generated data work without signing in, a few previews a day. Downloading the data, the dbt preview and saving projects need a free account, and so does connecting Claude.
Does my data leave my machine?
No production data goes in. The studio works from a schema, not from your data, and generates synthetic rows from it. It is hosted in the EU, in Frankfurt. If you need data shaped like a real database, that is a Business conversation: the profiling would run inside your own network, so no values leave it.
Can I use it from Claude or Cursor?
Yes, on every plan, Free included. In claude.ai or Claude Desktop, add it from the Claude directory; in Claude Code or another MCP app, add https://studio.jbanalytica.com/mcp as a connector. Then sign in with your studio account and approve on the consent page. No API key, no Python and no config file. Claude can then read your projects, write and check a data model, add metrics and see their known values over generated data (Pro, or on the bundled examples on Free), build dashboards and preview generated rows, up to fifty a table, within your plan's limits. It cannot delete or share projects or manage API keys, and you can disconnect it under API keys in the account menu. API keys, the CLI and the local MCP server for CI stay on Pro.
Is the data the same every time?
Yes, when you want it to be. Turn on the seed and the run is pinned to a day: the same model, settings, seed and day give byte-identical output on the same engine version, in the studio, from the CLI and in CI. That is what makes the output safe to commit as fixtures and to diff.
Are dashboards available to everyone?
Yes, on every plan, Free included. Build a dashboard on the canvas or write it as a file in the open dashboard format, which is documented on the dashboards page. Share it with a link and let people comment.
Can I use it without dbt?
Yes. Export the data as CSV, and the schema as DBML or as SQL DDL for PostgreSQL, MySQL or SQL Server. The dbt project is one way out, not the only one.
Which warehouses does it support?
Import reads SQL from Snowflake, BigQuery, Databricks, PostgreSQL, MySQL, SQL Server and DuckDB. The dbt project comes with a DuckDB or a Postgres profile today, and the CSV files and the SQL DDL load anywhere else you need them.
What happens when my real data arrives?
The staging models are the seam. Point them at the real tables instead of the seeds, and the models, tests and fixtures you built on top keep working. Having model2data suggest that mapping for you is on the list under Coming next.
Can I cancel anytime?
Monthly plans can be cancelled any time and run to the end of the paid period; annual plans are paid for the year. Payments go through Paddle, our Merchant of Record, and any payment can be refunded within 14 days.