Semanticus
Documentation

Diagram

A live entity-relationship diagram of your model: tables coloured by role, relationships drawn with their real cardinality, and a layout that persists beside the model. It opens on a bus-matrix view so the star schema reads at a glance, and your Claude sees the very same structure over MCP.

In the Studio

The Semanticus model diagram: tables coloured by role, connected by typed relationship edges, on a dark VS Code canvas.

The Diagram tab renders tables as draggable nodes and relationships as typed edges, with automatic layout. It opens in a bus-matrix view by default so facts and the dimensions they share line up immediately; you can switch to layered or free layouts and use Auto-arrange or Fit.

Edges carry the real relationship shape: cardinality with crow's-foot markers, single versus bidirectional cross-filter, and active versus inactive state, each tinted to the line's state. Isolated tables (in no relationship at all, the classic star-schema smell) stand out at once.

You build structure on the canvas. Use the + Add table picker to place a table, + related to pull in a table's neighbours, and ✕ remove to drop one from the view. To create a relationship, drag from a column on one table to a column on another. (VS Code does not allow dragging from the native model tree onto a webview, so tables enter through the in-canvas picker rather than a tree drag.) You can also drill from a table to its measures without leaving the diagram, and the positions you set survive reloads.

Over MCP

The same structure and layout are available to your Claude:

model_graph_summary                 # -> counts + any disconnected visible tables
get_model_graph                     # -> full ER: tables + typed relationships
get_layout                          # -> saved x/y for placed tables
save_layout  [{ ref: "table:Sales", x: 320, y: 120 }]   # merges + re-keys by LineageTag

The layout follows the model, not the file

Positions are keyed by LineageTag, so renaming or re-saving a table keeps it where you put it. The layout lives in a .semanticus/layout.json sidecar beside the model; it is not a model edit, so it never appears in the model diff and a tidy diagram never shows up as a pending change when you deploy or commit. Semanticus also reads Power BI Desktop's own diagramLayout.json as a read-only base layer and overlays your saved positions on top, so it never writes that native file.

The canvas is live

The diagram redraws on model/didChange. Add a relationship over MCP or in the properties grid and the edge appears immediately, tinted to its cardinality and cross-filter state, no refresh needed.