关于 pbix-atlas
pbix-atlas 为 Power BI .pbix 报表构建可遍历的血缘图,追踪数据从来源经查询和模型字段到报表视觉对象的路径。它还支持图形导出、HTTP API、MCP 访问和 Python 流水线生成。
主要功能
- 01追踪从来源到视觉对象的血缘
- 02搜索并遍历图节点
- 03导出 GraphML 和 CSV
- 04生成 Python 报表流水线
- 05提供 REST API 和 MCP 端点
适用场景
- 01追溯视觉字段的数据来源
- 02探索数据源的下游影响
- 03导出血缘图用于图分析
MCP 相关
通过 `/mcp/` 提供 MCP 服务,支持图搜索、遍历、导出和代码生成。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🌐 PBIX‑Atlas
Power BI 的完整溯源图谱——从数据源到可视化字段
PbixAtlas 是一个适用于 Power BI .pbix 文件的通用溯源图谱:在一张可遍历的图谱中呈现从数据源到可视化字段的完整链路。
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 工作流
生成一个 Python 文件,复现报表的完整链路:数据源 → 提取 → Power Query → 语义模型 → Vizro 仪表板。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.py | 用于隔离 pbixray 的适配器 |
m_lexer.py / m_parser.py | 内置 M 分词器和解析器 |
m_interpreter.py | M 运行时解释器 + 标准库 |
dax_translate.py | DAX → Python(支持的子集) |
dax.py | DAX 引用解析 |
mquery.py | Power Query 依赖关系(表级) |
layout.py | 内部 Report/Layout 格式解析 |
graph_builder.py | 协调器:构建 networkx.DiGraph |
navigation.py | 上游/下游遍历、搜索、导出 |
codegen.py | Python 工作流代码生成 |
api/app.py | FastAPI + MCP 挂载(FastMCP) |
示例文件
- Retail Analysis Sample PBIX(Microsoft)
- Sales & Returns Sample v201912(Microsoft)
开发
uv sync --extra dev
uv run pytest
uv build
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。