Public Preview · Power BI · November 2025

Model Context Protocol Power BI MCP Server — Complete Guide

Microsoft provides two official Power BI MCP servers that connect AI agents to Power BI semantic models using the Model Context Protocol. The remote server enables natural language data querying and DAX generation. The local server enables developers to build and modify semantic models programmatically. This guide covers both servers in full — tools, setup, security, authentication, RLS caveats, and configuration — verified against official Microsoft Learn documentation through June 2026.

Quick Answer

Microsoft provides two official Model Context Protocol Power BI MCP servers. The remote MCP server is a hosted endpoint where AI agents query Power BI semantic models using natural language — it generates and executes DAX while respecting user permissions. The local MCP server runs on your machine and lets developers build, modify, and manage semantic models using natural language and bulk operations across Power BI Desktop, Fabric workspaces, and PBIP files. Both are in Public Preview. Admin must enable the tenant setting before either server is accessible. RLS is not enforced for Service Principal authentication on the remote server — review security implications before production deployment.

📅 Last verified: June 2026 ⏱ ~14 min read ✍️ A.J., Data Engineering Researcher 🔗 Source: Microsoft Learn

What Is the Model Context Protocol and Why Does It Matter for Power BI?

The Model Context Protocol (MCP) is an open standard that defines how AI assistants interact with external tools and data sources in a structured, secure way. It establishes a common interface so that any MCP-compatible AI client — GitHub Copilot, Claude, custom agents — can connect to any MCP-compatible server without custom integration code for each combination.

Before MCP, connecting an AI assistant to Power BI required custom REST API calls, manual DAX construction, and separate authentication handling per application. With Power BI MCP servers, any AI client that supports MCP discovers and invokes Power BI tools through a standardized protocol — no custom integration code needed per client.

The Three MCP Components

ComponentRolePower BI Example
HostThe application running the AI assistantVisual Studio Code, Claude Desktop
ClientThe AI assistant connecting to MCP serversGitHub Copilot, Claude
ServerThe program exposing tools, resources, and promptsPower BI remote or local MCP server

In a typical setup: VS Code is the host, GitHub Copilot is the client, and the Power BI MCP server provides the tools. When you ask Copilot “what was Q2 revenue by product?”, Copilot uses the MCP server to query your Power BI semantic model and return the answer — all within VS Code.

⚠️
Security Review Required Before Production

MCP is a novel standard. Microsoft explicitly recommends conducting a security review before deploying any MCP integration in production. Data retrieved by the MCP server — metadata, schemas, query results — is sent to the MCP client and may be forwarded to the configured LLM provider as part of conversation context. Review your LLM provider’s data handling policies before connecting to sensitive semantic models.

Two Power BI MCP Servers — Remote vs Local

Microsoft provides two distinct MCP server implementations for Power BI, each serving a different persona and workflow. Choosing the wrong one for a use case is the most common setup mistake.

FeatureRemote MCP ServerLocal MCP Server
Where it runsHosted by Microsoft — a remote endpointOn your machine
Primary useQuery data and generate insights from existing modelsBuild and modify semantic models programmatically
Target personaAnalysts, data consumers, custom agent developersSemantic model authors, developers
Works withPower BI service semantic modelsPower BI Desktop, Fabric workspaces, PBIP files
What it changesRead-only — queries data, no model modificationsRead and write — creates tables, measures, relationships
AuthUser identity (delegated) or Service PrincipalInteractive or Service Principal via Azure Identity SDK
Admin setting requiredYes — tenant setting must be enabledNo tenant setting required
StatusPublic PreviewPublic Preview
🌐

Choose Remote When…

  • Building agents that answer questions from Power BI data
  • Adding Power BI to a GitHub Copilot chat workflow
  • Creating custom AI assistants for business users
  • Running conversational analytics on existing semantic models
💻

Choose Local When…

  • Developing or accelerating semantic model creation
  • Running bulk operations across tables, measures, or relationships
  • Managing TMDL files and Power BI Project (PBIP) workflows
  • Validating and debugging DAX queries during development

