See your company like never before
Power BI deep-dives, migration playbooks, and data strategy for enterprise teams.


Join dozens of organizations who have moved to Beyond The Analytics. Book your personalized demo today
Step-by-step guide to connecting Claude AI to Power BI using the Model Context Protocol — from installation to your first AI-assisted semantic model.
Quick answer: The Model Context Protocol (MCP) is an open standard that lets AI assistants connect to external tools through a structured, secure interface — and for Power BI, it means Claude can read your semantic model, write DAX, and manage measures without you copying and pasting anything between windows.
MCP defines a client-server architecture where an AI application (the host) connects to one or more MCP servers that expose specific tools. Each server declares what it can do — list tables, execute a DAX query, create a measure — and the AI model calls those tools as needed during a conversation.
For Power BI professionals, this solves a real workflow problem. Before MCP, using Claude with Power BI meant manually copying model metadata into a chat window, pasting DAX back and forth, and hoping the AI had enough context to give accurate suggestions. If you are specifically interested in how Claude handles DAX formula generation, we cover that workflow in depth separately. With MCP, Claude connects directly to your open Power BI Desktop file (or a Fabric semantic model) and works with the live model structure.
There are now two official Microsoft MCP servers and several community alternatives. This guide covers how to set up the most practical options with Claude Desktop and Claude Code.
Quick answer: You need Power BI Desktop with a .pbip file open, an MCP server installed (Microsoft's official one or a community alternative), and either Claude Desktop or Claude Code as your AI client.
Here is the full prerequisites list:
| Requirement | Details |
|---|---|
| Power BI Desktop | Latest version with preview features enabled (PBIP format, TMDL) |
| Claude Desktop or Claude Code | Claude Desktop (Windows/macOS) or Claude Code CLI |
| Node.js | v18+ — needed for community MCP servers that run via npx. Claude Desktop bundles Node.js, but Claude Code does not |
| Operating system | Windows 10/11 for the Microsoft Modeling MCP server. macOS works with community servers and the Remote MCP server |
| Fabric capacity (optional) | F2 or higher — only required if using the Remote MCP server for cloud-hosted semantic models |
Before connecting any MCP server, enable these preview features in Power BI Desktop under File > Options > Preview features:
Save your file in .pbip format via File > Save As before proceeding. The MCP server connects to the Analysis Services instance that Power BI Desktop runs locally — your .pbip file must be open.
Quick answer: There are three main options — Microsoft's official Modeling MCP server (best for VS Code + Copilot), Microsoft's Remote MCP server (cloud-only, Fabric required), and community servers like MCP Engine (best for Claude Desktop). Pick based on whether you work locally or in Fabric.
The Power BI Modeling MCP Server is Microsoft's first-party solution. It is in public preview as of April 2026 and provides 20+ tool categories covering tables, columns, measures, relationships, DAX queries, calculation groups, RLS roles, partitions, hierarchies, and more.
Installation via VS Code (recommended by Microsoft):
Manual installation for Claude Desktop:
Since the VS Code extension bundles the server executable, you can extract it for use with Claude:
.vsix file to .zip and extract itextension/server/powerbi-modeling-mcp.exeextension/server/ folder to a stable location like C:\MCPServers\PowerBIModelingMCP\The Claude Desktop configuration for this server is covered in the next section.
Key CLI arguments:
| Flag | Purpose |
|---|---|
--start | Required — starts the MCP server |
--readonly | Prevents any write operations (safe exploration mode) |
--skipconfirmation | Auto-approves write operations without prompting (use with caution) |
--compatibility PowerBI | Default mode — restricts to Power BI-compatible operations |
--compatibility Full | Enables full Analysis Services compatibility |
The Remote Power BI MCP Server is a hosted endpoint at https://api.fabric.microsoft.com/v1/mcp/powerbi that connects to cloud-hosted Fabric semantic models. It uses Copilot's DAX generation engine and authenticates with your Microsoft Entra ID credentials.
Requirements:
This option is read-and-query focused — it generates and executes DAX queries against existing models but does not modify model structure. It is currently optimized for VS Code with GitHub Copilot, not Claude Desktop.
MCP Engine is a community-built MCP server specifically designed to work well with Claude Desktop and Claude Code. It connects to Power BI Desktop's local Analysis Services instance and provides a streamlined tool set.
Free tier includes 9 read-focused tools: model exploration, DAX query execution, natural language querying, bulk operations, and auto-translation across 40+ languages.
Pro tier ($349/year) adds 6 additional tools: rollback and snapshots, test runner for measure validation, policy engine, impact analysis, RLS/OLS testing, and data masking.
Installation for Claude Code:
claude mcp add mcp-engine -- npx -y mcp-engine@latestInstallation for Claude Desktop: Add to your config file (see next section):
{
"mcpServers": {
"mcp-engine": {
"command": "npx",
"args": ["-y", "mcp-engine@latest"]
}
}
}MCP Engine runs locally, collects zero telemetry, and supports both Power BI Desktop and Power BI Service via XMLA endpoints.
Quick answer: Add the MCP server to your claude_desktop_config.json file, restart Claude Desktop completely, and look for the tools indicator in the chat input area.
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
You can also access this file from Claude Desktop: click the Claude menu (system menu bar, not the in-app settings), select Settings, navigate to the Developer tab, and click Edit Config.
{
"mcpServers": {
"powerbi-modeling-mcp": {
"command": "C:\\MCPServers\\PowerBIModelingMCP\\extension\\server\\powerbi-modeling-mcp.exe",
"args": ["--start"],
"env": {}
}
}
}For read-only mode (recommended when exploring an unfamiliar model):
{
"mcpServers": {
"powerbi-modeling-mcp": {
"command": "C:\\MCPServers\\PowerBIModelingMCP\\extension\\server\\powerbi-modeling-mcp.exe",
"args": ["--start", "--readonly"],
"env": {}
}
}
}Use double backslashes (
\\) for Windows paths in JSON. A single backslash will cause a silent parse failure that disables all MCP servers.
{
"mcpServers": {
"mcp-engine": {
"command": "npx",
"args": ["-y", "mcp-engine@latest"]
}
}
}If the tools indicator does not appear, check the logs at ~/Library/Logs/Claude/mcp*.log (macOS) or %APPDATA%\Claude\logs\mcp*.log (Windows).
For Claude Code (the terminal-based client), use the claude mcp add command:
# Microsoft Modeling MCP Server (Windows)
claude mcp add powerbi-modeling -- "C:\MCPServers\PowerBIModelingMCP\extension\server\powerbi-modeling-mcp.exe" --start
# MCP Engine (cross-platform)
claude mcp add mcp-engine -- npx -y mcp-engine@latestVerify the connection with /mcp inside a Claude Code session.
Quick answer: Start by asking Claude to connect to your local Power BI Desktop instance and describe the model, then move to specific tasks like writing measures, validating DAX, or documenting your model structure.
Here is a realistic workflow once the MCP server is connected:
Start a conversation in Claude Desktop and ask it to connect to your local Power BI model:
"Connect to my local Power BI Desktop instance and tell me what tables and relationships are in the model."
Claude will use the MCP server's connection and table tools to list your model structure. This is a good sanity check — if Claude returns your actual tables, the connection is working.
Ask Claude to audit what already exists:
"How many measures do I have? List them by table, and flag any that reference columns that don't exist."
This is where MCP starts paying for itself. Manually checking measure dependencies across a large model is tedious. Claude can read every measure's DAX expression and cross-reference column references in seconds.
Ask Claude to create a new measure:
"Create a measure called 'Revenue YoY %' in the Sales table that calculates year-over-year revenue growth using SAMEPERIODLASTYEAR. The revenue column is Sales[Revenue] and the date table is Calendar[Date]."
Claude will generate the DAX and — if the MCP server is not in read-only mode — offer to add it directly to your model. On the Microsoft Modeling MCP server, you will get a confirmation prompt before any write operation is applied.
Ask Claude to run a DAX query to verify the measure works:
"Execute a DAX query that returns Revenue YoY % by year for the last 3 years."
The MCP server's DAX query tools will execute the query against your local model and return the results. Claude can then tell you whether the numbers look reasonable.
One of the most practical uses is bulk refactoring:
"Rename all measures that start with 'Calc_' to remove the prefix. Show me the list of changes first."
Claude will generate the plan, show you the before/after, and apply the changes on your confirmation.
Quick answer: Claude can read model metadata, write and validate DAX, manage measures and relationships, and execute queries — but it cannot create report visuals, modify dashboard layouts, or access data that exceeds your existing Power BI permissions.
| Capability | Supported | Notes |
|---|---|---|
| Read model metadata (tables, columns, relationships) | Yes | All MCP servers support this |
| Create/edit/delete measures | Yes | Microsoft and MCP Engine (not in read-only mode) |
| Write and validate DAX expressions | Yes | All servers can validate; most can execute |
| Execute DAX queries and return results | Yes | Results go through the AI conversation context |
| Manage relationships between tables | Yes | Create, update, delete |
| Configure RLS roles | Yes | Microsoft Modeling MCP server |
| Test RLS impersonation | Yes | MCP Engine Pro tier |
| Manage calculation groups | Yes | Microsoft Modeling MCP server |
| Import/export TMDL | Yes | Microsoft Modeling MCP server |
| Create report pages or visuals | No | MCP servers handle the semantic model only |
| Modify dashboard layouts | No | Out of scope for all current MCP servers |
| Access data beyond your permissions | No | Uses your existing credentials and RLS |
| Work with .pbix files directly | No | Must use .pbip format for full MCP support |
| Connect to Power BI Service without Fabric | No | Remote MCP server requires Fabric capacity |
The distinction matters: MCP gives Claude access to the semantic model layer — the tables, measures, relationships, and DAX logic. The report layer — visuals, layouts, formatting — remains manual work in Power BI Desktop.
Quick answer: The local MCP server processes everything on your machine and no data leaves your network through the MCP connection itself — but the AI conversation (including any model metadata or query results discussed) is sent to Anthropic's API, so enterprise teams need to evaluate this against their data governance policies.
Understanding exactly what goes where is critical for regulated environments:
Local MCP server to Power BI Desktop: Communication happens through operating system pipes (stdio) on the same machine. No network exposure. The MCP server connects to Power BI's local Analysis Services instance on a dynamic localhost port.
MCP server to Claude: The server returns metadata and query results as structured JSON through stdio. This data becomes part of the conversation context.
Claude conversation to Anthropic: Here is where data leaves your machine. The conversation — including any model metadata, DAX expressions, and query results that Claude has discussed — is sent to Anthropic's API for processing. Anthropic does not use business customer data for model training (per their usage policy), but the data does transit their infrastructure.
For the Remote MCP server (Fabric), the data flow includes Microsoft's cloud infrastructure as well. Queries are processed through the Fabric API endpoint and Copilot's DAX generation engine.
For organizations in the UAE, Saudi Arabia, or wider Gulf region where data residency matters:
--readonly flag) to understand what metadata is exposed before enabling write operations--skipconfirmation in production environments — the confirmation prompt is a governance controlAs an official Claude partner, Beyond The Analytics helps enterprises onboard Claude safely — from MCP configuration to governance policies. Book a consultation to get your team started.
The MCP server respects your existing RLS configuration. If your Power BI Desktop model has RLS roles defined, the server accesses data as the currently connected user. However, during local development in Power BI Desktop, RLS is only enforced when you explicitly use "View as Role." The MCP server connecting to your local instance will see all data by default — just as you do when editing the model.
For testing RLS through MCP, the MCP Engine Pro tier offers an RLS impersonation tool that lets you validate security roles without switching contexts in Power BI Desktop.
Quick answer: Power BI Copilot is Microsoft's built-in AI for report consumers (asking questions about data in natural language), while Claude + MCP is for model developers (building and modifying semantic models programmatically). They serve different audiences and different workflows.
If you have already been evaluating Power BI Copilot for enterprise readiness, it is worth understanding where Claude + MCP fits:
| Dimension | Power BI Copilot | Claude + MCP |
|---|---|---|
| Primary user | Report consumers, business analysts | Model developers, BI engineers |
| What it does | Answers questions from published data, creates visuals | Reads/writes semantic model structure and DAX |
| Data access | Query results from published models | Model metadata + DAX query results from Desktop or Fabric |
| Requires | Fabric capacity (F2+) | Claude subscription + local MCP server |
| Modifies models | No | Yes (measures, tables, relationships, etc.) |
| Works offline | No | Yes (local MCP server only) |
These are complementary, not competing. A development workflow might use Claude + MCP to build and test the model, then publish it to Fabric where business users interact with Copilot. For a full side-by-side evaluation, see our Power BI Copilot vs Claude AI comparison.
The MCP server itself does not send data anywhere — it runs locally and communicates through stdio pipes. However, any model metadata, DAX expressions, or query results that Claude discusses in the conversation are part of the prompt sent to Anthropic's API. The MCP connection is local; the AI conversation is not. Evaluate Anthropic's commercial terms against your data governance requirements.
Not with the Microsoft Remote MCP server — that requires Fabric capacity (F2 or higher). For local development, you can use the Modeling MCP server or MCP Engine with Power BI Desktop at no additional Microsoft cost beyond your existing license. MCP Engine's Pro tier also supports XMLA endpoints for connecting to Power BI Service or Fabric, but XMLA access itself requires Premium or Fabric capacity.
As of April 2026, Claude Opus 4 and Claude Sonnet 4 both work well for DAX generation and model reasoning. Opus 4 has stronger performance on complex multi-step modeling tasks (like planning a full star schema refactor), while Sonnet 4 is faster and cheaper for routine measure creation and validation. Both support MCP tool use. If you are using Claude Code, you can switch models per session based on task complexity.
No. Claude + MCP is a conversational interface to your model, not a replacement for dedicated modeling tools. Tabular Editor still offers finer control over TMDL, best-practice rules, and CI/CD pipelines. DAX Studio remains the standard for query profiling and server timings. Think of Claude + MCP as a fast way to explore, prototype, and batch-modify — then validate with your established tooling. Tabular Editor has also published guidance on how AI agents and their tool complement each other.
The Microsoft Modeling MCP server is in public preview as of April 2026. Microsoft's documentation explicitly states that the implementation "may significantly change prior to General Availability." Use it for development and prototyping. For production model management, continue using your established CI/CD pipeline (TMDL + Git + Tabular Editor) and treat Claude + MCP as an accelerator within that workflow, not a replacement for it.
Microsoft Partner · Dubai
Your business intelligence partner for the GCC
Have a data challenge or a project in mind? Reach out and let's explore how we can help.
Clients we've worked with






