Skip to main content
Glama
djorshuam

powerbi-local

by djorshuam

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 8download. 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.py

O 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-marketplace

Depois 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-local com as 5 ferramentas

  • a skill powerbi-analysis, que ensina o fluxo correto (porta primeiro) e as armadilhas de DAX/DMV

  • o comando /powerbi-setup para 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

list_open_instances

Descobre instâncias abertas do Power BI e suas portas

list_databases

Lista modelos disponíveis numa porta

list_tables

Lista tabelas visíveis do modelo

list_measures

Lista medidas com a expressão DAX completa

run_dax_query

Executa EVALUATE ... e retorna as linhas (máx. 500)

Comece sempre por list_open_instances para obter a porta.

Testar manualmente

python server.py

O 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 de import clr. No pythonnet 3.x o runtime .NET não é carregado sozinho, e sem isso o clr.AddReference falha 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\. O pbi_discovery.py varre as duas.

  • msmdsrv.port.txt é UTF-16 little-endian sem BOM.

  • Os DMVs aceitam só um subconjunto restrito de SQL. Não permitem WHERE sobre coluna booleana (WHERE [IsHidden] = FALSE falha com "Uma expressão Booliana não é permitida no contexto") nem INNER 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_query trunca em 500 linhas.

  • Somente leitura: não cria nem altera medidas.

  • Requer acesso a nuget.org na primeira instalação. Em rede corporativa com proxy bloqueando, copie a pasta vendor/ de outra máquina.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Model Context Protocol server that enables querying and modifying live Power BI Desktop models by connecting to the in-memory Analysis Services engine.
  • A
    license
    A
    quality
    A
    maintenance
    Enables local Power BI project (.pbip) automation, including model (TMDL) and report (PBIR) layer manipulation, without cloud dependencies. Provides 56 tools for building, editing, and validating reports and measures through natural language prompts.
    13
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/djorshuam/claude-mcp-powerbi'

If you have feedback or need assistance with the MCP directory API, please join our Discord server