这是一个模型上下文协议(MCP)服务器,使AI助手能够与Power BI工作区、数据集、报告和仪表板进行程序化交互。
git clone https://github.com/michaelmckinleyconsulting/powerbi-mcp-server.git
cd powerbi-mcp-server
npm install
npm run build
在根目录下创建一个.env文件(参考.env.example模板):
PBI_PUBLIC_CLIENT_ID=your_client_id
PBI_TENANT_ID=your_tenant_id # 可选,默认为'common'
PBI_SCOPES=https://analysis.windows.net/powerbi/api/.default # 可选,或指定自定义范围
注意:此服务器使用带有PKCE的授权码流(不需要客户端密钥)。配置您的Azure应用以包含重定向URI:
http://localhosthttp://127.0.0.1添加到您的MCP客户端配置中:
{
"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"
}
}
}
}
{
"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助手可以:
"列出我的Sales工作区中的所有报告"
"对Finance数据集执行这个DAX查询:EVALUATE SUMMARIZE(...)"
"将月度KPI报告导出为PowerPoint"
"显示Customer数据集的刷新历史"
"创建用于实时监控的推送数据集"
服务器支持两种认证方式:
首次运行时,服务器会通过默认浏览器提示进行认证。
powerbi-mcp-server/
├── src/
│ ├── index.ts # 主服务器入口点
│ ├── auth/ # 认证逻辑
│ ├── handlers/ # 请求处理器
│ ├── types/ # TypeScript定义
│ └── utils/ # 工具函数
├── dist/ # 编译后的JavaScript(被git忽略)
├── package.json
├── tsconfig.json
└── README.md
npm run dev
npm test
npm run build
启用详细日志记录:
DEBUG=powerbi:* node dist/index.js
该项目在修改后的MIT许可下是源代码可用的,附带Commons条款——详情请参阅LICENSE文件。
非商业用途:免费用于个人、教育和公司内部用途。
商业用途:需要单独的商业许可。请联系[michael@mckinley.consulting]获取商业许可。
这并非OSI批准的“开源”产品,但由于商业限制,但允许社区在非商业用途上全面使用。
我们欢迎贡献!请注意:
注:这不是微软官方产品。Power BI是微软公司的商标。