Blog
12 October, 2026
October 12, 2026
Most enterprise data teams know this conversation. A business user needs a number. They ask the data team. The data team writes a DAX query. The answer comes back hours or days later, sometimes correct, sometimes not quite what was meant. By then, the decision has already been made without it.
The irony is that the data is right there, beautifully structured, inside the Microsoft Fabric semantic layer. The business logic, the KPIs, the hierarchies, all defined, trusted, and ready. The only barrier is the language required to reach it.
The Semantic Layer Is the Asset — Access Is the Problem
The Microsoft Fabric semantic layer is one of the most underutilized assets in modern data architectures. Organizations spend significant time defining measures, hierarchies, and relationships in Power BI, encoding deep business knowledge into a structured, governed model. That model is the single source of truth.
Yet querying it still requires DAX. And most of the people who need the answers don’t write DAX.
The question we set out to answer was whether an AI could bridge that gap connecting directly to the Fabric semantic layer, using it exactly as built, and returning accurate answers in plain language.
Why General AI Isn’t Enough
There’s a tempting shortcut in most AI data projects: connect a language model directly to your data, let it write SQL or DAX on the fly, and call it done. This approach sounds right. In practice, it fails in ways that matter.
Language models hallucinate column names. They don’t know your measure definitions. They generate plausible-sounding queries that return wrong results. In a business context, a confident wrong answer is worse than no answer at all.
The problem isn’t the AI. It’s the missing context.
What We Built: Remote MCP + Agentic RAG
We solved this with a two-layer architecture, deployed for a fintech company that had built a mature Fabricsemantic layer but wanted business users to access it without DAX.
The first layer is a Remote MCP Server – a cloud-hosted microservice on Azure Container Apps that exposes three structured tools to Claude AI via the Model Context Protocol (MCP): schema retrieval, DAX execution, and dataset discovery. Rather than letting Claude generate queries freely, MCP constrains it to defined operations. Claude has to ask for what it needs. It cannot guess.
The second layer is Agentic RAG on top of the Fabric semantic layer. Before Claude generates any DAX, it first queries an Azure AI Search index that contains the Fabric schema for every table, column, measure definition, and business term. Claude receives the exact schema context it needs, retrieved from the actual semantic model rather than approximated from training data. Column names, measure logic, and naming conventions are returned precisely as they exist in Fabric.
Only then does Claude generate and execute a DAX query via the Power BI REST API against the live Fabric semantic model.
A business user asks: “What are our top three markets by revenue last quarter?” They receive an accurate, formatted answer in seconds without writing a single line of DAX.
Security That Doesn’t Compromise
An architecture that routes enterprise data through an AI is only as good as its security model.
We built authentication on Azure Entra ID using OAuth 2.0 with PKCE and the On-Behalf-Of (OBO) flow. Every query runs under the signed-in user’s identity. Row-level security defined in the Fabric workspace is enforced automatically—the AI cannot see what the user cannot see. Every request includes a Bearer token validated against Azure AD on each call.
There are no shared credentials, no standing service accounts with elevated access, and no data leaving thetenant.
Why MCP Is the Right Pattern for Enterprise Data
The Model Context Protocol changes the way AI interacts with enterprise systems. Rather than allowing a language model to freely generate database queries, MCP defines explicit tools with clear boundaries. The AI requests what it needs through structured calls and receives structured responses.
For enterprise data access, this is the right architecture. It gives the AI enough capability to be useful while maintaining the control that enterprise governance requires. Claude doesn’t write arbitrary queries. It uses the tools we expose, grounded in the schema it retrieves, against the data it’s authorized to see.
What We Learned
The Agentic RAG step is what makes this work in practice. Without it, even a capable AI will eventually generate a query that doesn’t match the actual data model. With it, every query is grounded in the real schema—and the difference in accuracy is significant.
The MCP architecture is also a forcing function for good design. Defining explicit tools requires you to think carefully about what the AI should and shouldn’t be able to do, which is exactly the right discipline for enterprise deployments.
This is now a repeatable pattern that TeraSky offers as a product: connecting any Claude-compatible AI to any Microsoft Fabric semantic layer, secured with enterprise-grade identity, and deployed entirely within the customer’s Azure tenant.
The Fabric Semantic Layer Finally Has a Voice
Every organization that has built a mature Fabric semantic layer has done the hard work: defining measures, aligning KPIs, modeling relationships, enforcing governance. That work is valuable precisely because it encodes deep business knowledge in a structured, trusted form.
What we built is the interface that makes that knowledge accessible to everyone—not just the people who can write DAX.
If your organization runs on Microsoft Fabric and wants to give business users natural language access to your semantic layer, we’d like to show you how it works.
Written by Haggai Zohar
Data Tech Lead, TeraSky
12 October, 2026
11 October, 2026