使用说明

项目简介

PBIXRay MCP服务器是一个实现了Model Context Protocol (MCP) 的应用后端,它将 PBIXRay 的功能通过MCP协议暴露给LLM客户端。借助此服务器,LLM可以加载和分析Power BI (.pbix) 文件,访问Power BI数据模型中的各种信息,例如表、度量值、关系、Power Query代码等,从而实现基于Power BI数据的智能分析和应用。

主要功能点

  • Power BI 文件分析: 加载和分析 Power BI (.pbix) 文件。
  • 模型信息提取: 获取 Power BI 数据模型的元数据、表、列、度量值、关系、Power Query 代码、M参数、模型大小、模型统计信息和模型概要等。
  • 数据访问: 检索 Power BI 表中的数据内容,并支持分页浏览。
  • 灵活查询: 支持通过表名、列名、度量值名等条件过滤查询模型信息。
  • 安全控制: 允许禁用特定工具以增强安全性。

安装步骤

  1. 创建虚拟环境 (推荐):
    python -m venv venv
    source venv/bin/activate   # Linux/macOS
    # venv\Scripts\activate  # Windows
  2. 安装依赖:
    pip install mcp pbixray numpy
  3. 运行服务器:
    python src/pbixray_server.py

服务器配置

为了让MCP客户端(如Claude)连接到PBIXRay MCP服务器,您需要在客户端中配置服务器信息。以下是一个典型的JSON配置示例,用于配置名为 "pbixray" 的服务器连接:

{
  "pbixray": {
    "serverName": "PBIXRay",
    "command": "python",
    "args": [
      "src/pbixray_server.py"
    ]
  }
}

参数说明:

  • '"serverName"': 服务器名称,可以自定义,用于在客户端中标识该服务器连接。
  • '"command"': 启动服务器的命令,这里使用 'python' 解释器。
  • '"args"': 传递给启动命令的参数列表, '"src/pbixray_server.py"' 指定服务器脚本的路径。

可选参数:

  • 禁用工具 (Security): 如果您需要禁用某些工具(例如 'get_m_parameters', 'get_power_query')以增强安全性,可以在 'args' 中添加 '--disallow' 参数,例如:
{
  "pbixray": {
    "serverName": "PBIXRay",
    "command": "python",
    "args": [
      "src/pbixray_server.py",
      "--disallow", "get_m_parameters", "get_power_query"
    ]
  }
}
  • 自定义分页和行数限制: 您可以通过 '--max-rows' 和 '--page-size' 参数自定义服务器返回的最大行数和分页大小,例如:
{
  "pbixray": {
    "serverName": "PBIXRay",
    "command": "python",
    "args": [
      "src/pbixray_server.py",
      "--max-rows", "500",
      "--page-size", "50"
    ]
  }
}

注意: 'command' 和 'args' 的具体配置可能需要根据您的MCP客户端和服务器实际部署环境进行调整。 例如,如果您在WSL (Windows Subsystem for Linux) 中运行服务器,并希望从Windows上的MCP客户端(如Claude Desktop)连接,请参考仓库 README.md 文档中 "Using with Windows Subsystem for Linux (WSL)" 部分的配置指南。

基本使用方法

  1. 确保PBIXRay MCP服务器已成功启动并运行。

  2. 在您的MCP客户端中配置并连接到PBIXRay MCP服务器。

  3. 使用自然语言向您的LLM客户端提问,例如:

    • "请加载并分析我的Power BI文件 /path/to/report.pbix"
    • "我的Power BI模型中有哪些表?"
    • "显示我模型中所有的DAX度量值。"
    • "我的Power BI文件中表之间存在哪些关系?"
    • "我的Power BI模型有多大?"
    • "这个模型中使用了哪些Power Query转换?"

    LLM客户端将自动调用相应的MCP工具来检索信息并呈现给您。

信息

分类

商业系统