MCP server: One MCP server.

Horizun PBI MCP

@horizungroupMCP server · External

Build, audit and repair Power BI Desktop models and PBIP reports with DAX, TMDL and PBIR.

Business intelligencev2.1.3Apache-2.0Python
Freeno charge per call

Runs on your machine from its package; the steps are below.

How it works
From the README

What it does

  1. Reads
  2. Writes
  3. High impact

At most: moves money, runs code or commands, deletes data, or sends messages for you.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

PyPIhorizun-pbi-mcpv2.1.3

Run

uvx horizun-pbi-mcp

MCP client config

{
  "mcpServers": {
    "horizun-pbi-mcp": {
      "command": "uvx",
      "args": [
        "horizun-pbi-mcp"
      ]
    }
  }
}
README6 min read

CI PyPI Python License

Build and fix Power BI reports by describing what you want. Ask in plain language; the server runs the DAX, edits the model, writes the report pages — and checks its own work afterwards.

No licence, no API key, no paid plan

It runs as a local process on your own Windows machine, so the free apps are enough: install it in ChatGPT Desktop or Claude Desktop on their free tiers and start asking. No OpenAI or Anthropic API key, no subscription, no server of ours in the middle — and Power BI Desktop is free as well. One click installs it and it prepares its own runtime: no Python, no JSON to edit.

How it works

v2.1.3 · 139 tools · Windows · ChatGPT Desktop Free · Claude Desktop Free · Claude Code · Codex

New to the project? Start with what this Power BI MCP is, when to use it, and what it deliberately does not do.

Install

No repository clone, manual DLL download or .mcp.json editing is required. Pick the line that matches you.

ChatGPT Desktop Free

Run the verified one-paste installer from docs/INSTALL.md, restart ChatGPT Desktop, then open Plugins → Personal and install Horizun PBI MCP. No OpenAI API key is required.

Claude Desktop Free

Download the .mcpb from the latest release and double-click it. Claude Desktop supplies the bootstrap runtime; no Claude Code install or JSON editing is required. It will say the extension is not verified by Anthropic — what it says about anything installed outside its own directory — and let you continue.

Claude Code

powershell
claude plugin marketplace add HorizunGroup/horizun-pbi-mcp
claude plugin install horizun-pbi-mcp@horizun

Codex

powershell
codex plugin marketplace add HorizunGroup/horizun-pbi-mcp

Then open /plugins, pick the Horizun marketplace and install horizun-pbi-mcp.

Desktop or Code?

Same server, same 139 tools, same local runtime — install both and they share it. Pick by what you are doing: Claude Desktop to use Power BI, in chat, one click, free tier. Claude Code to build — it adds the terminal, git and your repo, and loads tool schemas on demand instead of all at once.

On a new PC, the verified one-paste installer prepares the prerequisites without administrator rights. First setup takes a few minutes: run pbi_install_status until ready, restart once, and confirm the 139 pbi_* tools appear.

Your first minute

  1. Open Power BI Desktop with any report.
  2. Ask: "List the Power BI models that are open and connect to the first one."
  3. Ask: "Run a read-only DAX query that returns revenue by month for this year."

If step 2 answers, everything works.

Things worth asking for

text
Audit this PBIP project and explain the highest-risk issues before changing anything.
text
This measure returns blank for December. Find out why.
text
Create a report page from this specification, validate it, and show me the layout.
text
Document every measure in the model and export it to Excel.

What it provides

AreaCapabilities
Live modelDiscover Desktop sessions, run DAX, inspect metadata, refresh, and manage measures through TOM
Semantic modelRead and edit TMDL tables, columns, measures, relationships, roles and calculation groups
Report authoringCreate pages and visuals, clone templates, arrange layouts, apply themes, bookmarks and interactions
ConversionConvert .pbix to .pbip, migrate supported structures and validate the result
QualityAudit models and reports, document schemas, detect broken references and normalize report structures
DeliveryExport verified PDF, Word, Excel and PowerPoint artifacts; ingest SharePoint data read-only

See the tool catalog for all 139 tools and their risk classifications.

Why it is safe to point at real work

  • Local-first: Power BI Desktop communication stays on localhost.
  • No telemetry, and the MCP server needs no account.
  • Project writes stay inside the active project directory.
  • Every project write makes a backup and is re-read to confirm it landed.
  • Destructive tools require confirm=true.
  • JSON writes are atomic; invalid JSON is never written over good JSON.
  • Downloaded runtime components are version-pinned and SHA-256 verified.
  • Logs go to stderr or files, so stdout stays a clean JSON-RPC channel.

Full guarantees and failure behavior: security model and recovery guide. Report vulnerabilities privately as described in SECURITY.md.

Requirements

  • Windows 10 or 11.
  • Python 3.10 or newer.
  • Power BI Desktop — only for the live layer (DAX, refresh, capture, render checks).
  • A .pbip project with PBIR enabled, for report-file authoring.
  • Node.js 20+ only for the optional Microsoft PBIR validator.

Claude Code, Codex and Power BI Desktop are external programs; this project does not install them. Without Desktop the .pbip tools still work — the live tools do not.

Known limits

  • Power BI does not expose pages or visuals through its live local endpoint, so those are edited in PBIR files while Desktop is safely closed.
  • mode="both" is disabled for dual live/disk writes: Desktop being open and a PBIP project being safe to edit are mutually exclusive states.
  • The server does not publish to or refresh the Power BI Service.
  • Three PBIR schemas referenced by Power BI are not published by Microsoft; affected writes fail closed instead of guessing.

Documentation

DocumentPurpose
InstallationSetup, repair, offline installation and MCP client registration
TutorialFirst connection through report authoring
Power BI MCP overviewUse cases, boundaries, safety and first workflow
Tool catalogAll tools, grouped by capability and risk
ArchitectureComponents, boundaries and invariants
SecurityThreat model and operational guarantees
ValidationTMDL/PBIR validation layers and known limits
Migration guideBreaking changes from 1.x to 2.0
ContributingDevelopment workflow and pull-request requirements

Development

powershell
git clone https://github.com/HorizunGroup/horizun-pbi-mcp.git
cd horizun-pbi-mcp
python -m pip install -e .
python scripts/fetch_libs.py
python scripts/fetch_pbir_schemas.py
python scripts/doctor.py

Before opening a pull request:

powershell
python -m pytest -q
python scripts/doctor.py
python -m tests.contract_utils

The MCP contract is frozen and checked against tests/golden/tools_v1.json. Real .pbix, .pbip, credentials, DLLs, outputs and backups are never committed. See AGENTS.md for the repository invariants.

Learn to direct it

Horizun Hub teaches, in Spanish, how to direct AI agents in real construction and design work — and how to review what they deliver before you sign it. The course for this MCP is Opera agentes en Power BI: short classes on real construction work, with a verifiable certificate.

New to agents? Level 1 of Opera agentes de IA desde cero is free with an account.

License

Apache License 2.0. See LICENSE and NOTICE.

MCP Registry

This package is the one published under the server name below. The registry reads this line from the README of the PyPI package to confirm that whoever publishes the metadata also owns the package, so it has to live here rather than in .mcp/server.json alone.

mcp-name: io.github.HorizunGroup/horizun-pbi-mcp

Similar modules

Browse Business intelligence