Claude Power BI MCP
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) |
关键发现
官方 Power BI MCP (Preview) 已发布 — 包含 local(建模读写)和 remote(查询分析)两类服务,认证要求视连接目标而定
社区方案存在,但功能有限 — 可读取模型元数据,但均不支持修改 Measure
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 开发中面临:
模型规模大 — 大型 PBIX 文件可能包含数百个 Measure,手动维护成本高
列名变更频繁 — 底层数据源字段重命名后,需要快速定位所有受影响的 Measure
跨 Measure 搜索 — Power BI Desktop 不支持在 DAX 公式中全局搜索关键字,需要借助 Tabular Editor、DAX Studio 等外部工具
批量修改需求 — 当列名变更时,需要逐个手动修改受影响的 Measure,效率低且容易遗漏
AI 模型因素 — 团队以 Claude Code 为日常工具,ChatGPT/Copilot 的官方 Power BI MCP server 无法在 Claude 生态中使用
为什么内部推广
统一工具链 — 团队已使用 Claude Code,无需切换到 ChatGPT/Copilot
一句话部署 — 非技术人员只需把 GitHub 链接发给 Claude,全自动完成
Token 和时间双节省 — 相比逐层解压 PBIX 的手工方式,工具化调用将分析时间从数十分钟缩短至秒级
可复用 — 适用于任何使用 Power BI Desktop 的团队和项目
部署方式
Claude 自动部署(推荐 ✨)
把以下内容发给 Claude Code,Claude 会自动完成全部部署:
请帮我从 GitHub 下载并部署 Claude Power BI MCP: https://github.com/WenfengGu/Claude-PowerBI-MCP
下载 main.zip 并解压到 %USERPROFILE%\Claude-PowerBI-MCP
运行 pip install pythonnet
自动检测 Power BI Desktop 安装路径
生成 .mcp.json 配置文件
安装 Power BI Skill 到 ~/.claude/skills/
运行 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 ← 英文文档