A Power BI MCP server lets an AI agent such as GitHub Copilot, Claude or ChatGPT read or change your Power BI content through the Model Context Protocol. Microsoft now ships two of them, and picking the right one is most of the work. Use Fabric IQ MCP when the agent should answer questions from your reports and semantic models (it is read only and generally available). Use the Power BI Authoring MCP server when the agent should build or edit a semantic model: tables, measures, relationships, translations and security roles. The authoring server comes as a hosted endpoint (preview) or a local server (generally available, the only option that reaches Power BI Desktop and PBIP files).
An older Power BI Consumption MCP endpoint still works for existing setups, but Microsoft's own setup page now tells you to prefer Fabric IQ. We checked every endpoint, setting and limit below against Microsoft Learn and the official GitHub repository on October 27, 2026, and ran the local server on our test machine to see what an agent actually gets. If MCP itself is new to you, start with our plain English MCP explainer.
The Power BI MCP servers at a glance
| Item | Fabric IQ MCP | Authoring, hosted | Authoring, local | Consumption (older) |
|---|---|---|---|---|
| Job | Ask questions of reports and models | Create and edit models in Fabric | Create and edit models anywhere | Ask questions of models |
| Status | Generally available | Preview | Generally available | Preview, kept for existing integrations |
| Runs where | Hosted by Microsoft | Hosted by Microsoft | Your machine, over stdio | Hosted by Microsoft |
| Endpoint or package | https://fabriciq.svc.cloud.microsoft/v1/mcp/fabriciq | https://api.fabric.microsoft.com/v1/mcp/powerbi/authoring | npm @microsoft/powerbi-modeling-mcp or a VS Code extension | https://api.fabric.microsoft.com/v1/mcp/powerbi |
| Writes to your model | No | Yes | Yes (or read only with a flag) | No |
| Power BI Desktop and PBIP files | No | No | Yes | No |
| Service principal sign in | No | No | Yes | Yes, but RLS is not enforced |
Microsoft's overview page sums up the split in one line: build and document a model with the authoring server, then let everyone else ask questions of it through Fabric IQ. It also warns against using the authoring server for business questions. It can run DAX, but only so you can check the model you are building.
Fabric IQ: the MCP server for Power BI questions
Fabric IQ MCP is a remote server that gives an agent six read only tools: DiscoverArtifacts finds reports and semantic models by name, ResolveFabricItem turns a pasted browser URL into the IDs the other tools need, GetReportMetadata and GetSemanticModelSchema describe what is inside, ValueSearch finds stored values such as a product or region name, and ExecuteQuery runs a DAX query. There is no "answer my question" tool. Your agent picks the tools, writes the DAX and explains the result, so the quality of the model behind your client matters.
What makes it the default choice for most teams is how little you need. Microsoft lists a Microsoft Entra work or school account, a tenant whose home region supports all Fabric workloads, and access to at least one report or semantic model. You do not need Build permission, a workspace role or any IDs for the first test, and the models do not need to sit on Fabric or Premium capacity. The server runs as the signed in user, so row level and object level security still filter what comes back.
The limits worth knowing before you build on it:
- It is not available in Power BI only regions or sovereign clouds.
- Dashboards, paginated reports and Power BI apps are not supported.
- Service principal and app only sign in are not supported, so it is for people, not unattended jobs.
ExecuteQueryreturns 250 rows unless you setmaxRows, and each call hits one semantic model.- Answers are only as fresh as the model's last successful refresh.
The Power BI Authoring MCP server
The authoring server is the one for model builders. Its tools are grouped by object type, and through them an agent can create, update and delete tables, columns, measures, relationships, hierarchies, calculation groups, perspectives and security roles, run bulk renames and translations across hundreds of objects, check a model against modeling best practices, and run DAX to test a measure. Microsoft's example prompts include "Generate a French translation for my model" and refactoring two rolling average measures into a calculation group.
Hosted or local
Microsoft recommends the hosted endpoint when it fits, because there is nothing to install. The local server covers the cases the hosted one cannot reach:
- A model open in Power BI Desktop on your machine.
- Power BI Project (PBIP) or TMDL files on disk, so every agent edit shows up as a Git diff.
- Service principal sign in for a CI pipeline.
- Transactions (begin, commit, rollback) and Analysis Services traces.
Two catches. The local server does not support macOS, according to Microsoft, so Mac users go hosted. And the hosted server keeps your model connection in a session, so your client must send back the mcp-Session-Id header on every request. If it does not, the agent has to reconnect before each step. Microsoft also says not to register both versions at once, since the agent then sees two overlapping tool sets.
Permissions are simple: Write permission on the model to change it, Build permission if you only want to query it. For models in a Fabric workspace the local server also needs the capacity's XMLA endpoint set to Read Write, and the hosted server needs your Fabric admin to turn on the tenant setting "Users can use the Power BI Model Context Protocol server endpoint".
What we saw when we ran the local server
We started @microsoft/powerbi-modeling-mcp version 1.0.0 (published to npm on September 25, 2026) on a Linux x64 box with Node 20 and listed its contents with MCP Inspector 2.12.0. No Power BI tenant was involved, so this tests what an agent sees, not live model edits.
npx -y @modelcontextprotocol/inspector@latest --cli \
npx -y @microsoft/[email protected] --start --readonly \
--method tools/list
The server identified itself as powerbi-authoring-local 1.0.0 and returned 22 tools: one per object type (table_operations, measure_operations, relationship_operations, security_role_operations, calculation_group_operations and so on), plus connection_operations, database_operations, dax_query_operations, transaction_operations, trace_operations and accept_eula. Each tool takes an operation field, so database_operations alone covers listing models, importing and exporting TMDL folders and deploying to Fabric. Write tools carry the destructiveHint annotation and the trace tool carries readOnlyHint, which clients can use to decide when to ask you first. It also offers six prompts, including ConnectToPowerBIDesktop, ConnectToPBIP and AnalyzeDAXQuery.
Then we called a real tool without accepting the license. The server refused with a clear error: the EULA must be accepted first, by calling accept_eula, passing --accepteula, or setting PBI_MODELING_MCP_ACCEPT_EULA=true. The accept_eula tool description tells agents never to call it on their own, only after a person has read the terms and said yes. Read the EULA yourself before you flip that switch in a config file. We did not accept it, so we stopped there.
The flags that matter for safety: --readonly blocks all writes, and the default --readwrite mode asks for confirmation before the first edit to each database.
How to set it up in your agent
GitHub Copilot in VS Code
VS Code and Copilot CLI are the easy path because they ship with a preregistered Entra app, so sign in just works. For the hosted authoring server, add this to .vscode/mcp.json (Microsoft also offers a VS Code extension that installs the local server for you):
{
"servers": {
"powerbi-authoring-remote": {
"type": "http",
"url": "https://api.fabric.microsoft.com/v1/mcp/powerbi/authoring"
}
}
}
For the local server, replace the entry with "type": "stdio", "command": "npx" and the args ["-y", "@microsoft/powerbi-modeling-mcp@latest", "--start"]. Switch Copilot Chat to agent mode and the tools appear. If they do not, check that "MCP servers in Copilot" is on in your GitHub settings, since enterprise accounts have it off by default. Our guide to using MCP servers in GitHub Copilot explains which config file each Copilot surface reads.
Copilot CLI and Fabric IQ
For Fabric IQ, Microsoft's setup page uses Copilot CLI. Add a server named FabricIQ with "type": "http" and the Fabric IQ URL to ~/.copilot/mcp-config.json, start the CLI, run /mcp show FabricIQ and sign in when the browser opens. Do not paste a bearer token into the config, because a hardcoded Authorization header overrides the sign in flow and breaks when it expires. Microsoft also recommends pairing the server with the Fabric IQ skill from Skills for Fabric, which teaches the agent how to work through the tools. Our agent skills guide covers how skills load.
Claude Desktop, ChatGPT and other clients
Here is the snag most people hit. Microsoft Entra ID does not support dynamic client registration, so clients that rely on it, including Claude Desktop and ChatGPT, cannot sign in to the hosted servers on their own. The fix, per Microsoft's client registration guide, is to register a single tenant app in the Entra admin center, add the client's redirect URI (for Claude Desktop that is https://claude.ai/api/mcp/auth_callback), grant delegated Power BI Service permissions, then paste the app's client ID into the client's custom connector form. The authoring server needs Workspace.Read.All and SemanticModel.ReadWrite.All; Fabric IQ needs Item.Read.All and Item.Execute.All.
For terminal agents such as Claude Code, Gemini CLI or Cline, the local authoring server is often simpler: it is a normal stdio server, registered with the same npx command. Our guide to running an MCP server locally shows the config format for each of those clients and how to test with the Inspector first.
Keep your model and data safe
An agent with write access can make changes you cannot undo. Microsoft's own checklist is short and sensible: back up the model first, work in PBIP files under Git so you review a diff before anything ships, and start in --readonly mode until you trust the workflow. Give the account the smallest role that does the job.
Also remember where the data goes. The MCP server does not widen anyone's access, but schemas, metadata and query results flow into the conversation, and your client sends them to whichever model provider it uses. That is governed by your AI data policy and the provider's terms, not by Power BI security. One more trap on the older consumption endpoint: with service principal sign in, Power BI does not enforce row level security, so the agent can see everything the principal can.
If you are weighing an MCP server against calling the Power BI REST API directly, our MCP server vs API comparison walks through when each makes sense. And if you would rather wrap your own reporting tool, see how to build an MCP server in Python.
FAQ
Is there an official Power BI MCP server?
Yes. Microsoft publishes Fabric IQ MCP for read only questions, and the Power BI Authoring MCP server (hosted and local) for building and editing semantic models. Both are documented on Microsoft Learn, and the local server's code and docs live in the microsoft/powerbi-modeling-mcp repository on GitHub.
Is there an MCP server in Power BI Desktop itself?
No. Power BI Desktop does not host an MCP server. The local authoring server runs next to it on your Windows machine and connects to the model you have open, using a prompt such as "Connect to 'Sales' in Power BI Desktop". The hosted servers cannot reach Desktop at all.
Is the Power BI MCP server free?
Microsoft does not list a separate price for either server. You still need the Power BI access you would need anyway, an MCP client with its own subscription or model costs, and for the older consumption endpoint's Generate Query tool, a Copilot license, which Microsoft says consumes Copilot capacity.
Can I use it with Claude or ChatGPT?
Yes, with an extra step. Register your own Entra app, add the client's redirect URI and the delegated Power BI permissions, then enter the app's client ID when you add the custom connector. VS Code and Copilot CLI skip this step because they come with a preregistered app.
Should I still use the Power BI Consumption MCP server?
Only if you already built on it. Microsoft now points consumption scenarios to Fabric IQ, which is generally available, finds content by name or URL and needs no Build permission. The consumption endpoint stays in preview for existing integrations.
Does it work on a Mac?
Use the hosted servers. Microsoft's documentation says the local authoring server does not support macOS, and Power BI Desktop is a Windows app, so Mac users author models in a Fabric workspace through the hosted endpoint.



