mcpField
P
pbix-atlas

pbix-atlas

ローカル
github.com/fabienfrfrデータ・分析013 週間前に更新

pbix-atlas について

pbix-atlasは、Power BIの.pbixレポートを解析し、データソースからクエリやモデルのフィールドを経てビジュアルに至る、たどれるリネージグラフを構築します。グラフのエクスポート、HTTP API、MCPアクセス、Pythonパイプライン生成にも対応しています。

主な機能

  1. 01ソースからビジュアルまでのリネージ追跡
  2. 02グラフノードの検索とたどり
  3. 03GraphMLとCSVへのエクスポート
  4. 04Pythonレポートパイプラインの生成
  5. 05REST APIとMCPエンドポイント

活用シーン

  1. 01ビジュアルのフィールドからソースを追跡
  2. 02データソースの下流への影響を調査
  3. 03グラフ分析用にリネージをエクスポート

MCP 対応

`/mcp/`のMCPサーバーから、グラフの検索、たどり、エクスポート、コード生成を利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"fabienfrfr-pbix-atlas": {
"command": "uvx",
"args": [
"pbix-atlas"
],
"env": {
"PBIX_LINEAGE_PORT": "<PBIX_LINEAGE_PORT>",
"PBIX_LINEAGE_HOST": "<PBIX_LINEAGE_HOST>"
}
}
}
}
起動コマンドuvx pbix-atlas
設定が必要な環境変数
PBIX_LINEAGE_PORTPort the server listens on
PBIX_LINEAGE_HOSTHost interface to bind to

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypipbix-atlas1.0.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

🌐 PBIX‑Atlas

PyPI GitHub CI MCP Registry

Power BI の完全なリネージグラフ — ソースからビジュアルのフィールドまで

PbixAtlas は、Power BI の .pbix ファイル向けの汎用リネージグラフです。ソースからビジュアルのフィールドまでを、1 つのたどることのできるグラフにまとめます。

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

インストール

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

クイックスタート

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

エクスポート

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

コード生成 — スタンドアロンの Python パイプライン

レポートの全処理チェーン(ソース → 抽出 → Power Query → セマンティックモデル → Vizro ダッシュボード)を再現する単一の Python ファイルを生成します。M ソースはパターンマッチングではなく、組み込みインタープリターによって実行時に実行されます。未実装の関数は MRuntimeError を発生させます(無言のスタブはありません)。

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 サーバー

uv sync --extra api
uv run pbix-atlas    # http://127.0.0.1:8080
  • REST:POST /graphs、/search、/upstream、/downstream、/tree、/export、/codegen
  • MCP(ストリーミング可能な HTTP):http://127.0.0.1:8080/mcp/
  • 環境変数:PBIX_LINEAGE_HOST、PBIX_LINEAGE_PORT

アーキテクチャ

モジュール役割
models.pyノード/エッジの型と共通データ構造
sources.py物理ソースの検出(設定可能なパターン)
pbix_model.pypbixray から分離するアダプター
m_lexer.py / m_parser.py組み込みの M トークナイザーとパーサー
m_interpreter.pyM ランタイムインタープリターと標準ライブラリ
dax_translate.pyDAX → Python(サポート対象のサブセット)
dax.pyDAX 参照の解析
mquery.pyPower Query の依存関係(テーブルレベル)
layout.py内部の Report/Layout 形式の解析
graph_builder.pyオーケストレーター:networkx.DiGraph を構築
navigation.py上流/下流のたどり、検索、エクスポート
codegen.pyPython パイプラインのコード生成
api/app.pyFastAPI と MCP のマウント(FastMCP)

サンプルファイル

開発

uv sync --extra dev
uv run pytest
uv build

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。