mcpField
P
pbix-lineage

pbix-lineage

本地服务
github.com/fabienfrfr数据与分析013 周前更新

关于 pbix-lineage

pbix-lineage 为 Power BI .pbix 报表构建可遍历的血缘图,追踪数据从来源经查询和模型字段到报表视觉对象的路径。它还支持图形导出、HTTP API、MCP 访问和 Python 流水线生成。

主要功能

  1. 01追踪从来源到视觉对象的血缘
  2. 02搜索并遍历图节点
  3. 03导出 GraphML 和 CSV
  4. 04生成 Python 报表流水线
  5. 05提供 REST API 和 MCP 端点

适用场景

  1. 01追溯视觉字段的数据来源
  2. 02探索数据源的下游影响
  3. 03导出血缘图用于图分析

MCP 相关

通过 `/mcp/` 提供 MCP 服务,支持图搜索、遍历、导出和代码生成。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"fabienfrfr-pbix-lineage": {
"command": "uvx",
"args": [
"pbix-lineage"
],
"env": {
"PBIX_LINEAGE_PORT": "<PBIX_LINEAGE_PORT>",
"PBIX_LINEAGE_HOST": "<PBIX_LINEAGE_HOST>"
}
}
}
}
启动命令uvx pbix-lineage
需要配置的环境变量
PBIX_LINEAGE_PORTPort the server listens on
PBIX_LINEAGE_HOSTHost interface to bind to

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypipbix-lineage0.1.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

🌐 PBIX‑Atlas

PyPI GitHub CI MCP Registry

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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。