mcpField
P
Power Bi Mcp Server

Power Bi Mcp Server

本地服务
github.com/michaelmckinleyconsulting数据与分析449 周前更新

关于 Power Bi Mcp Server

面向需要通过 AI 助手操作 Power BI 的用户的 MCP 服务,可管理工作区、报表、数据集和仪表板。它支持 DAX 查询、报表导出及推送数据集,并通过 Microsoft Entra ID OAuth2 进行身份验证。

主要功能

  1. 01列出工作区并管理成员
  2. 02克隆、导出和重新绑定报表
  3. 03执行 DAX 查询并刷新数据集
  4. 04管理数据集刷新计划
  5. 05查看仪表板和图块
  6. 06创建推送数据集并添加数据

适用场景

  1. 01查询销售数据集的区域汇总
  2. 02将季度报表导出为 PDF 或 PPTX
  3. 03刷新数据集并查看刷新历史
  4. 04向分析工作区添加用户

MCP 相关

作为 MCP 服务,向兼容的 AI 助手公开 Power BI 工作区、报表、数据集和仪表板操作。身份验证支持交互式登录和应用凭据方式。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Power BI MCP 服务

一个模型上下文协议(MCP)服务,可让 AI 助手以编程方式与 Power BI 工作区、数据集、报表和仪表板交互。

🚀 功能

  • 工作区管理:列出和管理 Power BI 工作区
  • 报表操作:访问、克隆、导出和重新绑定报表
  • 数据集管理:执行 DAX 查询、刷新数据集、管理计划
  • 仪表板访问:列出仪表板并与之交互
  • 推送数据集:创建和管理包含实时数据的推送数据集
  • 身份验证:使用 Microsoft Entra ID 进行安全的 OAuth2 身份验证

📋 先决条件

  • Node.js(v18 或更高版本)
  • npm 或 yarn
  • Power BI Pro 或 Premium 许可证
  • Microsoft Entra ID 应用注册
  • 兼容 MCP 的 AI 助手(Claude Desktop 等)

🔧 安装

  1. 克隆仓库:
git clone https://github.com/michaelmckinleyconsulting/powerbi-mcp-server.git
cd powerbi-mcp-server
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build

⚙️ 配置

1. Microsoft Entra ID 设置
  1. 在 Azure Portal 中注册应用程序
  2. 为 Power BI Service 配置 API 权限
  3. 记录以下信息:
    • Client ID
    • Tenant ID
    • Client Secret(如果使用仅应用身份验证)
2. 环境变量

在根目录中创建 .env 文件(模板见 .env.example):

PBI_PUBLIC_CLIENT_ID=your_client_id
PBI_TENANT_ID=your_tenant_id  # Optional, defaults to 'common'
PBI_SCOPES=https://analysis.windows.net/powerbi/api/.default  # Optional, or specify custom scopes

注意:此服务使用带 PKCE 的 Authorization Code 流程(无需客户端密钥)。请使用以下重定向 URI 配置 Azure 应用:

  • http://localhost
  • http://127.0.0.1
3. MCP 配置

将以下内容添加到 MCP 客户端配置中:

Claude Desktop
{
  "mcpServers": {
    "powerbi": {
      "command": "node",
      "args": ["path/to/powerbi-mcp-server/dist/index.js"],
      "env": {
        "PBI_PUBLIC_CLIENT_ID": "your_client_id",
        "PBI_TENANT_ID": "your_tenant_id"
      }
    }
  }
}
VS Code MCP Extension
{
  "mcp.servers": {
    "powerbi": {
      "command": "node",
      "args": ["path/to/powerbi-mcp-server/dist/index.js"],
      "transport": "stdio",
      "env": {
        "PBI_PUBLIC_CLIENT_ID": "your_client_id"
      }
    }
  }
}

📖 用法

基本操作

完成配置后,你的 AI 助手可以:

  • 列出工作区:“显示我的所有 Power BI 工作区”
  • 执行 DAX:“运行 DAX 查询,获取各地区的销售额”
  • 导出报表:“将季度报表导出为 PDF”
  • 刷新数据集:“刷新销售数据集”
  • 管理访问权限:“将 [email protected] 添加到 Analytics 工作区”
示例提示词
"List all reports in my Sales workspace"
"Execute this DAX query against the Finance dataset: EVALUATE SUMMARIZE(...)"
"Export the Monthly KPI report to PowerPoint"
"Show me the refresh history for the Customer dataset"
"Create a push dataset for real-time monitoring"

🔐 身份验证

此服务支持两种身份验证方式:

  1. 交互式(推荐):用户通过浏览器登录
  2. 仅应用:使用客户端凭据(需要管理员同意)

首次运行时,服务会提示你通过默认浏览器进行身份验证。

📁 项目结构

powerbi-mcp-server/
├── src/
│   ├── index.ts           # Main server entry point
│   ├── auth/              # Authentication logic
│   ├── handlers/          # Request handlers
│   ├── types/             # TypeScript definitions
│   └── utils/             # Utility functions
├── dist/                  # Compiled JavaScript (git-ignored)
├── package.json
├── tsconfig.json
└── README.md

🛠️ 开发

在开发模式下运行
npm run dev
运行测试
npm test
构建生产版本
npm run build

📊 支持的 Power BI 操作

工作区(组)
  • 列出工作区
  • 获取工作区用户
  • 添加/移除用户
报表
  • 列出报表
  • 获取报表元数据
  • 克隆报表
  • 导出为多种格式(PDF、PPTX、PNG)
  • 重新绑定到其他数据集
数据集
  • 列出数据集
  • 执行 DAX 查询
  • 触发刷新
  • 管理刷新计划
  • 获取刷新历史记录
仪表板
  • 列出仪表板
  • 获取仪表板磁贴
推送数据集
  • 创建推送数据集
  • 向表中添加行
  • 清除表数据

🔧 故障排除

常见问题
  1. 身份验证失败:确保 Azure 应用注册具有正确的 Power BI 权限
  2. 未找到工作区:确认你的帐户有权访问 Power BI 工作区
  3. DAX 查询失败:检查数据集权限和查询语法
  4. 导出超时:大型报表可能需要较长时间;服务会处理异步轮询
调试模式

启用详细日志记录:

DEBUG=powerbi:* node dist/index.js

📄 许可证

本项目根据修改版 MIT 许可证(含 Commons Clause)以源代码可用方式提供,详情请参阅 LICENSE 文件。

非商业用途:个人、教育和公司内部用途均可免费使用。

商业用途:需要单独的商业许可证。商业授权事宜请联系 [[email protected]]。

由于存在商业限制,本项目并非经 OSI 批准的“开源”项目,但社区可将其充分用于非商业目的。

🤝 参与贡献

欢迎贡献!请注意:

  1. 参与贡献即表示您同意,您的贡献将采用相同的许可证授权
  2. 对于重大变更,请先提交 issue 进行讨论
  3. 请确保所有测试均通过,并为新功能添加测试

💬 支持

🙏 致谢


注意:这不是 Microsoft 官方产品。Power BI 是 Microsoft Corporation 的商标。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。