To connect AI agents to Power BI, register Microsoft’s Fabric IQ MCP, generally available since September 2026, and sign in with Entra ID. Microsoft now calls the remote Power BI MCP server the Power BI Consumption MCP server, in preview. In the same client, Atlan’s MCP server adds glossary definitions and lineage.
That endpoint, https://api.fabric.microsoft.com/v1/mcp/powerbi, still works, yet Microsoft’s setup page for it (2026) now says: “For semantic model consumption, prefer to use the Fabric IQ MCP server.” On Fabric IQ, the calling agent composes the DAX, working from what your Power BI semantic model exposes. Atlan crawls Power BI datasets and measures and extracts dataset-to-report lineage, so the same agent, over the Model Context Protocol, can read that context from your enterprise context layer alongside the model.
| Endpoint | Status and date | Use it for | Source |
|---|---|---|---|
Fabric IQ MCP: https://fabriciq.svc.cloud.microsoft/v1/mcp/fabriciq |
Generally available, September 2026 | Read-only questions over reports and semantic models | Get started with the Fabric IQ MCP server, 2026-10-21; What’s New? - Microsoft Fabric |
Power BI Consumption MCP, the remote Power BI MCP server: https://api.fabric.microsoft.com/v1/mcp/powerbi |
Preview; Microsoft calls it the earlier endpoint | Existing integrations; Copilot-generated DAX | Power BI Consumption MCP server setup, 2026-09-17 |
Power BI Authoring MCP, hosted: https://api.fabric.microsoft.com/v1/mcp/powerbi/authoring |
Preview | Creating or changing models in Fabric workspaces | Overview of the MCP Servers, 2026-09-24 |
| Power BI Authoring MCP, local (stdio) | Generally available | Power BI Desktop, PBIP files, service principal | Overview of the MCP Servers, 2026-09-24 |
Which Power BI MCP endpoint should you use?
Microsoft runs three hosted Power BI MCP endpoints and one local server; the agent’s job picks one. For questions, Microsoft’s Consumption setup page (2026) points to Fabric IQ. Item creation belongs to Fabric’s own MCP servers.
The Consumption endpoint fits two cases: an existing integration built on it, which Microsoft still documents, or Power BI’s own DAX generation. Generate Query uses Copilot in Power BI and needs a Copilot license, and Fabric IQ’s tool list doesn’t include it.
Region is the hard stop: Fabric IQ MCP isn’t available in Power BI-only regions or sovereign clouds. If the IQ names blur, see Fabric IQ, Work IQ and Foundry IQ; for a fixed integration, weigh when to use MCP instead of an API.
| Fabric IQ MCP | Consumption endpoint | Authoring, hosted | Authoring, local | |
|---|---|---|---|---|
| Status | GA, September 2026 | Preview, the earlier endpoint | Preview | GA |
| Use for | Read-only questions | Existing integrations, Copilot DAX | Building or changing models | Desktop, PBIP files, service principal |
| Tenant setting | Doesn’t apply | Admin must enable it | Admin must enable it | None blocks it |
| Sign-in | Delegated Entra ID only | Signed-in user; service principal skips RLS | Entra ID as the signed-in user | Supports service principal |
| Delegated scopes | Item.Read.All, Item.Execute.All | Dataset.Read.All, MLModel.Execute.All, Workspace.Read.All | SemanticModel.ReadWrite.All, Workspace.Read.All | Not applicable |
| Model permission | Access only; no Build | Build | Write to change; Build runs DAX only | Write to change; Build runs DAX only |
| Tools | DiscoverArtifacts, ResolveFabricItem, GetReportMetadata, GetSemanticModelSchema, ValueSearch, ExecuteQuery | Execute Query, Get Semantic Model Schema, Get Report Metadata, Generate Query | Model authoring tools; DAX for validation | Model authoring tools, plus transactions and traces |
| Limits that bite | 250 rows by default; one model per query | Stateless; large schema payloads | 100,000-row DAX cap; session header required | 100,000-row DAX cap; no macOS support |
Decide in three questions:
- Changing models? Use Authoring: local (not on macOS) for Desktop, PBIP files or a service principal, hosted (preview) otherwise.
- Answering questions on an existing integration, or need Copilot-generated DAX? Use the Consumption endpoint (preview).
- Otherwise, if the tenant’s home region supports all Fabric workloads, use Fabric IQ MCP (GA). If it doesn’t, Fabric IQ MCP isn’t available to your tenant.
What changed in September and October 2026
- September 2026: Fabric’s What’s New lists Fabric IQ MCP Server as generally available.
- By 2026-09-17: the Consumption setup page, last updated that day, titles the remote endpoint “Power BI Consumption MCP server (preview)” and points consumption to Fabric IQ.
- By 2026-09-24: the MCP servers overview, last updated that day, lists Authoring as hosted (preview) and local (generally available).
- By 2026-10-21: the Fabric IQ setup page, last updated that day, documents a tool-contract pin and a private-link endpoint.
Each “by” date is the page’s last-updated stamp; the change may have landed earlier. Reread the two preview pages before you build.
What do you need before you connect an agent to Power BI?
Prerequisites differ by server. Two of them, a tenant setting and an app registration, can need an admin.
| Prerequisite | Fabric IQ MCP | Consumption endpoint |
|---|---|---|
| Tenant region | Home region supports all Fabric workloads | Prerequisites are on the Consumption setup page |
| Tenant setting | None; the MCP setting doesn’t apply | “Users can use the Power BI Model Context Protocol server endpoint (preview)” |
| Entra app | Preregistered in GitHub Copilot CLI; some clients need your own | Preregistered in VS Code and GitHub Copilot CLI; others need your own |
| Delegated scopes | Item.Read.All, Item.Execute.All | Dataset.Read.All, MLModel.Execute.All, Workspace.Read.All |
| Model permission | Access to the report or model; no Build | Build on at least one semantic model |
| Model identifier | Name or browser URL | Semantic model ID from the URL |
Fabric IQ’s two scopes don’t require administrator consent by default. If sign-in still fails, check consent and scopes first.
Both columns assume a person signs in; for when an agent should run under its own identity, see AI agent identity. Governance across Fabric and Power BI covers the controls your admins already own.
How to connect an agent to Fabric IQ MCP
Five steps take a client from no configuration to a query that returns data, with a check wherever something can fail. They follow Microsoft’s Fabric IQ setup page (2026), which uses GitHub Copilot CLI.
Step 1: Confirm the region and your access to the model
Fabric IQ needs a tenant whose home region supports all Fabric workloads. No Fabric or Premium capacity, workspace role or Build permission is needed. Pick a report or semantic model: Fabric IQ doesn’t support Power BI dashboards, paginated (RDL) reports, or Power BI apps.
Check: open that report in the Power BI service as yourself.
Step 2: Add the Fabric IQ endpoint to your MCP client
On macOS or Linux, open or create ~/.copilot/mcp-config.json. On Windows, use %USERPROFILE%\.copilot\mcp-config.json. Add the configuration from Microsoft’s setup page:
{
"mcpServers": {
"FabricIQ": {
"type": "http",
"url": "https://fabriciq.svc.cloud.microsoft/v1/mcp/fabriciq",
"tools": ["*"]
}
}
}
With private links, use https://api.fabric.microsoft.com/v1/mcp/fabriciq instead. Leave out any Authorization header, because a configured one overrides interactive OAuth and automatic token management. In MCP architecture terms, the CLI is the host, as in connecting an AI coding agent to a data warehouse with MCP.
Step 3: Sign in with Entra ID and accept the permissions
Fabric IQ uses delegated OAuth 2.0 authentication through Microsoft Entra ID with Item.Read.All and Item.Execute.All. Service-principal and application-only authentication aren’t supported. Start the CLI, run /mcp show FabricIQ, sign in with your work or school account, and accept the permissions.
Check: the server shows as connected and lists the Fabric IQ tools.
Step 4: Run a read-only discovery test
Ask, with your own report name: “Find the Sales Analytics report in Microsoft Fabric.” The client calls DiscoverArtifacts, and a result verifies authentication, your Fabric permissions, tool discovery and execution, and access to the item.
Check: the report comes back by name. A browser URL works too; a Power BI share link doesn’t.
Step 5: Query a model end to end and pin the tool contract
Ask a question that needs data. Depending on the question, the agent calls DiscoverArtifacts or ResolveFabricItem, then GetReportMetadata and GetSemanticModelSchema, ValueSearch when available, and ExecuteQuery, then explains the result. Each ExecuteQuery call targets one semantic model and returns up to 250 rows unless you set maxRows. Large responses arrive as an embedded CSV resource.
Call tools/list at runtime instead of hard-coding a schema, the reason MCP vs function calling matters here. To pin today’s contract, send X-Variants: Fabric.Routing.FabricIQ.V1 on initialize, tools/list and tools/call. Microsoft’s sample configuration doesn’t carry it, so add it wherever your client sets custom headers. Fabric IQ MCP works best with the Fabric IQ skill from Skills for Fabric, a split agent skills and MCP servers explains.
How to connect an agent to the remote Power BI MCP server (Consumption endpoint)
The Consumption endpoint needs an admin to turn on a tenant setting first. Microsoft’s setup page, last updated 2026-09-17, labels it preview.
- Ask a Power BI admin to turn on “Users can use the Power BI Model Context Protocol server endpoint (preview)” in Integration admin settings.
- Confirm Build permission on the model, and copy its ID from
https://app.powerbi.com/groups/{workspaceId}/datasets/{semanticModelId}. - In VS Code, add the block below, from Microsoft’s setup page, to your MCP configuration and open GitHub Copilot in agent mode. VS Code ships a preregistered Entra app, so sign-in needs no app registration.
- Share the model ID and ask, as Microsoft’s setup page suggests: “What tables are in this semantic model?”
{
"servers": {
"powerbi-remote": {
"type": "http",
"url": "https://api.fabric.microsoft.com/v1/mcp/powerbi"
}
}
}
The tools differ: Execute Query, Get Semantic Model Schema, Get Report Metadata, and Generate Query. The schema tool returns Copilot tooling metadata when configured, the same work behind Power BI Copilot readiness. Each query executes independently, and large models can produce large schema payloads.
How do you connect MCP clients without a preregistered Entra app?
Microsoft Entra ID doesn’t currently support dynamic client registration, so a client without its own Entra app needs one you register. For the hosted Power BI servers, VS Code and the GitHub Copilot CLI ship one; Microsoft names Claude Desktop and ChatGPT as clients that need an OAuth client ID. For Fabric IQ, the client must also support Streamable HTTP and the required OAuth 2.0 flow.
Microsoft’s registration guide (2026) covers the two hosted Power BI servers, Consumption and Authoring, in four moves:
- Register a single-tenant app in the Microsoft Entra admin center.
- Add a Public client/native redirect URI, exactly as your client documents it. Microsoft lists
https://claude.ai/api/mcp/auth_callbackfor Claude Desktop. - Add the delegated Power BI Service scopes for your server.
- Give the client ID to the MCP client. To test the Consumption server, ask: “What tables are in semantic model [ID of the semantic model]?”
For Fabric IQ, its setup page gives the same single-tenant steps with the delegated permissions Item.Read.All and Item.Execute.All, plus the tenant ID if the client asks. No tenant setting applies, and the test is Step 4’s find-a-report prompt.
Hosted Authoring has the same limit: clients that depend on dynamic registration can’t connect to it.
When should you use the Power BI Authoring MCP server instead?
The Authoring server builds and changes models, and Microsoft says don’t use the Power BI Authoring MCP server for consumption scenarios. The hosted endpoint, https://api.fabric.microsoft.com/v1/mcp/powerbi/authoring, is in preview. The local server, npx -y @microsoft/powerbi-modeling-mcp@latest --start, is generally available.
With only Build permission, the server can only run DAX queries against the model; changes need Write. DAX tools stop at 100,000 rows. The local server doesn’t support macOS. The hosted server needs your client to return the mcp-Session-Id header on every request, and Microsoft says not to register local and hosted together.
An agent that creates objects also raises who governs a Fabric item an agent created.
How do row-level security and permissions shape what the agent sees?
With delegated sign-in, every route runs the query as the signed-in user, so the agent sees what that person sees. Service principals are the exception to watch. Consumption queries execute in the context of the authenticated user, and service principal authentication doesn’t currently support RLS. On Fabric IQ, RLS and OLS continue to restrict returned data, with no administrator-impersonation path.
Test it with two users whose role filters you know differ: write down each one’s expected rows, then ask the same question as each. Matching those rows is the pass. Different rows alone prove little.
According to Microsoft’s MCP servers overview (2026), “An MCP server doesn’t expand data access, but it does move data.” Results reach the client and possibly its LLM provider. For the questions about governing Fabric AI agents, answers sit in RLS roles, Purview controls for AI agents, and role-based access control in a context layer.
Common Power BI MCP connection errors and how to fix them
Every row comes from Microsoft’s troubleshooting tables and documented limits. The sign-in rows come first, because no tool call works until sign-in does.
| Symptom | Likely cause | Fix | Server |
|---|---|---|---|
| Browser sign-in never opens | Client lacks OAuth discovery or needs an app registration | Register a single-tenant Entra app | Fabric IQ |
| Authentication fails | Token missing, expired or wrong audience; missing scopes; consent policy | Reauthenticate; check app registration, scopes and consent policy | Fabric IQ |
| Interactive sign-in stops appearing | An Authorization header overrides interactive OAuth |
Remove the header | Fabric IQ |
| Tools don’t match the documented list | X-Variants header missing or wrong |
Set Fabric.Routing.FabricIQ.V1, then reconnect |
Fabric IQ |
| Known report not found | No access, unsupported item type, ambiguous name or a share link | Use a precise name or browser URL | Fabric IQ |
| Permission error on a tool call | Identity can’t access the content, or RLS or OLS restricts it | Verify access and roles | Fabric IQ |
| Rate-limit error | Request bursts or Power BI throttling | Back off, then narrow the query | Fabric IQ |
| Stale numbers | Model hasn’t completed a recent refresh | Check refresh history, retry after refresh | Fabric IQ |
| Answer stops at 250 rows or shows only a preview | Default row limit, or the client’s handling of the embedded CSV resource | Set maxRows, aggregate, or open the CSV resource |
Fabric IQ |
| Sign-in to hosted Authoring fails | Tenant setting off, or client needs dynamic registration | Enable the setting; register an app or go local | Authoring, hosted |
| Agent reads the model but changes fail | Build permission without Write | If the agent should change the model, grant Write; for models in a Fabric workspace, confirm the XMLA endpoint is set to Read Write | Authoring |
| New session on every tool call | Client doesn’t return mcp-Session-Id |
Use a session-keeping client or the local server | Authoring, hosted |
| Service principal agent ignores RLS | RLS not enforced for service principals | Use delegated user sign-in | Consumption |
| Local and hosted Authoring both registered | Microsoft advises against running both | Register one | Authoring |
Why does the semantic model decide the quality of the agent’s answers?
On Fabric IQ, the agent reads the schema and writes the DAX, so whatever the model does not describe, the agent has to infer. Fabric IQ MCP doesn’t expose a natural-language answering tool; table names, measures and descriptions, plus any AI instructions and verified answers the model owner has set, are what the agent maps your question onto.
Prep data for AI, a preview feature, adds AI data schemas, verified answers and AI instructions, and Microsoft says these features “can’t ensure a specific output every time.” On the MCP side, the Consumption schema tool returns that Copilot tooling metadata when it is configured, and Microsoft’s Fabric IQ skill, in the skills-for-fabric repository, has the agent read custom AI instructions and verified answers through GetSemanticModelSchema before it writes DAX. Results are also only as current as the latest successful refresh.
If your definitions sit in a Power BI semantic model rather than a dedicated semantic layer, the model already does that layer’s job for the agent. The descriptions you write there are the machine-readable definitions a semantic layer for AI agents exists to supply. Ownership, certification and upstream sources often live outside the model, which is where context engineering and a semantic layer split the work.
Checklist: verify your Power BI MCP connection
Run these eleven checks in order to confirm that a Power BI MCP connection works. Each one points back to a section of this page.
| ID | Check | Pass looks like |
|---|---|---|
| PBIMCP-01 | Endpoint matches the job | Fabric IQ for questions; Consumption only for an existing integration or Copilot DAX; Authoring only for model changes |
| PBIMCP-02 | Tenant region supports all Fabric workloads (Fabric IQ) | Not a Power BI-only region or sovereign cloud |
| PBIMCP-03 | Tenant setting enabled (Consumption, hosted Authoring) | Admin confirms the setting is on |
| PBIMCP-04 | Client has an Entra app | Preregistered client, or your own registered client ID |
| PBIMCP-05 | Delegated scopes granted and allowed by consent policy | Item.Read.All and Item.Execute.All for Fabric IQ |
| PBIMCP-06 | MCP handshake | /mcp show FabricIQ shows connected and lists tools |
| PBIMCP-07 | Read-only discovery test | The named report returns through DiscoverArtifacts |
| PBIMCP-08 | End-to-end data test | Agent calls schema tools, then ExecuteQuery, and explains the result |
| PBIMCP-09 | RLS sanity check | Two users with known, different role filters each get the rows written down beforehand |
| PBIMCP-10 | Freshness check | Result matches the model’s latest successful refresh |
| PBIMCP-11 | Tool list from runtime | tools/list matches; if not, check X-Variants |
How Atlan adds context alongside Power BI’s MCP servers
Power BI’s servers answer from one semantic model’s own definitions; the Atlan MCP server connects to the same client and supplies the context around that model. Before an agent trusts a measure called Revenue, it helps to know whether it is certified, what feeds it, and who owns it.
Atlan crawls Power BI workspaces, reports, dashboards, datasets, dataflows and measures and extracts dataset-to-report and dataflow lineage. Its MCP server exposes 41 tools across nine categories, some gated per tenant, including business glossary and lineage. An agent can walk that lineage the way MCP for data lineage describes; Power BI column-level lineage covers the finer grain.
The server is hosted, with nothing to install, and every action respects the permissions you’ve already set in Atlan. It doesn’t send your data to any LLM and processes only permission-scoped metadata, such as glossary names and descriptions and lineage relationships. Like any MCP server’s output, that metadata still moves to your client and possibly its LLM provider.
Register it next to Fabric IQ, and the agent can resolve a definition in Atlan’s Enterprise Data Graph, then query the number through Fabric IQ. Fabric IQ calls always run as the signed-in user. Atlan calls do too when the client connects through OAuth; with a service-account API token, they run as a service identity. The longer argument is why AI agents need an enterprise context layer.
If your most-asked measures have no owner or certified definition yet, that is the gap the agent’s answers will expose first.
FAQs about connecting AI agents to Power BI with MCP
1. Is the remote Power BI MCP server generally available?
No. Microsoft’s Consumption setup page, last updated 2026-09-17, calls the remote endpoint the earlier Power BI Consumption MCP server, in preview. Fabric IQ MCP, which Microsoft recommends instead, is generally available as of September 2026.
2. What is the difference between the Power BI Consumption MCP server and Fabric IQ MCP?
The Consumption endpoint is in preview, needs a tenant setting, Build permission and a model ID, and includes Copilot-based Generate Query. Fabric IQ MCP is generally available, needs no Build permission or MCP tenant setting, finds models by name, and leaves DAX to the agent.
3. Do I need Build permission to query a semantic model through MCP?
On the Consumption endpoint, yes: Build on at least one semantic model. Fabric IQ MCP needs only access to the report or model, with no Build permission or workspace role. On the Authoring server, Build allows DAX queries and changes need Write.
4. Does the Power BI MCP server respect row-level security?
Yes, for signed-in users. Fabric IQ and the Consumption endpoint query as the authenticated user, and on Fabric IQ, RLS and OLS can give two users different results for one question. Service principals are the exception (see question 5).
5. Can a service principal connect to Fabric IQ MCP?
No. Fabric IQ MCP supports delegated OAuth 2.0 through Microsoft Entra ID only; service-principal and application-only authentication aren’t supported. On the Consumption endpoint, an admin can let service principals connect, but service principal authentication doesn’t currently support RLS.
6. Does Fabric IQ MCP turn natural-language questions into DAX?
The agent does. Fabric IQ MCP exposes no natural-language answering tool; the calling agent selects tools, composes DAX and explains results. The Consumption endpoint’s Generate Query tool uses Copilot in Power BI and needs a Copilot license.
7. Why can’t my MCP client sign in to the Power BI MCP server?
Usually the client has no preregistered Entra app. Entra ID doesn’t currently support dynamic client registration, so a client such as Claude Desktop or ChatGPT needs an app you register, with the exact redirect URI and that server’s scopes: Item.Read.All and Item.Execute.All for Fabric IQ. On Fabric IQ, also remove any Authorization header.
8. How many rows does Fabric IQ MCP return per query?
Up to 250 rows by default, according to Microsoft’s Fabric IQ setup page. Set maxRows on ExecuteQuery for more. Large responses come back as an embedded CSV resource, which clients handle unevenly. Each call targets one semantic model, so a question that spans models needs separate queries.
Sources
- Get started with the Fabric IQ MCP server, Microsoft Learn, last updated 2026-10-21
- Power BI Consumption MCP server setup, Microsoft Learn, last updated 2026-09-17
- Overview of the MCP Servers, Microsoft Learn, last updated 2026-09-24
- Power BI Authoring MCP server, Microsoft Learn, last updated 2026-09-17
- Register Power BI MCP servers for MCP clients, Microsoft Learn, last updated 2026-09-17
- What’s New? - Microsoft Fabric, Microsoft Learn, last updated 2026-10-02
- Integration admin settings, Microsoft Learn, last updated 2026-05-17
- Prepare Your Data for AI to Improve Copilot Results (Preview), Microsoft Learn, last updated 2026-05-30
- GitHub - microsoft/skills-for-fabric: A collection of skills and MCP systems to enable users of CLI, VSCode, Claude to operate over Microsoft Fabric · GitHub
- Atlan MCP tools, Atlan Docs
- Atlan MCP security, Atlan Docs
- Atlan MCP, Atlan Docs
- What does Atlan crawl from Microsoft Power BI?, Atlan Docs
- What lineage does Atlan extract from Microsoft Power BI?, Atlan Docs