](https://mseep.ai/app/jonaolden-pbixray-mcp-server)
信息!
对这个项目感兴趣的人也可能对 这个后续项目, 表格式mcp,它允许对本地PowerBI模型运行DAX查询。 非常感谢您的支持!
PBIXRay MCP服务器
A. 模型上下文协议 PBIXRay的MCP服务器。
此MCP服务器公开了以下功能 PBIXRay 作为LLM客户端与Power BI(.pbix)文件交互的工具和资源。
特性
- \[x\] 加载和分析PBIX文件
- \[x\] 数据模型探索
- \[x\] 在模型中列出表 - \[x\] 正在检索模型元数据 - \[x\] 检查模型尺寸 - \[x\] 获取模型统计信息 - \[x\] 获取全面的模型摘要
- \[x\] 查询语言访问
- \[x\] 查看电源查询(M)代码 - \[x\] 访问M参数 - \[x\] 探索DAX计算表 - \[x\] 查看DAX指标 - \[x\] 检查DAX计算列
- \[x\] 数据结构分析
- \[x\] 正在检索架构信息 - \[x\] 分析表关系 - \[x\] 通过分页访问表内容
工具列表是可配置的,因此您可以选择要向MCP客户端提供哪些工具。 如果您不使用某些功能或不想暴露敏感信息,这很有用。
工具
| 工具 | 类别 | 描述 |
|---|---|---|
load_pbix_file | 核心 | 加载Power BI(.pbix)文件进行分析 |
get_tables | 模型 | 列出模型中的所有表 |
get_metadata | 模型 | 获取Power BI配置的元数据 |
get_power_query | 查询 | 显示用于数据转换的所有M/Power查询代码 |
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上使用WSL中的PBIXRay MCP服务器和Claude Desktop时,加载PBIX文件时需要注意路径差异。 Windows路径(如 C:\Users\name\file.pbix)无法在WSL中直接访问。通过添加以下内容,让您的AI助手知道如何在补丁之间进行转换 “请注意,mcp服务器正在wsl中运行。Windows路径(如C:\\Users\\name\\file.pbix)不能在wsl中直接访问。相反,在引用文件时使用wsl路径: Windows:C:\\用户\\名称\\下载\\文件.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服务器:
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测试脚本将帮助您了解如何使用中提供的示例PBIX文件与服务器交互 demo/ 目录。
开发模式
要在开发过程中测试服务器,请使用MCP检查器:
# 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贡献
欢迎投稿!
