io.github.fabienfrfr/pbix-lineage

Registre officiel Autres

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

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

PYPI package pbix-lineage
Claude Code
claude mcp add pbix-lineage -e 'PBIX_LINEAGE_PORT=8080' -e 'PBIX_LINEAGE_HOST=127.0.0.1' -- uvx pbix-lineage==0.1.2
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "pbix-lineage": {
            "command": "uvx",
            "args": [
                "pbix-lineage==0.1.2"
            ],
            "env": {
                "PBIX_LINEAGE_PORT": "8080",
                "PBIX_LINEAGE_HOST": "127.0.0.1"
            }
        }
    }
}

Variables d'environnement

  • PBIX_LINEAGE_PORT Port the server listens on
  • PBIX_LINEAGE_HOST Host interface to bind to

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. 🌐 PBIX‑Atlas
  2. Install
  3. Quick start
  4. Export
  5. Codegen — standalone Python pipeline
  6. HTTP API / MCP server
  7. Architecture
  8. Sample files
  9. Development

🌐 PBIX‑Atlas

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.

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

Install

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

Quick start

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

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).

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

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

HTTP API / MCP server

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

uv sync --extra dev
uv run pytest
uv build

Questions fréquentes

Qu'est-ce que io.github.fabienfrfr/pbix-lineage ?

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

Comment installer io.github.fabienfrfr/pbix-lineage ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add pbix-lineage -e 'PBIX_LINEAGE_PORT=8080' -e 'PBIX_LINEAGE_HOST=127.0.0.1' -- uvx pbix-lineage==0.1.2. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour io.github.fabienfrfr/pbix-lineage ?

Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.

io.github.fabienfrfr/pbix-lineage est-il open source ?

Son code est public sur GitHub, mais le dépôt ne déclare pas de licence standard.

Qui maintient io.github.fabienfrfr/pbix-lineage ?

Il est publié par fabienfrfr. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.