PowerBI-PBI-MCP(注:这里的“MCP”可能代表某种特定的认证或项目,但根据上下文无法确定具体含义,因此直接保留原样翻译)
*由帕尔韦兹·阿拉姆(ParvezAlam-AI)*
______________________________________________________________________
PowerBI MCP Python 代码库分析 一个MCP服务器,它向大型语言模型(LLM)客户端(例如,Claude桌面版)暴露PBIX分析工具。它加载并检查Power BI文件(.pbix/.pbip)并提供了一套分析工具,用于模型/表格/DAX/Power Query的检查。
______________________________________________________________________
概述
这个存储库包含一个基于Python的MCP(模型上下文协议)服务器,该服务器集成了 PBIXRay(可译为“PBIX射线”或根据具体语境译为更贴切的名称,但直接翻译时保持原样) 用于深入分析Power BI文件,并提供了一套工具用于程序化检查和抽样。MCP(Microsoft Cognitive Protocol,微软认知协议)是一种用于安全地向基于大型语言模型(LLM)的客户端暴露应用程序功能和数据的协议。(\[PyPI\]\[1\])
______________________________________________________________________
关键部件
powerbi_server.py— 主MCP服务器实现及工具注册。pbimcp/—(本地)Python 虚拟环境目录(在代码仓库中应忽略此目录)。.gitignore— 排除虚拟环境、缓存和其他本地工件(例如。,pbimcp/,__pycache__/,*.pyc)。- 可选:示例脚本、测试用例和README文件。
你可以找到一个PBIXRay MCP服务器项目的示例作为参考。(\[GitHub\]\[2\])
______________________________________________________________________
核心功能
- 加载并验证Power BI文件
.pbix,.pbip)。 (\[PyPI\]\[1\]) - 提取数据模型内容:表、列、度量值(DAX)、关系。
- 检查并返回Power Query (M) 代码和参数。
- 提供模型元数据和统计信息(行数、表大小)。
- 为表返回可配置数量的示例行,并进行安全清理。
- 基于路径的访问控制、文件大小限制以及临时文件清理以确保安全。
______________________________________________________________________
工具曝光(概要)
load_powerbi_file— 验证并加载PowerBI文件。get_file_info— 基本文件元数据(大小、修改日期、类型)。get_data_model— 完整模型分析(表格、度量、关系)。get_table_info— 表结构和示例行(含分页/限制)。get_power_query_info— M代码、参数列表及相关元数据。get_model_metadata— 统计数据和聚合元数据。get_config— 返回服务器配置和限制。
______________________________________________________________________
依赖项
最小/典型依赖项:
mcp(模型上下文协议服务器库)(\[OpenAI GitHub Pages\]\[3\])pbixray— Power BI 文件解析/分析库。可从 PyPI 安装。(\[PyPI\]\[1\])- 常用的Python库:
pandas,pathlib,tempfile等。
______________________________________________________________________
快速入门(本地开发)
注: 替换 pbimcp 如果不同,请在下方填写您实际的venv文件夹名称。- 创建并激活虚拟环境(Windows 示例):
# from your project root
python -m venv pbimcp
# PowerShell
.\pbimcp\Scripts\Activate.ps1
# or cmd
.\pbimcp\Scripts\activate.bat- 安装所需的软件包:
pip install --upgrade pip
pip install mcp pbixray pandas
# or if you have requirements.txt
pip install -r requirements.txt- 确保
.gitignore包括:
pbimcp/
__pycache__/
*.pyc
.env- 运行服务器(示例):
python powerbi_server.py这将在配置的主机/端口上启动MCP服务器,并注册上述工具。
______________________________________________________________________
配置与安全
- 允许的路径服务器执行基于路径的检查(默认情况下,您可以将其限制为下载文件夹或安全的工作区)。
- 文件大小限制默认最大文件大小为 500兆字节 (在配置中进行微调)。
- 样本行限制默认每个表样本1000行(可配置)。
- 临时文件清理服务器在处理完毕后会删除临时提取的文件,以避免数据泄露。
- 认证/网络在安全的环境中运行,并且仅对受信任的客户端开放;在与大型语言模型(LLM)客户端集成时,确保安全地处理令牌/凭据。
______________________________________________________________________
使用示例
加载文件并获取基本信息(伪CLI/HTTP示例):
# using the MCP client library (pseudocode)
from mcp import MCPClient
client = MCPClient.connect("http://localhost:PORT")
file_ref = client.call("load_powerbi_file", {"path": "C:/Users/you/Downloads/report.pbix"})
info = client.call("get_file_info", {"file_ref": file_ref})
model = client.call("get_data_model", {"file_ref": file_ref, "sample_rows": 100})______________________________________________________________________
开发说明
- 保持
pbimcp/脱离源代码控制——虚拟环境中包含特定于机器的二进制文件。 - 为每种工具添加测试,以验证预期的结构和边缘情况(大文件、损坏的pbix文件、不支持的版本)。
- 遵循README的最佳实践:简短介绍、安装+快速入门、使用示例、配置/安全注意事项,以及作者/联系方式。(\[Hatica\]\[5\])
______________________________________________________________________
贡献;做出贡献
欢迎贡献——请提出问题或提交拉取请求。
- 克隆 → 创建特性分支 → 运行测试 → 提交拉取请求(Pull Request)。
- 添加清晰的描述和测试向量(示例PBIX文件或模拟数据)。
______________________________________________________________________
许可证
______________________________________________________________________
联系方式 / 作者
帕尔韦兹·阿拉姆(ParvezAlam-AI)