Remote Power BI MCP Server — Query Data with Natural Language

The remote Power BI MCP server is a hosted endpoint that translates natural language prompts into DAX queries, executes them against Power BI semantic models, and returns results to the AI agent. It uses Copilot’s intelligence for DAX generation by default — consuming Copilot capacity. If you prefer to use your MCP client’s own LLM for DAX generation, disable the Copilot tool in your MCP client configuration.

What the Remote Server Can Do

  • Execute natural language queries against Power BI semantic models
  • Generate and run DAX queries from conversational prompts
  • Retrieve semantic model metadata — tables, columns, measures, relationships
  • Retrieve Power BI report schema — pages, visuals, filters, workspace info
  • Support any MCP-compatible LLM — not limited to Microsoft models
  • Respect existing Power BI permissions for user identity authentication

Managing Semantic Model IDs

Every tool call to the remote MCP server requires a semantic model ID. Rather than requiring users to provide this in every session, store model IDs in a accessible location:

# semantic-model-ids.json (VS Code workspace file)
{
  "models": {
    "sales_analytics": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "finance_summary": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
    "hr_dashboard":    "zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz"
  }
}

Retrieve a semantic model ID from the Power BI service URL when viewing the model, or programmatically via the Power BI REST API. For multi-model scenarios, maintain a catalog mapping friendly names to model IDs in your agent’s configuration files.

Field note — A.J., UIG Data Lab

The remote server is stateless — each query executes independently. There is no conversation history maintained between tool calls at the MCP server level. Context continuity comes from the MCP client (e.g. GitHub Copilot), not the server. Design agents to include the relevant model ID and any necessary filter context in every query rather than assuming the server remembers what was asked previously.

Local Power BI MCP Server — Build and Modify Semantic Models

The local Power BI MCP server is an open-source project published by Microsoft at github.com/microsoft/powerbi-modeling-mcp. It runs on your machine, connects to your semantic model using your existing credentials, and gives AI agents comprehensive modeling capabilities — from simple property updates to complex agentic workflows involving TMDL files and bulk operations.

What the Local Server Can Do

🏗️

Model Management

  • Connect to Power BI Desktop, Fabric workspaces, PBIP files
  • Create, update, and delete tables, columns, measures, relationships
  • Import and export TMDL folders
  • Deploy models to Fabric workspaces
  • List all databases and manage connections

Bulk Operations

  • Execute batch changes across hundreds of objects simultaneously
  • Apply naming conventions and standards across an entire model
  • Evaluate and implement best practices at scale
  • Transaction support — operations are atomic
🔍

DAX Development

  • Generate DAX from natural language against the connected model
  • Execute and validate DAX queries
  • Analyze DAX query performance with cleared cache and execution metrics
  • Troubleshoot measure calculations interactively
📋

Built-in Prompts

  • In VS Code, access prompts with the / command in chat
  • Find and connect to Power BI Desktop instances by filename
  • Load TMDL definitions from PBIP files
  • Get DAX query instructions with language context attached
🚨
Confirmation Required for Write Operations

The local MCP server requires user approval before the first modification to any semantic model and before the first query executed against it. This is an MCP Elicitation protocol requirement. Use --skipconfirmation to bypass this in automated workflows — only use it when you are confident about operations being performed and have appropriate backups. Do not use TOM-based rename tools for renaming objects — these break report visuals. Use the MCP server’s rename capabilities instead.

Recommended AI Models for the Local Server

Microsoft recommends deep-reasoning models such as GPT-5 or Claude Sonnet 4.5 for best results. These handle complex DAX generation and schema reasoning more reliably than standard models. Be aware of token costs on large models — a medium-sized model.bim file (~26,000 lines JSON) requires approximately 210,000 tokens, which may exceed standard context windows and incurs significant cost per session. For large models, scope prompts to specific tables or measure groups rather than loading the entire schema.

