Skip to main content
Glama
WenfengGu

Claude Power BI MCP

by WenfengGu

Claude Power BI MCP + Skill

Claude Power BI MCP + Skill — 让 Claude Code 直接读写 Power BI 数据模型


背景与目的

行业现状:生态概览

截至 2026 年 7 月,Power BI 与 AI 助手的集成主要有以下路径:

方案

类型

连接方式

修改能力

官方 Power BI MCP (Preview)

官方

本地建模 / 云端查询

读写 + 查询

社区 Power BI MCP

社区开源

REST API / 本地 SSAS

仅读取

本方案 (Claude Power BI MCP + Skill)

社区开源

本地 SSAS (ADOMD.NET + TOM)

读写 (TOM)

关键发现

  1. 官方 Power BI MCP (Preview) 已发布 — 包含 local(建模读写)和 remote(查询分析)两类服务,认证要求视连接目标而定

  2. 社区方案存在,但功能有限 — 可读取模型元数据,但均不支持修改 Measure

  3. ChatGPT/Copilot 可通过官方 MCP server 及 Copilot for Power BI 读写模型 — 但这些能力绑定在 ChatGPT/Copilot 生态中,Claude Code 用户无法直接使用

功能比对

能力

官方 MCP

社区 MCP

本 MCP

读取模型

支持

支持

支持

修改 Measure

支持 (TMDL)

不支持

支持 (TOM)

创建/删除 Measure

支持

不支持

支持

创建表/列

支持

不支持

支持

执行 DAX

支持

支持

支持

全文搜索 DAX

未提及

部分支持

全文搜索

审计 Power Query

未提及

不支持

支持

关系管理

支持

不支持

支持

安全角色查看

支持

不支持

支持

事务批处理

支持

不支持

支持

模型拓扑图

支持

不支持

支持

自动发现实例

支持

需配置

零配置

认证要求

视场景而定

Azure AD

无需认证

运行环境

Node.js 20+

Python

Python

部署方式

npx + 配置

手动配置

发给 Claude 一句话

离线可用

视场景而定

混合

实际使用场景

数据团队在日常 Power BI 开发中面临:

  1. 模型规模大 — 大型 PBIX 文件可能包含数百个 Measure,手动维护成本高

  2. 列名变更频繁 — 底层数据源字段重命名后,需要快速定位所有受影响的 Measure

  3. 跨 Measure 搜索 — Power BI Desktop 不支持在 DAX 公式中全局搜索关键字,需要借助 Tabular Editor、DAX Studio 等外部工具

  4. 批量修改需求 — 当列名变更时,需要逐个手动修改受影响的 Measure,效率低且容易遗漏

  5. AI 模型因素 — 团队以 Claude Code 为日常工具,ChatGPT/Copilot 的官方 Power BI MCP server 无法在 Claude 生态中使用

为什么内部推广

  • 统一工具链 — 团队已使用 Claude Code,无需切换到 ChatGPT/Copilot

  • 一句话部署 — 非技术人员只需把 GitHub 链接发给 Claude,全自动完成

  • Token 和时间双节省 — 相比逐层解压 PBIX 的手工方式,工具化调用将分析时间从数十分钟缩短至秒级

  • 可复用 — 适用于任何使用 Power BI Desktop 的团队和项目


Related MCP server: PowerBI Analyst MCP

部署方式

Claude 自动部署(推荐 ✨)

把以下内容发给 Claude Code,Claude 会自动完成全部部署:

请帮我从 GitHub 下载并部署 Claude Power BI MCP: https://github.com/WenfengGu/Claude-PowerBI-MCP

  1. 下载 main.zip 并解压到 %USERPROFILE%\Claude-PowerBI-MCP

  2. 运行 pip install pythonnet

  3. 自动检测 Power BI Desktop 安装路径

  4. 生成 .mcp.json 配置文件

  5. 安装 Power BI Skill 到 ~/.claude/skills/

  6. 运行 test_connection.py 验证

Claude 执行完毕后,打开 PBIX 文件即可使用。

部署后发生了什么?

┌─────────────────────────────────────────────────┐
│  Skill 层: 自动触发                              │
│  触发词 → 自动调用 Power BI 工具                  │
├─────────────────────────────────────────────────┤
│  MCP Server 层: 21 个工具                        │
│  discover · get_measures · search_dax            │
│  replace_in_measure · run_dax · create_measure   │
│  get_power_query · audit_power_query             │
│  batch_operations · get_model_graph              │
├─────────────────────────────────────────────────┤
│  SSAS 层: ADOMD.NET + TOM                       │
│  localhost → Power BI Desktop                   │
└─────────────────────────────────────────────────┘

