Power BI 建模是很多人的噩梦。你写 DAX、配关系、管行级安全,辛辛苦苦搭完一个模型,过两个月自己都看不懂。命名用的是 CUST_NM 这种缩写,几百个度量值没有一句描述,关系乱成一团。想规范一下,翻官方文档像翻字典,效率低到想放弃。
所以看到 Smithery 上挂着一个叫 powerbi-modeling 的技能,第一眼你会以为它是个”能自己帮你建模的 AI”。我一开始也是这么理解的,名字都叫建模助手了,不就是让模型自己长出来吗。

但读它的 SKILL.md 之后,这个预设当场碎了。它自己一行模型代码都不碰,也不直接连你的 Power BI。它是一整套”怎么用好 Power BI Modeling MCP Server”的操作规范,相当于把微软官方那份工具说明书,按最佳实践重新讲了一遍。
模型这东西最骗人的是,它看起来只是拖几张表、写几个度量,实际上好坏直接决定了报表跑得快不快、算得对不对。而这些最佳实践零散地躺在微软文档和社区帖子里,从来没人替你整合过。这个技能干的就是整合这件事。
说白了,这篇文章想讲清楚一件事。这个技能本身不是引擎,它是一份优秀的驾驶员手册。真正在引擎盖上拧螺丝的,是微软官方那台 powerbi-modeling-mcp 服务器。装不装这个技能,差别在于你能不能把那台机器用明白。
使用场景
设想一个最常见的坑。你接手了同事留下的销售模型,两百多列,字段名全是缩写,关系有单向有双向,没有任何描述,几个关键度量值还是硬编码。老板让你”顺手规范一下,顺带加上区域权限”。你打开 Power BI,对着这团乱麻发呆。
传统做法是什么?基本是四件苦差事堆在一起:
-
翻微软文档,找正确的配置入口 -
在界面里一个点一个点地手点 -
手写 DAX,错了还难调试 -
手动配 RLS 角色,稍不留神就漏人
改完还得担心会不会把报表弄崩。一个中等规模的模型,光是补齐描述和统一命名,就能耗掉你大半天,而且极易漏掉隐藏的技术列。
现在换一种走法。你先把这个技能挂上,再让微软的 MCP Server 连上你的模型。然后你只用说一句自然语言:把 Sales 表所有列补上业务描述,把关系统一改成从维度到事实的单向。剩下的脏活交给它。
技能不会上来就乱改。它会先盘点模型,列出所有的表、关系、度量值,再拿微软的最佳实践规则逐条比对,最后才调用 MCP 工具去批量修改。你看到的是一段对话,背后是几十次规范的 API 调用。

当然也要泼盆冷水。它再聪明也依赖那个 MCP Server 必须跑着,依赖你的模型能被连接。业务口径怎么定、哪些列该隐藏、度量值该怎么命名,它给的是模板,不是答案。这些判断最终还是落在人和技能里的规则上。
把两种路径摆在一起看,差距主要在速度和一致性上,不是在对错上:

技术架构与设计决策
理解这个技能,最好的办法是把它拆成四层来看。最上面是用户的自然语言指令,往下是技能本身的知识层,再往下是真正干活的 MCP 执行层,最底层才是 Power BI 的模型目标。四层各管一摊,边界清清楚楚。