Setting Up the Power BI MCP Server

Remote MCP Server Setup

  1. Enable the tenant settingA Power BI administrator must enable “Users can use the Power BI Model Context Protocol server endpoint (preview)” in the Power BI admin portal. Without this, all connection attempts fail regardless of user permissions.
  2. Add the remote server to your MCP clientIn VS Code with GitHub Copilot, add the Power BI remote MCP server endpoint to your MCP client configuration. The server URL is available from the Microsoft Learn documentation for the remote server.
  3. AuthenticateUse user identity (delegated) authentication for individual use. For automated agents, configure Service Principal authentication — but read the RLS warning in Section 08 first.
  4. Store semantic model IDsCreate a semantic-model-ids.json file in your workspace with friendly name to model ID mappings. Each tool call requires a model ID — store them where your agent can read them automatically.
  5. Test with a simple queryAsk your AI client “using the [model name] semantic model, what are the available tables?” This calls get_semantic_model_info and confirms the connection is working before running DAX queries.

Local MCP Server Setup

# Install the local Power BI MCP server
npm install -g @microsoft/powerbi-modeling-mcp

# Add to VS Code MCP configuration (.vscode/mcp.json)
{
  "powerbi-modeling": {
    "command": "powerbi-modeling-mcp",
    "args": ["--stdio"]
  }
}

# Connect to Power BI Desktop (auto-detects running instances)
# Prompt: "Find and connect to my Sales Model Power BI Desktop file"

# Connect to a Fabric workspace model
# Prompt: "Connect to the Sales Analytics model in the Production workspace"

# With Service Principal authentication
powerbi-modeling-mcp --stdio   --authmode serviceprincipal   --tenantid YOUR_TENANT_ID   --clientid YOUR_CLIENT_ID
📌
Analysis Services Mode

By default, the local MCP server is optimized for Power BI semantic models. To run it against Azure Analysis Services databases, set the mode to Full in configuration. The default Power BI mode omits some AS-specific tooling that is not relevant to Power BI models.

Power BI MCP Server Tools Reference

Remote Server Tools

ToolWhat It DoesKey Inputs
execute_queryGenerates and executes a DAX query against a semantic model. Returns results to the AI agent. Uses Copilot intelligence for DAX generation by default (consumes Copilot capacity).Semantic model ID, natural language question or DAX query
get_semantic_model_infoRetrieves comprehensive metadata — tables, columns, measures, relationships, and any AI-optimized metadata the model author configured. Used to ground DAX generation in the model’s actual structure.Semantic model ID
get_report_infoRetrieves the schema of a Power BI report — workspace info, semantic model details, pages, visual types, and applied filters. Surfaces how the model is used in practice to guide DAX generation context.Report ID or URL

Local Server Key Operations

Operation CategoryExamples
Model connectionConnect to Power BI Desktop instance by filename, connect to Fabric workspace model, load PBIP project files
Schema managementCreate tables, add columns with data types, create measures with DAX expressions, define relationships
Bulk operationsRename measures across the model, apply formatting standards, update descriptions on all columns in a table
DAX toolsGenerate DAX from natural language, execute queries, clear cache and measure performance, analyze execution metrics
TMDL managementImport TMDL folder definitions, export current model to TMDL, deploy to Fabric workspace
Trace operationsCapture and analyze Analysis Services trace events for performance investigation

Authentication & Security Model

Both Power BI MCP servers handle credentials through Microsoft’s official authentication infrastructure. Neither server stores or manages tokens directly — all credential handling goes through the Azure Identity SDK.

Auth MethodRemote ServerLocal ServerRLS Enforced?
User identity (delegated)✅ Supported✅ Interactive mode✅ Yes
Service Principal✅ Supported✅ serviceprincipal mode⚠️ Remote: NOT enforced