能做什么?

读懂你的模型

看一眼就能了解整个模型结构:

"帮我看看这个模型有哪些表,多少 Measure"
→ 列出所有表、Measure 数量和 DAX 公式,秒级出结果

找到隐藏的依赖

数百个 Measure 中,哪些引用了某个列?Power BI Desktop 做不到,但 Claude 可以:

"搜索所有 DAX 中引用了某个列的 Measure"
→ 受影响 Measure 逐个列出,高亮匹配行

批量修改,一步到位

列名变了?不用手动改几十个 Measure:

"把所有 Measure 里的字段名 A 替换成字段名 B"
→ 全部 Measure 自动修复

理解业务逻辑,写对 DAX

不是简单地拼 DAX,而是先理解模型已有的业务定义:

"建一个 MTD 新客指标"
→ 先搜索模型里已有的 [NEW CLIENTS] 和 ISFIRSTTRANSACTION 逻辑
→ 确认理解后再创建:TOTALMTD([NEW CLIENTS], 'Calendar'[DATE])
→ 放在 ClaudeTest 文件夹,方便你验证

审计 Power Query,给出优化建议

"审计我的 Power Query"
→ 发现查询折叠缺失、高复杂度步骤等优化机会
→ 给出具体的改进建议和示例代码

执行 DAX,验证数据

"RETAIL 渠道今年销售额是多少?"
→ 即席查询,秒级返回结果

创建和修改,不只是读

"创建一个表,包含 Store 和 Sales 列,再加一个 SUM measure"
→ 创建 Claude Demo 表 + 2 列 + Measure,一气呵成

"把这 3 个 Measure 打包成一个事务操作,失败就全部回滚"
→ batch_operations,原子性保证

业务分析洞察

一句话,自动拉取多个维度的数据,给出结构化分析报告:

"给我一份上个月的销售绩效总结"
→ 月度快照 (MoM/YoY)
→ 渠道分析
→ 品类分析
→ 新客分析
→ YTD 累计
→ 关键结论和洞察

常见问题

Q: 提示 "No Power BI Desktop instances found"

A: 确保 Power BI Desktop 正在运行,且打开了一个 PBIX 文件。

Q: 提示 "pythonnet not found"

A: 重新运行 setup.bat,或手动执行 pip install pythonnet

Q: 我的 Power BI 安装在其他盘

A: 不需要手动配置!test_connection.py 会自动检测并显示路径。

Q: 修改 Measure 后 PBIX 中的星号消失了

A: 这是正常的。修改已直接保存到模型,不需要再手动保存。可以在 Power BI Desktop 中验证数据是否正确。

Q: 能在 Mac 上用吗?

A: 不能。Power BI Desktop 的 SSAS 引擎只在 Windows 上运行。


技术信息

  • 开发 & 测试: Max Gu

  • 联合开发: Claude Code + Max Gu

  • 版本: 1.0.0 (2026-07)

  • 许可: MIT — 公司内部可自由使用和修改

  • 依赖: Python 3.11+, pythonnet, Power BI Desktop

  • 安全: 纯本地连接,数据不经过网络


文件说明

Claude-PowerBI-MCP/
├── setup.bat               ← 双击,一键部署全部
├── test_connection.py      ← 双击,测试连接
├── server.py               ← MCP 主程序(21 个工具)
├── ssas_client.py          ← 底层连接库
├── power_query.py          ← Power Query 读取模块
├── power_query_ssas.py     ← Power Query SSAS 读取
├── deploy.ps1              ← Claude 自动部署脚本
├── requirements.txt        ← Python 依赖
├── .mcp.json.template      ← 配置模板
├── .claude/
│   └── skills/
│       └── powerbi-model.md ← Skill 文件(自动触发)
├── docs/
│   ├── technical-whitepaper.md       ← 技术白皮书
│   ├── why-we-built-our-own-mcp.md   ← 通俗版说明
│   ├── project-proposal-v2.md        ← 立项计划
│   └── copilot-powerbi-mcp-implementation.md ← Copilot 参考
├── tests/                  ← 27 套测试记录
├── .gitignore
├── README.md               ← 中文文档
└── README_EN.md            ← 英文文档
A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/WenfengGu/Claude-PowerBI-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server