spiculedata/saiku

Open-source semantic layer: one cube for Excel (MDX/XMLA), dashboards, and AI agents (MCP). Mondrian + Apache Calcite.

What it solves

Saiku provides a semantic layer for analytics, allowing users to query complex data cubes without needing to write MDX (Multi-Dimensional Expressions) or complex SQL. It bridges the gap between raw data sources and end-users or AI agents, providing a structured way to explore data through a drag-and-drop interface or a typed API.

How it works

Saiku acts as a middleware layer that translates high-level requests into optimized queries. It uses a fork of Mondrian with a Calcite-based SQL planner to connect to various data engines (such as Trino or Iceberg). For AI integration, it exposes a typed REST API that allows LLM agents to discover schemas, hierarchies, and measures, and then submit JSON-based questions which Saiku translates into validated MDX. It also includes a Model Context Protocol (MCP) wrapper to integrate directly with AI tools like Claude Desktop or Cursor.

Who it’s for

  • Data Analysts: Who want to explore data via a browser-based drag-and-drop interface.
  • AI Developers: Who need a reliable, typed way for LLM agents to query structured business data without the risk of hallucinating complex query languages.
  • Enterprise Architects: Who require a semantic layer that can be embedded into other applications via web components.

Highlights

  • AI-Ready API: A typed REST surface specifically designed for LLM agents with self-correcting validation errors.
  • MCP Integration: Built-in support for the Model Context Protocol for seamless connection to AI IDEs and assistants.
  • Semantic Layer: Supports hierarchies, levels, and measures to simplify data discovery.
  • Modern Tech Stack: Built with SvelteKit 5, Apache Arrow for zero-copy data transfer, and OpenTelemetry for observability.
  • Extensible AI Surface: Admins can define "Skills" (markdown workflows) and "Spaces" (scoped personas) to guide AI behavior without writing code.

Related

  • Project
  • Project
  • Project
  • Project
  • Project