Microsoft Security Guidance for Power BI MCP

  • Enable Entra ID authentication — do not expose MCP endpoints without identity verification
  • Use secure token management — credentials through Azure Identity SDK only
  • Apply network isolation — restrict which networks can reach MCP server endpoints
  • Apply least-privilege RBAC roles before deployment — Fabric RBAC permissions govern what operations MCP clients can invoke
  • Review your LLM provider’s data handling policies — model metadata and query results are forwarded to the LLM as context

RLS Warning — Service Principal Authentication Does Not Enforce Row Level Security

This is the most critical security consideration for the remote Power BI MCP server and must be understood before any production deployment.

🚨
RLS Not Enforced for Service Principal Authentication

When using Service Principal authentication with the remote Power BI MCP server, Row Level Security is currently not enforced. A service principal executing queries has access to all data the principal is authorised to access — regardless of any RLS rules configured on the semantic model. Microsoft explicitly calls this out in the official documentation. Carefully review security implications before exposing service principal-authenticated agents to end users who should be subject to RLS restrictions.

When RLS Is Enforced

Row Level Security is enforced normally when using user identity (delegated) authentication. The remote MCP server executes queries in the context of the signed-in user, and all RLS filters that apply to that user apply to every query the agent makes on their behalf. For agents that serve individual named users, delegated authentication is the correct and secure choice.

Production Decision Framework

ScenarioRecommended AuthRLS Behaviour
Agent serving individual users — each user sees their own dataDelegated (user identity)RLS enforced — user sees only permitted data
Backend agent with no user context — accesses all dataService PrincipalRLS NOT enforced — must not expose to restricted users
Agent where all users should see all data (no RLS in use)EitherN/A — no RLS to enforce

DAX Generation — Getting the Best Results

DAX generation quality from the Power BI MCP server depends significantly on how well the semantic model is prepared for AI and how queries are framed. Poor model metadata produces poor DAX — regardless of which LLM is generating it.

Prepare Your Semantic Model for MCP

  1. Add table and column descriptionsDescriptions in the semantic model are returned by get_semantic_model_info and directly inform DAX generation. A measure described as “Net Revenue = Gross Revenue minus approved refunds” produces far more accurate DAX than one with no description.
  2. Configure AI-optimized metadataThe remote server retrieves Copilot tooling metadata when configured — this provides additional context about model structure and guides the agent toward the correct data. Configure this in Power BI Desktop under Model settings.
  3. Call get_semantic_model_info before execute_queryGround DAX generation in the actual model structure before asking a question. Agents that skip the schema retrieval step frequently generate DAX that references non-existent tables or uses incorrect column names.
  4. Use get_report_info to understand filter contextReports reveal how the semantic model is used in practice — which filters are applied, which visuals are standard, what the intended context is. This context significantly improves DAX generation accuracy for questions related to an existing report.
⚠️
Validate Generated DAX Before Production Use

LLMs can generate syntactically valid DAX that is semantically incorrect — wrong filter propagation, incorrect context transition handling, or measures that produce accurate-looking numbers for wrong reasons. Always validate generated DAX against known test cases before deploying to production models or sharing results with business users. The local MCP server’s DAX execution tools make this validation faster — run the generated DAX against the model and compare to known-correct results.

Power BI MCP Server — Current Limitations

LimitationDetail
Public PreviewBoth servers are in Public Preview. Tool definitions, request formats, and response schemas may change before GA.
RLS and Service PrincipalRLS is not enforced when using Service Principal authentication on the remote server. See Section 08.
Tenant admin setting requiredAdministrator must enable “Users can use the Power BI Model Context Protocol server endpoint (preview)” before anyone in the org can use the remote server.
Not a REST APIThe remote Power BI MCP server is not a traditional REST API. It must be accessed through MCP-compatible agents and frameworks — direct HTTP calls are not supported.
Complex DAX accuracyHighly complex calculations or nested logic may not translate perfectly from natural language. Validate all generated DAX before production use.
Large schema context limitsModels with hundreds of tables or thousands of columns produce large schema payloads that may exceed context windows. Large model.bim files (~26k lines) require ~210k tokens — exceeding standard windows.
Stateless queries (remote)The remote server executes each query independently with no state between calls. Context continuity depends on the MCP client, not the server.
Copilot capacity consumptionThe remote server uses Copilot intelligence for DAX generation by default, consuming Copilot capacity. Disable this tool in MCP client config to use the client’s own LLM instead.
Report and diagram layoutThe local MCP server can only execute modeling operations. It cannot modify report pages or diagram layouts.
TOM rename toolsDo not use TOM-based rename tools (batch_rename_tables, batch_rename_columns, batch_rename_measures) for renaming — they break report visuals.

