Power BI桌面MCP服务器
模型上下文协议(MCP)服务器,使Claude能够使用Analysis Services通过XMLA端点与Power BI Desktop交互。
概述
此MCP服务器允许Claude:
- 查询Power BI数据模型和元数据
- 执行DAX查询
- 检索表架构、列和关系
- 访问措施和模型信息
- 无需离开Claude界面
特性
- 模型发现:获取有关活动Power BI型号的信息
- 模式探索:浏览表、列及其属性
- DAX执行:直接对Power BI模型运行DAX查询
- 措施:检索所有度量及其表达式
- 关系:查看模型关系及其属性
- 自动检测:自动查找Power BI桌面XMLA端口
先决条件
- Windows操作系统 (Power BI桌面仅适用于Windows)
- Power BI桌面 已安装并在打开报表的情况下运行
- Python 3.8+
- pythonnet 包装。NET互操作性
安装
1.克隆或下载存储库
git clone
cd Claude-Power-BI-Integration2.创建虚拟环境
python -m venv venv3.激活虚拟环境
窗户:
venv\Scripts\activateLinux/Mac:
source venv/bin/activate4.安装依赖项
pip install mcp pythonnet配置
Claude桌面配置
将以下配置添加到您的Claude Desktop配置文件中:
地点: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"powerbi": {
"command": "C:\\Path\\To\\Your\\venv\\Scripts\\python.exe",
"args": [
"C:\\Path\\To\\Your\\powerbi_mcp_server.py"
]
}
}
}配置示例:
{
"mcpServers": {
"powerbi": {
"command": "D:\\Job Preparation\\Personnel Work\\Python - Technology\\VS Code Python Code\\Claude-Power BI-Intergration\\venv\\Scripts\\python.exe",
"args": [
"D:\\Job Preparation\\Personnel Work\\Python - Technology\\VS Code Python Code\\Claude-Power BI-Intergration\\powerbi_mcp_server.py"
]
}
}
}重要提示: 将路径替换为实际的项目路径。使用双反睫毛(\\)或正斜杠(/)JSON格式。
寻找你的道路
- Python可执行文件路径:
where python
# Or if in virtual environment
venv\Scripts\python.exe- 脚本路径:
- 导航到您的项目文件夹 - 将完整路径复制到 powerbi_mcp_server.py
用法
1.启动Power BI桌面
确保Power BI Desktop在打开报告/模型的情况下运行。
2.重新启动克劳德桌面
更新配置后,重新启动Claude Desktop以加载MCP服务器。
3.验证连接
在克劳德,你可以问:
"Can you connect to my Power BI model?"Claude将使用MCP服务器连接和检索模型信息。
可用工具
MCP服务器为Claude提供以下工具:
| 工具 | 说明 |
|---|---|
get_powerbi_models | 获取活动报告中的所有Power BI模型 |
get_model_tables | 列出模型中的所有表 |
get_table_columns | 从特定表中获取列 |
execute_dax_query | 对模型执行DAX查询 |
get_measures | 检索所有度量值(可选按表筛选) |
get_relationships | 获取模型中的所有关系 |
get_report_pages | 获取报告页面(有限-需要COM) |
get_page_visuals | 从页面获取视觉效果(有限-需要COM) |
查询示例
配置后,您可以询问Claude:
- “显示Power BI模型中的所有表”
- “Sales表中有哪些列?”
- 执行此DAX查询:评估TOPN(10,销售额)
- “模型中定义了哪些措施?”
- “显示表之间的关系”
- “使用DAX计算每年的总销售额”
运作原理
- 端口检测:服务器会自动找到Power BI Desktop使用的本地Analysis Services端口
- XMLA连接:通过OleDB使用MSOLAP提供程序进行连接
- DMV查询:使用动态管理视图(DMV)检索元数据
- DAX执行:执行DAX查询并将结果返回给Claude
故障排除
“找不到Power BI桌面分析服务端口”
解决方案:
- 确保Power BI桌面正在运行
- 在Power BI Desktop中打开报告/模型
- XMLA终结点仅在加载模型时处于活动状态
“未安装pythonnet”
解决方案:
pip install pythonnetMCP服务器未在Claude中显示
解决方案:
- 验证JSON配置是否有效(使用JSON验证器)
- 检查路径是否使用双反斜杠或正斜杠
- 完全重新启动克劳德桌面
- 检查克劳德桌面日志:
%APPDATA%\Claude\logs
连接错误
解决方案:
- 确保已安装用于Analysis Services的Microsoft OLE DB提供程序
- 这是Power BI Desktop附带的,但可能需要维修/重新安装
- 尝试以管理员身份运行Claude Desktop
局限性
- 仅限Windows:Power BI桌面和XMLA终结点是特定于Windows的
- 仅限本地:仅连接到本地Power BI Desktop实例
- 报告页面/视觉效果:对报告级对象的访问受限(需要Power BI COM接口)
- 无数据修改:对模型的只读访问
技术细节
建筑
Claude Desktop
↓
MCP Server (Python)
↓
pythonnet → .NET OleDb
↓
MSOLAP Provider
↓
Power BI Desktop (XMLA Endpoint)安全
- 所有连接都是本地的(localhost)
- 使用Windows集成安全(SSPI)
- 无需外部网络访问
- 不需要API密钥或凭据
贡献
欢迎投稿!请随时提交问题或拉取请求。
许可证
\[在此处添加您的许可证\]
资源
支持
对于问题或疑问:
- 检查故障排除部分
- 查看Power BI桌面日志
- 检查克劳德桌面登录
%APPDATA%\Claude\logs - 在GitHub上打开一个问题
______________________________________________________________________
注: 这是一个社区项目,没有得到微软或Anthropic的正式支持。
