P

PBIXRay服务

@jonaolden/pbixray-mcp-server
0 Stars 361 次浏览 jonaolden 更新于 2026-08-23

一种模型上下文协议,允许AI客户端通过PBIXRay Python包查询元数据来与PowerBI模型进行交互。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "pbixray": {
      "args": [
        "bash",
        "-c",
        "source ~/dev/pbixray-mcp/venv/bin/activate \u0026\u0026 python ~/dev/pbixray-mcp/src/pbixray_server.py --max-rows 100 --page-size 50 --disallow get_power_query"
      ],
      "command": "wsl.exe",
      "env": {}
    }
  }
}

该服务需要配置环境变量:DISALLOW、MAX_ROWS、PAGE_SIZE

服务介绍

PBIXRay MCP 服务器

一个用于 PBIXRay 的 模型上下文协议 (MCP) 服务器。

此 MCP 服务器将 PBIXRay 的功能作为工具和资源暴露给 LLM 客户端,以便与 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)

可以根据需要在配置 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  # 在 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 License

相关 MCP 服务