第一个设计决策很关键。技能把自己定位成”只读知识加指令”,它不执行任何修改模型的操作。懂最佳实践和能改模型这两件事被刻意解耦,技能只负责前者,后者全部甩给 MCP Server。这个分工让它很轻,也很好替换。
第二个决策是押注 MCP 这个标准协议。因为通信走的是模型上下文协议,技能本身不绑定任何客户端。你用 Claude Code、Cursor 还是 VS Code Copilot 都行,只要底下接的是同一个 MCP Server,技能的指令照样生效。可替换性被它拿到了。
第三个决策是可选挂一个 Microsoft Learn MCP。遇到没见过的新 DAX 函数或者复杂的建模场景,agent 能直接去查微软官方文档,而不是凭记忆瞎编。这个设计细节不多见,但恰恰决定了输出靠不靠谱。
说句公道话,这个技能最聪明的地方就是没有重复造轮子。它没想去写一个自己的建模引擎,而是直接站在微软官方服务器的肩膀上,把自己做成那台引擎的”最佳用法合集”。这种克制在 AI 工具里反而稀有。
这种克制还带来一个附带好处。知识层和引擎层分开之后,微软那边升级服务器、加新工具,技能只要同步更新指令就行,不用重写整条链路。你在这套工具上的投资,不会因为底层一变就作废。
不过也有值得商榷的地方。它本质上是个 wrapper,价值高度绑定微软那边的更新节奏。微软服务器还是 Public Preview,工具集随时可能变,技能如果跟不上,指导意义就会打折扣。这一点后面还要说。
实际干活的调用长什么样?技能最终会翻译成这样一组 MCP 操作,一次”加度量加描述”就是标准的两段式:
measure_operations(
operation: "Create",
definitions: [{
name: "Total Sales",
tableName: "Sales",
expression: "SUM(Sales[Amount])",
formatString: "$#,##0",
description: "Sum of all sales amounts"
}]
)
column_operations(
operation: "Update",
definitions: [{
tableName: "Customer",
name: "CustomerKey",
description: "Unique identifier for customer dimension",
isHidden: true
}]
)
洞察与反思
这个技能其实暴露了一个 2026 年越来越明显的趋势。所谓的”技能”正在退化成领域知识包,真正干活的永远是后端的工具或者 MCP。用户以为自己装了个建模 AI,实际上装的是一份写得很好的操作手册。
它的价值被高估的那部分,是”建模智能”。很多人以为挂上它,模型设计就自动变好。事实是,star schema 该怎么切、度量值的业务口径怎么定、RLS 该怎么划分,这些判断权还在人手里。技能只是把这些判断的执行成本压低了。
但有个隐藏亮点,绝大部分人第一次用会忽略。微软那个 MCP Server 支持 Elicitation 协议,第一次改模型、第一次跑查询之前,会强制让你确认。这是个很克制的安全设计,意味着 agent 不会一声不响地动你的生产模型。
暗坑也得说。这个技能的页面没披露作者和版本号,底层服务器明确标着 Public Preview。工具集可能显著变动,依赖链本身就有风险。如果你指望它长期稳定,得自己盯紧微软那边的发布节奏。
谁最该用这个技能?是那些手里攥着十几个遗留模型、每人改一点就没人说得清全貌的团队。对个人偶发的小修小补,它的杠杆感没那么强,配置 MCP 的功夫可能比改几下模型还贵。
我注意到一个普遍的误判。不少人以为装个技能就自动建模了。错。你必须先把微软的 MCP Server 配好、跑起来、连上模型,这个技能才有意义。它是锦上添花,不是无米之炊。顺序反了就是白装。
把几个要害维度拉出来比一比,传统手工和 Skill 加 MCP 的差距其实很具体:
| 维度 | 传统手工建模 | Skill + 微软 MCP |
|---|---|---|
| 连接模型 | 界面手动点选 | 一句话连 Desktop/Fabric/PBIP |
| Schema 设计 | 凭经验,易冗余 | 对照 star schema 规则评估 |
| DAX 编写 | 手写易错难调试 | 生成加校验加基准测试 |
| 文档描述 | 几乎不写 | 批量补描述、隐藏技术列 |
| 性能优化 | 靠撞运气 | DAX 查询指标分析定位瓶颈 |
| 最佳实践中枢 | 散落各博客 | 技能内置加 Learn MCP 检索 |
它的适用边界很清晰。手头已有模型、需要补文档的团队,它最趁手。要从零设计数据架构、定业务口径,那部分还得你自己拿主意。
资源地址
| 资源 | 地址 |
|---|---|
| Smithery 技能页 | https://smithery.ai/skills/github/powerbi-modeling |
| Power BI Modeling MCP Server(微软官方,Public Preview) | https://github.com/microsoft/powerbi-modeling-mcp |
| Microsoft Learn MCP Server(官方文档检索,可选依赖) | https://github.com/microsoftdocs/mcp |
总结
如果你的日常是被既有 Power BI 模型折磨,这个技能值得装,但顺序要对。先把微软官方的 powerbi-modeling-mcp 跑起来连上模型,再让这个技能教你的 agent 怎么规范地指挥它。技能不是引擎,是驾驶员手册。
它不能替你想清楚业务口径和数据架构,这点别神话。但在”把已有的模型改规范、补文档、提性能”这条路上,它把原本几小时的重复劳动压成了几句话。这个杠杆,对维护存量模型的人是真的香。
也别指望它救活一个从设计上就错的模型,那超出了技能的能力边界。把它当成一套随时可查、随时可执行的建模规范,而不是一个会替你思考的同事,才算用对了。

