Ask Claude to analyse your Power BI data. Get answers — not context-window crashes.
Power BI Analyst MCP
Ask Claude to analyse your Power BI data. Get answers — not context-window crashes.
Connect Claude (or any MCP client) to your Power BI semantic models. Explore tables and measures, run DAX queries, and work with real results — even across datasets with tens of thousands of rows. Large query results are automatically saved to a local file and paged to the agent on demand, so your AI session stays fast and focused no matter how much data you pull.
Everything runs on your machine. Your data never passes through a third-party relay.
What becomes possible
The analytics bottleneck has never really been data access — Power BI already gives people access. The bottleneck is translation: the skilled, time-consuming work of turning data into a decision. This server moves that translation to an LLM.
Compound reasoning across your entire model A human analyst runs one query, reads the result, forms a hypothesis, runs another query. This serialises over hours. An agent can run twenty queries in sequence — each informed by the last — synthesise across all of them, and deliver a reasoned conclusion in minutes. Ask "what's driving the margin decline in EMEA?" and Claude will explore measures, drill into markets, check time trends, isolate the outlier, and explain it — without you directing each step.
Natural language analytics for everyone Any stakeholder can ask a data question and get a real answer backed by live DAX — without knowing what DAX is, without filing a ticket, without waiting. The translation layer that used to require a trained analyst runs on demand.
Proactive anomaly detection Run Claude on a schedule against your key measures. It queries the data, compares to prior periods, and flags anything outside expected ranges in plain English — before anyone has to open a dashboard to find out something went wrong.
Self-documenting semantic models "List every measure in this dataset and explain what it calculates." Claude explores the schema and produces a data dictionary — useful for onboarding, governance, and anyone trying to understand what a model actually contains.
Large datasets, handled automatically Power BI queries can return tens of thousands of rows. Returning all of that inline would consume most of an LLM's context window and crash the session. This server saves large results to a local CSV and gives the agent a compact summary — row count, column names, 5-row preview — then lets it page through the file on demand. You get the full dataset. The AI session stays lean.
Query history that compounds over time Every successful DAX query is logged locally in a JSONL audit trail — what the user asked, the DAX that was generated, the columns returned, and where the CSV was saved. In the next session, the agent searches this history to find relevant prior work: reusable DAX patterns, previously computed result files, and context from earlier analyses. The more you use it, the faster and smarter it gets — and you always have an audit trail of where every number came from.
Your data stays on your machine Queries, results, and tokens never pass through a cloud relay. The server runs locally, authenticates via the same OAuth device code flow as the Power BI web app, and stores tokens in your OS's native secure store (Keychain / DPAPI / LibSecret).
How it compares to Microsoft's official MCP servers
Microsoft publishes two MCP servers for Power BI. This one is different in purpose and architecture from both.
| This server | Microsoft Remote MCP | Microsoft Modeling MCP | |
|---|---|---|---|
| Purpose | Query and analyse existing models | Query existing models | Build and modify models |
| Runs | Locally on your machine | Microsoft's cloud infrastructure | Locally (Power BI Desktop) |
| Data path | Direct to Power BI REST API | Via Microsoft's MCP relay | Local XMLA |
| Auth | OAuth device code (delegated) | O |
Tools (3)
list_workspacesList all Power BI workspaces accessible to the user.list_datasetsList datasets within a specific Power BI workspace.execute_daxExecute a DAX query against a specific Power BI dataset.Configuration
{"mcpServers": {"powerbi-analyst": {"command": "uvx", "args": ["powerbi-analyst-mcp"]}}}