Business Intelligence
PowerBI-inspired reporting engine with interactive charts, cross-filtering, and a dedicated web viewer.
Data Model
Reports are built on top of data models that define sources, calculated columns, measures, and relationships. Sources map to MCP tools that provide the raw data. DuckDB serves as the analytics engine for both server-side and client-side query execution.
Sources
Map any MCP tool to a data source. Data is fetched, loaded into a transient DuckDB instance, and queried with SQL.
Calculated Columns
SQL expressions added as computed columns on existing tables for derived metrics.
Measures
Named aggregate expressions (SUM, AVG, etc.) reusable across multiple visuals in a report.
Visual Types
Charts
BarChart, LineChart, PieChart, ScatterPlot, Heatmap, Radar. Rendered with ImPlot (native) and ECharts (web).
Data Displays
Table (raw data grid), Card (single KPI value), Gauge (progress indicator).
Interactivity
Cross-filtering between visuals, time grain selection (day/week/month/quarter/year), configurable aggregation (SUM/AVG/MIN/MAX/COUNT).
Typed Query Pipeline
Data flows through a typed pipeline: source databases store values with native types, duckdb_typed_query preserves types through JSON, and the transient DuckDB creates columns with correct types. No TRY_CAST guessing needed.
Web Viewer
A dedicated Angular application (bi-viewer) for viewing reports in the browser. Connects via WebSocket with RBAC authentication. Pixel-perfect rendering with absolute positioning matching the native client layout. Session persistence across page reloads.
