llms.txt
+34 −4
https://www.jbanalytica.com/llms.txt
− - **model2data**: an MIT-licensed Python generator (v1.16.4 on PyPI, Python− committed, and an MCP server so Claude, Cursor and other MCP clients can− list and describe projects, preview up to 50 rows a table and write the− full dataset.+ - **model2data**: an MIT-licensed Python generator (v1.20.0 on PyPI, Python+ Remote MCP connector, on every plan including Free (within the free plan's+ limits): add https://studio.jbanalytica.com/mcp (Streamable HTTP) as a+ connector in Claude, sign in with a studio account and approve on the consent+ page. No API key, no Python, no config file. In Claude Code:+ `claude mcp add --transport http model2data-studio https://studio.jbanalytica.com/mcp`;+ in claude.ai or Claude Desktop: Settings, Connectors, Add custom connector.+ Claude gets 19 tools: read your projects; write and check a data model,+ create a project, read, write and check a metrics file, see the metric values+ computed over generated data (Pro; on Free for the bundled examples), write, check and save dashboards; and preview+ generated rows (up to 50 a table). It cannot delete projects, share them or+ manage API keys. Each connection appears under API keys in the account menu+ and can be disconnected there.+ committed. A local MCP server (`uvx --from "model2data-studio[mcp]"+ model2data-studio mcp`, with a Pro API key) serves CI and scripts and also+ writes the full dataset to disk.+ Dashboards as files (engine 1.20, dashboard spec 0.1.0): an open, MIT-licensed+ YAML format for a dashboard over a model2data model. A file holds pages of+ tiles (kpi, line, bar, stacked, donut, table, filter, text, note) on a+ 12-column grid; it names metrics, `table.column` dimensions and tables and+ never holds a value. Check a file with `pip install model2data` and+ `model2data dashboard check sales.dashboard.yml`; model2data studio draws it+ with the numbers of the model's generated data.+ Page: https://www.jbanalytica.com/model2data/dashboards/+ Spec: https://github.com/JB-Analytica/model2data/blob/main/model2data/spec/dashboards/README.md+ Schema: https://www.jbanalytica.com/model2data/spec/dashboards/0.1.0/dashboard.schema.json+ - [The schema file behind a clinic network](https://www.jbanalytica.com/blog/schema-behind-a-clinic-network/):+ published 2026-11-09. The model2data schema behind Taleshape's Shaper clinic dashboard, which an AI agent wrote from one prompt: weighted statuses, `when` conditions so bills exist only on completed visits, `after` chains that keep time in order, a lognormal bill amount, growth and skew. Also the gap the original file left (more than half the appointments booked before the patient registered or the practitioner started, with every dbt test green) and the spec 0.5.0 `after` settings that close + - [Stop arguing about the model. Generate all three and look](https://www.jbanalytica.com/blog/stop-arguing-about-the-model/):+ published 2026-10-26. A star schema and a Data Vault are trade-offs, not religions, and the argument is unresolvable at a whiteboard because nobody can see what either one costs. What each shape is for, why medallion is not a fifth option, and how to read all three off one source model.+ - [The clock is not a dependency. Make it one graph instead](https://www.jbanalytica.com/blog/the-clock-is-not-a-dependency/):+ published 2026-10-26. Coordinating ingestion and transformation by a gap in a cron schedule is a silent failure mode: a slow extract means the transform runs on stale data and nothing raises an error. Putting both in one Dagster graph makes dependency, not timing, gate execution.+ - [Everything is a transaction. Every balance is a sum](https://www.jbanalytica.com/blog/everything-is-a-transaction/):+ published 2026-10-19. A prepaid balance that nobody stores, reconstructed as a signed ledger. Three kinds of event normalised into one shape, so that every balance question becomes a sum, the awkward business rules become one case expression, and churn becomes a definition you can argue with in version control.