// the find
spiculedata/saiku
Open-source semantic layer: one cube for Excel (MDX/XMLA), dashboards, and AI agents (MCP). Mondrian + Apache Calcite.
Saiku is a 15-year-old OLAP browser that got a serious 2026 overhaul: Mondrian + Apache Calcite as the query engine, Apache Arrow for result transport, and a typed REST/MCP surface for LLM agents to query cubes without touching MDX. It's for teams that have dimensional data and need it reachable by both Excel (XMLA) and AI tooling without buying a commercial semantic layer.
The AI Query API is genuinely well-designed — structured error responses with {status, field, available} let an agent self-correct without scraping logs, which most BI tools don't bother with. Shipping a bundled saiku-mcp binary means Claude Desktop / Cursor can wire to a running instance with one JSON block, zero extra infra. The OpenTelemetry integration is opt-in and zero-overhead when off — just set OTEL_EXPORTER_OTLP_ENDPOINT and every Mondrian-emitted SQL becomes a child span. Apache Arrow as the cellset wire format is the right call; sharing a zero-copy envelope between the browser and programmatic consumers removes a whole class of serialization bugs.
The build setup is a trap: GitHub Packages requires a classic PAT even for public packages, and the 401 you get without one gives no hint why — the README documents this, but it will still brick first-timers for 30 minutes. Mondrian 4.8.1 is a Spicule fork published to GitHub Packages, which means you're betting on one commercial vendor's maintenance cadence for your core query engine. The Calcite backend is the default but legacy SqlQuery is still a flag away, which suggests Calcite isn't fully battle-tested yet. Dashboards, YAML semantic layer, AI query, MCP, GraphQL — the feature surface grew fast in a short window; the observability docs themselves note Tier 2 custom spans for ThinQueryService are not yet covered, which hints at depth gaps elsewhere.