Power BI MCP服务器

Power BI Desktop MCP Server允许Claude(或任何MCP客户端)通过自然语言与运行的Power BI Desktop实例进行交互,实现了模型上下文协议到表格对象模型的桥接,支持检查、优化和编写DAX而无需离开聊天界面。

  • by enelyse
  • Python
  • 本地部署
  • 27 星标
  • 更新于
在 GitHub 查看 enelyse/powerbi-mcp-server

使用说明

Power BI桌面MCP服务器

⚠️ Alpha版本 API和行为可能会发生变化,恕不另行通知。

Power BI Desktop MCP Server允许Claude(或任何MCP客户端)使用自然语言与正在运行的Power BI Desktop实例进行对话。它将模型上下文协议连接到表格对象模型,这样您就可以在不离开聊天室的情况下检查、优化和编写DAX。

安装

逐步设置(Power BI先决条件、.NET库、环境变量)存在于 安装.md.

对于当地发展:

pip install -e .
# or install from the current directory:
pip install .

快速示例

列出当前Power BI模型中的表:

python examples/list_model_info.py --include-columns

对知识库的出口措施:

python examples/export_measures_to_knowledge_base.py --project "Executive Dashboard"

在表达式上运行优化器:

python examples/optimize_dax.py --expr "CALCULATE(SUM(Sales[Amount]), FILTER(ALL(Date), Date[Year] = 2024))"

配置

  • 复制 .env.example 到 .env 并设置 TOM_DLL_PATH 如果未自动检测到Microsoft Analysis Services DLL。可选变量包括 LOG_LEVEL, MCP_KNOWLEDGE_BASE,以及 POWERBI_WORKSPACE_NAME.

  • 将CLI入口点添加到Claude Desktop(或任何MCP主机):

    {
      "mcpServers": {
        "powerbi": {
          "command": "powerbi-mcp-server",
          "args": []
        }
      }
    }
    
  • CLI是一个薄薄的包装 python -m powerbi_mcp.server,因此这两种调用都适用于部署和调试。

特性

  • DAX代码生成和度量值创建
  • 度量和表元数据检查
  • DAX优化器,提供基于规则的建议
  • TMDL导入/导出助手
  • 用于存储策划措施的知识库桥梁
  • 快速自动化的示例脚本(examples/ 目录)

已知问题

  • Power BI视觉效果位于XMLA端点之外,因此不支持视觉创建/编辑。
  • 服务器连接到最近打开的Power BI Desktop工作区;多个实例尚未被复用。
  • 写操作需要Power BI模型允许外部工具,在某些情况下还需要提升权限。
  • pythonnet 依赖于本地Microsoft Analysis Services DLL;配置错误 TOM_DLL_PATH 是最常见的设置失败。

贡献

欢迎拉取请求。拜托:

  1. 如果更改改变了行为或API,则打开一个描述更改的问题。
  2. 保持添加内容的格式 ruff/black 样式约定(如果已配置)并包括类型提示。
  3. 添加或更新示例脚本/测试,以帮助说明新功能。
  4. 在提交之前运行示例脚本或手动烟雾测试。

在存储库的GitHub Issues页面上跟踪问题和功能请求。