Pbix Atlas logo

Pbix Atlas

Bidirectional data lineage graph for Power BI (.pbix) files, from source to display

Install Pbix Atlas

Pick your client, then add it in one click or paste the config.

No confirmed install command yet

We only publish a config when the install details come from the project itself — its README, its docs, or a verified owner. We haven’t found those for pbix-atlas, and we’d rather show nothing than a guess you’d paste into your client.

Open setup steps on GitHub

Overview

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

5/5 checks healthy over the last 42d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 16d ago via OSV.dev

From the project README

🌐 PBIX‑Atlas

PyPI GitHub CI MCP Registry

Full lineage graph for Power BI — from source to visual field

PbixAtlas is an Universal lineage graph for Power BI .pbix files: source to visual field in one traversable graph.

Code
source (HTTP, OData, SQL, file...) --> Power Query (M)
    --> column / calculated column --> measure (DAX)
        --> field displayed in a report visual

Install

Terminal
pip install pbix-atlas
# or
uv add pbix-atlas

Quick start

server.ts
from pbix_atlas import LineageGraphBuilder, upstream, downstream, print_tree, find_nodes

graph = LineageGraphBuilder().build("my_report.pbix")

find_nodes(graph, "customer_name")
print_tree(graph, "visual_field::my_report.pbix::Page1::16::customer_name", direction="upstream")
print_tree(graph, "source::odata::example.com/odata/", direction="downstream")

Export

server.ts
from pbix_atlas import export_graphml, export_nodes_csv, export_edges_csv, graph_summary

graph_summary(graph)  # {'query': 70, 'column': 183, ...}
export_graphml(graph, "lineage.graphml")  # Gephi / yEd
export_nodes_csv(graph, "nodes.csv")
export_edges_csv(graph, "edges.csv")

Codegen — standalone Python pipeline

Generates a single Python file reproducing a report's full chain: source → extraction → Power Query → semantic model → Vizro dashboard. The M source is executed at runtime by the built-in interpreter, not pattern-matched. Unimplemented functions raise MRuntimeError (no silent stubs).

Terminal
pip install "pbix-atlas[codegen]"
pbix-atlas-codegen my_report.pbix -o pipeline.py
server.ts
from pbix_atlas import generate_python_pipeline

generate_python_pipeline("my_report.pbix", "pipeline.py")

HTTP API / MCP server

bash
uv sync --extra api
uv run pbix-atlas    # http://127.0.0.1:8080
  • REST: POST /graphs, /search, /upstream, /downstream, /tree, /export, /codegen
  • MCP (streamable HTTP): http://127.0.0.1:8080/mcp/
  • Env vars: PBIX_LINEAGE_HOST, PBIX_LINEAGE_PORT

Architecture

ModuleResponsibility
models.pyNode/edge types and shared data structures
sources.pyPhysical source detection (configurable patterns)
pbix_model.pyAdapter isolating from pbixray
m_lexer.py / m_parser.pyBuilt-in M tokenizer and parser
m_interpreter.pyM runtime interpreter + stdlib
dax_translate.pyDAX → Python (supported subset)
dax.pyDAX reference parsing
mquery.pyPower Query dependencies (table-level)
layout.pyInternal Report/Layout format parsing
graph_builder.pyOrchestrator: builds the networkx.DiGraph
navigation.pyUpstream/downstream traversal, search, export
codegen.pyPython pipeline code generation
api/app.pyFastAPI + MCP mount (FastMCP)

Sample files

Development

bash
uv sync --extra dev
uv run pytest
uv build

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Pbix Atlas

pbix-atlas is an MCP server that builds a bidirectional lineage graph for Power BI .pbix files, tracing dependencies from physical sources through Power Query, columns, calculated columns, and DAX measures to fields displayed in report visuals. It supports traversing upstream or downstream, searching nodes, exporting graph data, and exposing these capabilities through MCP and REST APIs.

Install pbix-atlas with pip install pbix-atlas or uv add pbix-atlas.

Run uv sync --extra api followed by uv run pbix-atlas; the server starts at http://127.0.0.1:8080, with MCP available at http://127.0.0.1:8080/mcp/. Configure the host and port with PBIX_LINEAGE_HOST and PBIX_LINEAGE_PORT.

Build a graph from a .pbix file with LineageGraphBuilder().build(), then use find_nodes, upstream, downstream, or print_tree to search and traverse lineage. The server also provides REST endpoints for graphs, search, upstream, downstream, tree, export, and codegen.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewPbix Atlas AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/pbix-atlas?style=directory)](https://allmcps.com/mcp/pbix-atlas)
HTML Embed
<a href="https://allmcps.com/mcp/pbix-atlas"><img src="https://allmcps.com/api/badge/pbix-atlas?style=directory" alt="Pbix Atlas on AllMCPs" /></a>