FAQ — Model Context Protocol Power BI MCP Server

Microsoft provides two official Power BI MCP servers. The remote MCP server is a hosted endpoint enabling AI agents to query Power BI semantic models using natural language — it translates prompts into DAX queries and executes them while respecting user permissions. The local MCP server runs on your machine and enables developers to build and modify semantic models programmatically using natural language and bulk operations. Both were released in Public Preview at Microsoft Ignite in November 2025.
The remote Power BI MCP server is a hosted endpoint for querying data from existing semantic models using natural language. Choose it for AI assistants and custom agents that need to answer questions from Power BI data. The local Power BI MCP server runs on your machine for semantic model authors who want to build, modify, and manage models programmatically — creating tables, measures, relationships, running bulk operations, and managing TMDL files across Power BI Desktop, Fabric workspaces, and PBIP files.
Three tools: execute_query runs a DAX query against a semantic model and returns results; get_semantic_model_info retrieves tables, columns, measures, relationships, and AI-optimized metadata; get_report_info retrieves the schema of a Power BI report including pages, visuals, filters, and workspace information. Each tool requires a semantic model ID.
For user identity (delegated) authentication, RLS is enforced — the remote server runs queries in the signed-in user’s context and all their RLS filters apply. For Service Principal authentication, RLS is currently NOT enforced on the remote server. A service principal has access to all data it is authorized to access regardless of RLS rules. Microsoft explicitly flags this — review security implications before exposing service principal agents to users who should be subject to RLS restrictions.
A Power BI administrator must enable “Users can use the Power BI Model Context Protocol server endpoint (preview)” in the Power BI admin portal. Without this setting, all remote MCP server connections fail. The local MCP server does not require a tenant admin setting — it connects using local credentials via the Azure Identity SDK.
Microsoft recommends deep-reasoning models such as GPT-5 or Claude Sonnet 4.5. These handle complex DAX generation and schema reasoning more reliably than standard models. A medium-sized model.bim file (~26,000 lines) requires approximately 210,000 tokens — which may exceed context windows and incurs significant per-session cost. For large models, scope prompts to specific tables or measure groups rather than loading the entire schema.
⚠ Accuracy Disclaimer

Information is verified against official Microsoft Learn Power BI MCP documentation (last updated May 13, 2026) and the Microsoft Power BI Blog. Both MCP servers are in Public Preview — tool definitions, authentication behaviour, and pricing may change before GA. RLS non-enforcement for Service Principal authentication is a confirmed current limitation from Microsoft documentation. UIG Data Lab is an independent publication, not affiliated with Microsoft Corporation.

A.J. Data Engineering Researcher & Technical Writer · UIG Data LabAll articles →
A.J. researches and writes about data engineering, analytics architecture, Microsoft Fabric, and modern cloud data platforms. Coverage spans Microsoft Fabric, Power BI, Azure Data Engineering, Databricks, Snowflake, Apache Spark, dbt, Apache Airflow, and modern cloud data infrastructure. The focus is practitioner-level content that helps data professionals understand platform capabilities, evaluate technology decisions, optimize costs, and implement practical solutions using official documentation, product updates, community insights, and industry best practices.
Power BIModel Context ProtocolMCP ServerDAXMicrosoft FabricAI AgentsGitHub CopilotSemantic Models
Scroll to Top