mcpField
P
PBIXRay MCP Server

PBIXRay MCP Server

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

关于 PBIXRay MCP Server

PBIXRay MCP Server 基于 PBIXRay Python 包,让 Claude、GitHub Copilot 等 LLM 客户端通过工具读取 Power BI (.pbix) 文件的模型上下文。适合需要分析 Power BI 模型结构、度量值和数据的用户。

主要功能

  1. 01加载并分析 PBIX 文件
  2. 02查看表、关系和模型结构
  3. 03读取 DAX 度量值与计算列
  4. 04查看 Power Query (M) 代码与参数
  5. 05分页读取表内容

适用场景

  1. 01让 AI 助手解释 Power BI 模型的结构与度量值
  2. 02审阅报表中的 Power Query 转换逻辑
  3. 03在 WSL 环境中从 Claude Desktop 分析 .pbix 文件

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

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

详细介绍

MseeP.ai 安全评估徽章

信息!

对这个项目感兴趣的人可能也会对后续项目 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
开发环境安装

面向参与项目开发的开发者:

  1. 克隆仓库:

    git clone https://github.com/username/pbixray-mcp.git
    cd pbixray-mcp
    
  2. 以开发模式安装:

    pip install -e .
    
  3. 如果从源代码安装,请创建虚拟环境并安装依赖项:

    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

贡献

非常欢迎大家贡献!

致谢

  • Hugoberry - PBIXRay 原始库
  • rusiaaman - WCGW(此 MCP 完全由 Claude 使用 wcgw 编写)

许可证(Claude 坚持要加上这些)

MIT 许可证

评论

支持 Markdown

第一次接触 MCP?

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

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