In 2021 I wrote here how to load data from Mondrian into Power BI Desktop. The short version of that article was: a live connection isn't possible, so you have to import data with an MDX query.
That's no longer true. eMondrian now connects to Power BI live — and to AI agents too.
TL;DR
- Power BI connects live to eMondrian through the DAX module — no data import, no SSAS. Your data stays in ClickHouse or your SQL database.
- AI agents connect through MCP — they list catalogs, read the semantic model, run queries and can even draft new cubes for you.
- One semantic model, defined once, serves Excel, Power BI and AI agents with the same measures and the same numbers.
You can try all three on the public demo in two minutes, or install Community and evaluate DAX and MCP for 30 days with a free key.
Why this matters
eMondrian is built on Mondrian, the open-source OLAP engine. You describe your business model once — cubes, dimensions, hierarchies, measures like Revenue or On-Time Rate — and eMondrian turns every question into SQL against your database.
Excel has always worked well with this: PivotTables speak MDX over XMLA, the same protocol Microsoft Analysis Services uses.
Power BI was the missing piece. When Power BI connects live to an Analysis Services–style server, it doesn't send MDX — it sends DAX. Classic Mondrian doesn't understand DAX, so Power BI couldn't use Mondrian cubes live. Teams imported data into Power BI and re-created every measure there — exactly the duplication a semantic layer is supposed to remove.
At the same time a new kind of client appeared: AI agents. Pointed at raw tables, an agent has to guess joins and formulas, and two agents (or an agent and a report) easily disagree on what "revenue" means. Pointed at a semantic model, the agent uses the definitions your business already agreed on.
The new eMondrian addresses both.
Power BI: live connection through the DAX module
What you get
- In Power BI Desktop: Get data → Analysis Services, server
http://<your-server>/xmla, Connect live. - Your cubes appear as a Power BI semantic model: measures, dimensions and hierarchies, ready to drag into visuals.
- Every visual sends a DAX query to eMondrian; eMondrian evaluates it against the model and sends SQL to your database. Nothing is imported into Power BI.
The DAX module evaluates the queries Power BI sends on the same engine that serves MDX — so a measure defined once in the schema gives the same result in Excel and in Power BI.
You can see exactly what Power BI sends: in Power BI Desktop open Performance analyzer, refresh a visual and copy its DAX query. A simple example on the FoodMart sample:
EVALUATE ROW("Org_Salary", 'HR'[Org Salary])
Why a live connection instead of import or DirectQuery
- No duplicated business logic. Measures live in one place — the eMondrian schema — not in every Power BI file.
- No data copies. Data stays in your database; there's no import refresh to schedule.
- Same numbers in Excel and Power BI. Both clients query the same model.
Note on Microsoft support. Power BI connects to eMondrian through its Analysis Services connector. Microsoft officially supports only a few third-party semantic models, and eMondrian is not one of them. Microsoft support won't help with this setup — eMondrian Enterprise does.
AI agents through MCP
MCP — the Model Context Protocol — is the standard way AI agents such as Claude connect to tools and data. eMondrian now includes an MCP server.
| Tool | What the agent can do |
|---|---|
list_catalogs |
See which catalogs (semantic models) exist |
get_schema |
Read a model: cubes, dimensions, measures and their definitions |
execute_query |
Run MDX or DAX against a catalog |
get_cube_authoring_guide |
Learn how to write eMondrian schemas |
validate_schema |
Check a schema for problems before using it |
save_schema |
Save a new or updated schema |
save_catalog |
Register a new catalog and write its schema file |
read_logs, get_properties
|
Inspect server logs and settings when something goes wrong |
Ask questions in business terms. Connect Claude Code in one line:
claude mcp add --transport sse emondrian http://localhost/emondrian/mcp/sse
Then ask:
Compare the cancellation rate of American Airlines and Delta in January 2022 and explain the difference.
The agent reads the OnTime model, finds the Cancellation Rate measure — already defined as Cancelled / Flights — writes the MDX, runs it on ClickHouse through eMondrian and explains the answer. It doesn't invent its own formula, so its numbers match your Excel and Power BI reports.
Let the agent build your first cube
This is the part I'm most excited about. Describing the first cube has always been the hardest step of an eMondrian evaluation. With MCP, an agent can do most of it:
In catalog MySales, create a cube Sales on the ClickHouse table
sales(sale_date, region, product, quantity, amount). Add a Time dimension from sale_date, Region and Product dimensions, measures Amount and Quantity, and Avg Price = Amount / Quantity. Follow the cube authoring guide, validate the schema, then save it.
One model, three clients
The real point isn't Power BI or MCP on their own. It's that one semantic model now serves all three kinds of clients.
| Excel | Power BI | AI agents | |
|---|---|---|---|
| Protocol | XMLA / MDX | XMLA / DAX | MCP |
| Typical use | PivotTables, ad-hoc analysis | Dashboards, reports | Questions in plain language, schema authoring |
| Measures come from | the eMondrian schema | the eMondrian schema | the eMondrian schema |
Define Revenue once. Finance sees it in Excel, management in Power BI, and the AI assistant uses the same definition when someone asks "how did revenue develop last quarter?".
Try it
1. Public demo — two minutes, nothing to install.
Connect Excel or Power BI to https://demo.emondrian.com/xmla and explore the FoodMart and OnTime (ClickHouse) samples. Demo guide →
AI agents can use the demo too, in read-only mode:
claude mcp add --transport sse emondrian-demo https://demo.emondrian.com/emondrian/mcp/sse
2. Community on your machine — about 15 minutes.
git clone https://github.com/eMondrian/emondrian-community.git
cd emondrian-community
./setup.sh # Windows: powershell -ExecutionPolicy Bypass -File .\windows-setup.ps1
Excel works right away. For Power BI and AI agents, request a free 30-day evaluation key — one key unlocks both DAX and MCP. Quickstart →
3. Your own data.
Connect your ClickHouse (or other JDBC) database, describe a cube — by hand or with an agent — and point your real Power BI reports at it. Need more than 30 days? Ask for an extension.
Licensing at a glance
| Community | Commercial License | Enterprise | |
|---|---|---|---|
| Engine, XMLA, MDX, Excel | ✓ free, EPL-1.0 | ✓ | ✓ |
| DAX module (Power BI) | 30-day evaluation | ✓ | ✓ |
| MCP module (AI agents) | 30-day evaluation | ✓ | ✓ |
| Support | GitHub issues | Priority, help with your DAX reports | |
| Price | Free | €4,900 per server / year | On request |
The engine is open source under EPL-1.0. The DAX and MCP modules ship with Community and are unlocked by a license key. Pricing →
What to expect — honestly
We're a small team, so I'd rather be clear about the current limits:
- DAX support for Power BI is in beta. Test your own reports during the evaluation and send us the queries that fail.
- Not officially supported by Microsoft. See the note above.
-
MCP in Community is for local use. The MCP endpoint has no authentication and includes tools that can change schemas and register catalogs. Keep it on
localhostor a trusted network. Authentication, per-user access and an audit log of agent queries are planned for Enterprise. - Support hours. Business days, UTC+4. No 24/7.
More in What to expect.
Try it: Demo · Quickstart · GitHub · Get an evaluation key
Questions or a failing DAX query? Leave a comment here, open an issue or write to contact@bisolutions.dev.
eMondrian is developed and supported by BIS — Business Intelligence Solutions.






Top comments (0)