powerbi-local
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@powerbi-localWhat tables and measures are in the Power BI model I have open?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Power BI Local MCP Server (Python)
Servidor MCP que conecta ao motor Analysis Services Tabular local que o
Power BI Desktop expõe enquanto está com um arquivo aberto. Funciona com
.pbix e .pbip. 100% local: sem Azure AD, sem login online, sem publicar
nada na nuvem.
Pré-requisitos
Windows. O driver ADOMD.NET e a descoberta de porta são específicos de Windows.
Python 3.10+ (
python --version)..NET Runtime 8 — download. Não é o .NET Framework que já vem no Windows: o driver roda sobre o .NET moderno (CoreCLR). O Runtime basta; o SDK não é necessário.
Power BI Desktop, com um arquivo aberto na hora do uso.
Você não precisa do SQL Server Management Studio. O driver ADOMD.NET é
baixado direto do nuget.org (~2 MB) pelo driver_setup.py.
Related MCP server: mcp-powerbi-desktop
Instalar
Rode o instalar.bat (duplo clique), ou manualmente:
pip install -r requirements.txt
python driver_setup.pyO driver_setup.py baixa o pacote NuGet oficial
Microsoft.AnalysisServices.AdomdClient.NetCore.retail.amd64 e extrai os
DLLs para vendor/. Se a máquina já tiver o driver no cache do NuGet ou no
GAC, ele reaproveita e não baixa nada.
Instalar como plugin do Claude Code
Este repositorio e um plugin do Claude Code e tambem um marketplace de um plugin so. Para instalar:
/plugin marketplace add djorshuam/claude-mcp-powerbi
/plugin install powerbi-local@powerbi-local-marketplaceDepois de instalar, rode /powerbi-setup uma vez: ele instala as
dependencias Python, confere o runtime .NET e baixa o driver ADOMD.
Se voce tem varias versoes de Python, informe o caminho completo do
python.exe na opcao Caminho do python.exe do plugin -- e o mesmo
problema que o command do Claude Desktop resolve, so que pela config do
plugin.
O plugin traz:
o servidor MCP
powerbi-localcom as 5 ferramentasa skill
powerbi-analysis, que ensina o fluxo correto (porta primeiro) e as armadilhas de DAX/DMVo comando
/powerbi-setuppara diagnostico
Configurar no Claude Desktop
No claude_desktop_config.json:
{
"mcpServers": {
"powerbi-local": {
"command": "C:\\Python314\\python.exe",
"args": ["C:\\CAMINHO\\PARA\\powerbi-mcp-python\\server.py"]
}
}
}Use o caminho completo do python.exe, não só "python", se houver
mais de uma versão instalada — o Claude Desktop pode resolver para uma que
não tem as dependências.
Salve e reinicie o Claude Desktop completamente.
Ferramentas
Ferramenta | O que faz |
| Descobre instâncias abertas do Power BI e suas portas |
| Lista modelos disponíveis numa porta |
| Lista tabelas visíveis do modelo |
| Lista medidas com a expressão DAX completa |
| Executa |
Comece sempre por list_open_instances para obter a porta.
Testar manualmente
python server.pyO processo fica esperando input via stdio — é o comportamento normal de um servidor MCP, não um travamento. Ctrl+C para sair.
Notas de implementação
Coisas que custaram tempo para descobrir e que não são óbvias:
pythonnet.load("coreclr")antes deimport clr. No pythonnet 3.x o runtime .NET não é carregado sozinho, e sem isso oclr.AddReferencefalha em resolver os tipos do assembly.A pasta de workspace muda conforme a instalação do Power BI. Versão MSI usa
%LOCALAPPDATA%\Microsoft\Power BI Desktop\; versão da Microsoft Store usa%USERPROFILE%\Microsoft\Power BI Desktop Store App\. Opbi_discovery.pyvarre as duas.msmdsrv.port.txté UTF-16 little-endian sem BOM.Os DMVs aceitam só um subconjunto restrito de SQL. Não permitem
WHEREsobre coluna booleana (WHERE [IsHidden] = FALSEfalha com "Uma expressão Booliana não é permitida no contexto") nemINNER JOIN. Por isso o filtro de tabelas ocultas e o cruzamento medida→tabela são feitos em Python.
Limitações conhecidas
Só enxerga instâncias do usuário Windows atual (lê
%USERPROFILE%).run_dax_querytrunca em 500 linhas.Somente leitura: não cria nem altera medidas.
Requer acesso a
nuget.orgna primeira instalação. Em rede corporativa com proxy bloqueando, copie a pastavendor/de outra máquina.
This server cannot be deployed
Maintenance
Related MCP Connectors
- BasedashOAuthcom.basedash
Governed BI MCP. Ask questions of live company data and list workspace sources via OAuth.
Query Allen-Bradley and Siemens PLC projects, live tag values, and analyses in plain English.
Draxlr's remote MCP server connects AI assistants to your SQL databases and dashboards. Explore schemas, run read-only queries, manage saved queries and dashboards, and export results, all with row-level security so each user sees only their own data.
Query, join, profile, clean and convert CSV/JSON/Parquet with server-side DuckDB over MCP.
Related MCP Servers
- AlicenseCqualityBmaintenanceLocal-first MCP server for Power BI Desktop automation. Automate semantic model changes, DAX, Power Query, Excel, and report layout from MCP-capable AI clients.1001MIT
- FlicenseNot gradedqualityDmaintenanceModel Context Protocol server that enables querying and modifying live Power BI Desktop models by connecting to the in-memory Analysis Services engine.-
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to discover and interact with local Power BI Desktop instances, including inspecting table/column schema and executing DAX queries.2-
- AlicenseBqualityBmaintenanceMCP server for interacting with local Power BI Desktop and .pbip projects, enabling DAX queries, model documentation, measure editing, and PBIR visual management via natural language.9089 PyPI1Apache 2.0