pbixray-mcp-server

pbixray-mcp-server

一个模型上下文协议,使 AI 客户端能够通过 PBIXRay Python 包查询元数据,从而与 PowerBI 模型进行交互。

Category
访问服务器

README

PBIXRay MCP 服务器

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

此 MCP 服务器将 PBIXRay 的功能公开为工具和资源,供 LLM 客户端与 Power BI (.pbix) 文件交互。

功能

  • [x] 加载和分析 PBIX 文件
  • [x] 数据模型探索
    • [x] 列出模型中的表
    • [x] 检索模型元数据
    • [x] 检查模型大小
    • [x] 获取模型统计信息
    • [x] 获取全面的模型摘要
  • [x] 查询语言访问
    • [x] 查看 Power Query (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 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 Project 实例说明)

在 Windows 上的 Claude Desktop 中使用 WSL 中的 PBIXRay MCP 服务器时,您需要注意加载 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_measuresget_dax_columnsget_schema 等工具支持按特定名称进行筛选:

# 获取特定表中的度量值
get_dax_measures(table_name="Sales")

# 获取特定度量值
get_dax_measures(table_name="Sales", measure_name="Total Sales")

大型表的分页

get_table_contents 工具支持分页以有效地处理大型表:

# 获取 Customer 表的第一页(每页默认 20 行)
get_table_contents(table_name="Customer")

# 获取第二页,每页 50 行
get_table_contents(table_name="Customer", page=2, page_size=50)

开发和测试

您可以安装 PBIXRay MCP 服务器:

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
    

使用示例文件进行测试

该存储库包含示例文件和测试脚本,可帮助您入门:

# 使用 demo/ 文件夹中的示例 AdventureWorks Sales.pbix 文件进行测试
python tests/test_with_sample.py

# 尝试交互式演示
python examples/demo.py

# 用于隔离测试特定功能
python test_pagination.py
python test_metadata_fix.py

测试脚本将帮助您了解如何使用 demo/ 目录中提供的示例 PBIX 文件与服务器进行交互。

开发模式

要在开发期间测试服务器,请使用 MCP Inspector:

# 首先激活您的环境
source venv/bin/activate

# 运行 MCP Inspector
mcp dev src/pbixray_server.py

这将启动一个交互式会话,您可以在其中调用工具并测试响应。

项目结构

pbixray-mcp/
├── README.md            - 此文件
├── INSTALLATION.md      - 详细的安装说明
├── src/                 - 源代码
│   ├── __init__.py
│   └── pbixray_server.py
├── tests/               - 测试脚本
│   ├── __init__.py
│   ├── conftest.py
│   ├── test_server.py
│   └── test_with_sample.py
├── examples/            - 示例脚本和配置
│   ├── demo.py
│   └── config/
├── demo/                - 示例 PBIX 文件
│   ├── README.md
│   └── AdventureWorks Sales.pbix
└── docs/                - 附加文档
    └── ROADMAP.md

贡献

非常欢迎贡献!

鸣谢

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

许可证(claude 坚持添加这些)

MIT 许可证

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选