BIChart Logo
BIChart

Choosing the Right AI Tools for Microsoft Fabric and Power BI Authoring

PowerBI

There is no shortage of posts about individual AI tools for Microsoft Fabric and Power BI features. Every week brings updates to MCPs, CLIs and the hard part is no longer learning any one of them. It is knowing which tool to reach for, and when.

This weekend I sat down to install them all and get to the bottom of what tool we can use to help our clients building and migrating into Fabric and Power BI. The organizing principal where I wanted to sort tools by the job they do, not the product name they ship under.

Microsoft Fabric and Power BI MCP and CLI

Fabric tooling looks like sprawl until you notice every tool does one of four things. It authors something, it reads or analyzes something, it operates the platform, or it moves something. For that purpose I label them: Author, analyze, operate, migrate.

For me, when I tag a tool with its verb, the sprawl collapses.

The MCP Servers, and What Each Solves

MCP servers are the interactive API surface. They are what the agent calls when it needs to author or inspect something live, inside a working session.

ServerJobWhat it solves when buildingSource
powerbi-modeling-mcpAuthorBuilds semantic models directly: tables, measures, DAX, RLS, calc groups. This is your authoring hand for the model layer.npm package, run locally via npx
FabricIQAnalyzeInspects published Power BI: discovers objects, reads schema, generates and runs DAX. Use it to see what already exists before you change anything.Remote HTTP endpoint, registered with a bearer token
fabric-coreOperatePlatform operations: workspace and item CRUD, permissions, catalog search. This is the hand for provisioning and governance.Microsoft remote Fabric MCP endpoint, bearer token
fabric-mcp-serverReferenceServes API specs, schemas, and OneLake development detail. Use it when you need the shape of an API, not to change anything.npm package, run locally via npx

The CLIs, and Where They Take Over

CLIs are the broad surface. They reach the workloads the MCP servers deliberately leave alone, and they handle the setup that MCP cannot.

CLIJobWhat it solvesSource
Azure CLI
az
OperateMints tokens and makes raw Fabric REST calls. Everything else depends on it for auth.Azure CLI
Microsoft Fabric CLI
fab
OperateWorkspace and item automation across workloads. This is your general-purpose Fabric hand.Microsoft Fabric CLI (ms-fabric-cli), via pip
powerbi-desktopAuthorOpens and reloads PBIP projects in Desktop for model and report work. This is also referenced as Power BI BridgeShips with Power BI Desktop
powerbi-report-authorAnalyzeValidates PBIR report projects before you publish them.Power BI CLI tooling from Microsoft

You are not alone if you feel confused.

I hoped writing this article would force me to get my arms wrapped around these tools. I regularly have to revert back and ask the LLM what tool to use for the task at-hand.

Building Preferences

As a “non-engineer” I spend most of my day in Cursor. I reach for an MCP server when I need to authoring or inspect inside a live session. Connecting Cursor to Power BI bridge is where I got the biggest gains. I explained in plain English what needed to happen to get my dashboard to UAT readiness and watched the LLM work and the Power BI screen flicker.


I typically reach for a CLI for provisioning, automating, or touching a workload that has no dedicated server. Typically, someone in my role does not get to complete these functions outside of a lab, so I didn’t spend a lot of time exploring these functions.

Gotcha Worth Knowing for Cursor

Learnings with Cursor and VS Code. Cursor cannot OAuth into the fabric-core remote MCP. It attempts dynamic client registration; Fabric’s remote MCP does not support it, and you get an incompatible-auth-server error with no Connect button.

The fix is to mint an Azure bearer token with az and inject it into the MCP client config directly, then refresh it before it expires roughly every hour. It is a small script and a scheduled refresh. Nobody documents it, so budget an hour the first time and none after that.

Where Each Tool Helps for Migration

Migration is where the map pays off, because a migration is not one job. It is six, and each phase reaches for a different tool. In my case I built a rubric and assessment of my migration work so I capture knowledge and bring dashboards from automated migration to UAT ready.

Assess and plan first first. Enumerate the source notebooks, jobs, pipelines, and tables, and flag anything with no Fabric equivalent before you commit to a plan. This is fab and fabric-core reading inventory.

The value is not faster code porting. That is the easy part. The value is a workflow that assesses before it acts and validates at every gate. The feedback loop and knowledge captured in these workflows is just as important as the work itself. In my world of migrations, this is the disciplined part of the process that gets skipped under deadline.

Early Success- Real World Migration

Fabric tooling is not hard because any one tool is hard. It is hard because there are too many.

I had a migration estimate of 35 hours and wanted to break down what % was automated and what % would require cleanup. 35 hour estimate is unacceptable in 2026. For reference, the original Tableau dashboard took 60 hours, including the data engineering effort in Snowflake.

With BIChart automating most of the process the Power BI bridge took the wheel and with a dozen turns and 90 minutes, I had a validated dashboard ready to demo for UAT.

I look forward to sharing results in my own Analytics as Code and Agentic adventures with Microsoft Fabric and BIChart.

Ryan Goodman

Ryan Goodman

Ryan Goodman has been in the business of data and analytics for 20 years as a practitioner, executive, and technology entrepreneur. Ryan recently returned to technology after 4 years working in small business lending as VP of Analytics and BI. There he implanted an analytics strategy and competency center for modern data stack, data sciences and governance. From his recent experiences as a customer and now working full time as a fractional CDO / analytics leader, Ryan joined BIChart as CMO.