关于 PBIXRay MCP Server
PBIXRay MCP Server 基于 PBIXRay Python 包,让 Claude、GitHub Copilot 等 LLM 客户端通过工具读取 Power BI (.pbix) 文件的模型上下文。适合需要分析 Power BI 模型结构、度量值和数据的用户。
主要功能
- 01加载并分析 PBIX 文件
- 02查看表、关系和模型结构
- 03读取 DAX 度量值与计算列
- 04查看 Power Query (M) 代码与参数
- 05分页读取表内容
适用场景
- 01让 AI 助手解释 Power BI 模型的结构与度量值
- 02审阅报表中的 Power Query 转换逻辑
- 03在 WSL 环境中从 Claude Desktop 分析 .pbix 文件
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
信息!
对这个项目感兴趣的人可能也会对后续项目 tabular-mcp 感兴趣,该项目支持针对本地 PowerBI 模型运行 DAX 查询。 非常感谢大家的支持!
PBIXRay MCP 服务
一个用于 PBIXRay 的 模型上下文协议(MCP)服务。
此 MCP 服务将 PBIXRay 的功能作为工具和资源提供给大模型客户端,以便与 Power BI(.pbix)文件交互。
功能
- 加载和分析 PBIX 文件
- 探索数据模型
- 列出模型中的表
- 获取模型元数据
- 检查模型大小
- 获取模型统计信息
- 获取全面的模型摘要
- 访问查询语言
- 查看 Power Query(M)代码
- 访问 M 参数
- 探索 DAX 计算表
- 查看 DAX 度量值
- 检查 DAX 计算列
- 分析数据结构
- 获取架构信息
- 分析表关系
- 分页访问表内容
工具列表可配置,因此你可以选择向 MCP 客户端提供哪些工具。 如果你不使用某些功能,或不想暴露敏感信息,这会很有用。
工具
| 工具 | 类别 | 描述 |
|---|---|---|
load_pbix_file | 核心 | 加载 Power BI(.pbix)文件以进行分析 |
get_tables | 模型 | 列出模型中的所有表 |
get_metadata | 模型 | 获取 Power BI 配置的元数据 |
get_power_query | 查询 | 显示用于数据转换的所有 M/Power Query 代码 |
get_m_parameters | 查询 | 显示所有 M 参数值 |
get_model_size | 模型 | 获取模型大小(字节) |
get_dax_tables | 查询 | 查看 DAX 计算表 |
get_dax_measures | 查询 | 访问 DAX 度量值,可按表或度量值名称筛选 |
get_dax_columns | 查询 | 访问计算列 DAX 表达式,并使用筛选选项 |
get_schema | 结构 | 获取数据模型架构和列类型的详细信息 |
get_relationships | 结构 | 获取数据模型关系的详细信息 |
get_table_contents | 数据 | 分页检索指定表的内容 |
get_statistics | 模型 | 获取模型统计信息,可选择性筛选 |
get_model_summary | 模型 | 获取当前 Power BI 模型的全面摘要 |
用法
WSL(推荐)
将服务配置添加到客户端配置文件中。例如,对于 Claude Desktop:
{
"mcpServers": {
"pbixray": {
"command": "wsl.exe",
"args": [
"bash",
"-c",
"source ~/dev/pbixray-mcp/venv/bin/activate && python ~/dev/pbixray-mcp/src/pbixray_server.py"
]
}
}
}
WSL 路径转换(Claude 实例的项目指令)
在 Windows 上使用 Claude Desktop 连接 WSL 中的 PBIXRay MCP Server 时,加载 PBIX 文件需要注意路径差异。
Windows 路径(例如 C:\Users\name\file.pbix)无法在 WSL 中直接访问。请在项目指令或类似位置添加以下内容,告知 AI 助手如何转换路径:
"请注意,MCP 服务正在 WSL 中运行。Windows 路径(例如 C:\Users\name\file.pbix)无法在 WSL 中直接访问。引用文件时请改用 WSL 路径:
Windows:C:\Users\name\Downloads\file.pbix"
WSL:/mnt/c/Users/name/Downloads/file.pbix"
命令行选项
该服务支持多个命令行选项:
--disallow [tool_names]:出于安全原因禁用特定工具--max-rows N:设置返回的最大行数(默认值:100)--page-size N:设置分页结果的默认页面大小(默认值:20)
可根据需要在 config json 中添加命令行选项:
{
"mcpServers": {
"pbixray": {
"command": "wsl.exe",
"args": [
"bash",
"-c",
"source ~/dev/pbixray-mcp/venv/bin/activate && python ~/dev/pbixray-mcp/src/pbixray_server.py --max-rows 100 --page-size 50 --disallow get_power_query"
],
"env": {}
}
}
}
查询选项
工具支持用于筛选和分页的其他参数:
按名称筛选
get_dax_measures、get_dax_columns、get_schema 等工具支持按特定名称筛选:
# Get measures from a specific table
get_dax_measures(table_name="Sales")
# Get a specific measure
get_dax_measures(table_name="Sales", measure_name="Total Sales")
大型表格的分页
get_table_contents 工具支持分页,以便高效处理大型表格:
# Get first page of Customer table (default 20 rows per page)
get_table_contents(table_name="Customer")
# Get second page with 50 rows per page
get_table_contents(table_name="Customer", page=2, page_size=50)
开发与测试
你可以安装 PBIXRay MCP Server:
pip install pbixray-mcp-server
开发环境安装
面向参与项目开发的开发者:
-
克隆仓库:
git clone https://github.com/username/pbixray-mcp.git cd pbixray-mcp -
以开发模式安装:
pip install -e . -
如果从源代码安装,请创建虚拟环境并安装依赖项:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install mcp pbixray numpy
使用示例文件进行测试
仓库包含示例文件和测试脚本,可帮助你快速上手:
# Test with sample AdventureWorks Sales.pbix file in demo/ folder
python tests/test_with_sample.py
# Try the interactive demo
python examples/demo.py
# For isolated tests of specific features
python test_pagination.py
python test_metadata_fix.py
这些测试脚本可以帮助你了解如何使用 demo/ 目录中提供的示例 PBIX 文件与服务交互。
开发模式
要在开发过程中测试服务,请使用 MCP Inspector:
# Activate your environment first
source venv/bin/activate
# Run the MCP Inspector
mcp dev src/pbixray_server.py
这会启动一个交互式会话,你可以在其中调用工具并测试响应。
项目结构
pbixray-mcp/
├── README.md - This file
├── INSTALLATION.md - Detailed installation instructions
├── src/ - Source code
│ ├── __init__.py
│ └── pbixray_server.py
├── tests/ - Test scripts
│ ├── __init__.py
│ ├── conftest.py
│ ├── test_server.py
│ └── test_with_sample.py
├── examples/ - Example scripts and configs
│ ├── demo.py
│ └── config/
├── demo/ - Sample PBIX files
│ ├── README.md
│ └── AdventureWorks Sales.pbix
└── docs/ - Additional documentation
└── ROADMAP.md
贡献
非常欢迎大家贡献!
致谢
许可证(Claude 坚持要加上这些)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
