
PBIXRay MCP Server

2025.04.13
1
PythonPower BI 分析数据模型探索查询语言访问开发效率数据库
PBIXRay MCP Server 是一个基于 Model Context Protocol (MCP) 的服务,专门用于与 Power BI (.pbix) 文件进行交互。它提供了丰富的功能,包括加载和分析 PBIX 文件、数据模型探索、查询语言访问以及数据结构分析等。该服务适用于需要自动化处理 Power BI 文件的开发者和数据分析师,能够显著提高工作效率。
View on GitHub
Overview
基本能力
产品定位
PBIXRay MCP Server 是一个专门用于与 Power BI (.pbix) 文件交互的 MCP 服务,旨在为 LLM 客户端提供强大的工具和资源,以便于分析和操作 Power BI 文件。
核心功能
- 加载和分析 PBIX 文件:支持加载和解析 Power BI 文件。
- 数据模型探索:
- 列出模型中的表格
- 检索模型元数据
- 检查模型大小
- 获取模型统计信息
- 获取全面的模型摘要
- 查询语言访问:
- 查看 Power Query (M) 代码
- 访问 M 参数
- 探索 DAX 计算表
- 查看 DAX 度量
- 检查 DAX 计算列
- 数据结构分析:
- 检索模式信息
- 分析表格关系
- 通过分页访问表格内容
适用场景
- 自动化处理 Power BI 文件
- 数据模型分析和优化
- 批量提取 Power BI 文件中的元数据和查询代码
- 开发 Power BI 相关工具和插件
工具列表
工具名称 | 类别 | 描述 |
---|---|---|
load_pbix_file |
Core | 加载 Power BI (.pbix) 文件进行分析 |
get_tables |
Model | 列出模型中的所有表格 |
get_metadata |
Model | 获取 Power BI 配置的元数据 |
get_power_query |
Query | 显示用于数据转换的所有 M/Power Query 代码 |
get_m_parameters |
Query | 显示所有 M 参数的值 |
get_model_size |
Model | 获取模型的大小(字节) |
get_dax_tables |
Query | 查看 DAX 计算表 |
get_dax_measures |
Query | 通过表格或度量名称过滤访问 DAX 度量 |
get_dax_columns |
Query | 通过过滤选项访问计算列的 DAX 表达式 |
get_schema |
Structure | 获取数据模型模式和列类型的详细信息 |
get_relationships |
Structure | 获取数据模型关系的详细信息 |
get_table_contents |
Data | 通过分页检索指定表格的内容 |
get_statistics |
Model | 获取模型的统计信息(可选过滤) |
get_model_summary |
Model | 获取当前 Power BI 模型的全面摘要 |
常见问题解答
- 路径问题:在 WSL 中使用时,Windows 路径无法直接访问,需转换为 WSL 路径(如
/mnt/c/Users/name/Downloads/file.pbix
)。 - 工具禁用:可以通过
--disallow
参数禁用特定工具以增强安全性。 - 分页设置:默认分页大小为 20,可通过
--page-size
参数调整。
使用教程
使用依赖
- 确保已安装 Python 和 pip。
- 创建并激活虚拟环境:
bash python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- 安装依赖:
bash pip install mcp pbixray numpy
安装教程
- 通过 pip 安装:
bash pip install pbixray-mcp-server
- 开发模式安装(可选):
bash git clone https://github.com/username/pbixray-mcp.git cd pbixray-mcp pip install -e .
调试方式
- 使用 MCP Inspector 进行交互式测试:
bash source venv/bin/activate mcp dev src/pbixray_server.py
- 运行测试脚本:
bash python tests/test_with_sample.py python examples/demo.py