ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

power-platform-skills Canvas Apps插件解析:通过MCP让AI直接编写画布应用的完整工作流

power-platform-skills Canvas Apps插件解析:通过MCP让AI直接编写画布应用的完整工作流

【免费下载链接】power-platform-skills

A plugin marketplace for GitHub Copilot and other AI agents that provides Power Platform development plugins, including reusable skills, agents, and commands for building and deploying solutions.

项目地址:https://gitcode.com/gh_mirrors/po/power-platform-skills
点击查看免费下载

power-platform-skills是微软官方的 AI 插件市场,其中的Canvas Apps 插件通过MCP(Model Context Protocol)协议把你的编码智能体(coding agent)直连到 Power Apps Studio,让你用一句自然语言,就能让 AI 直接创建和修改画布应用(Canvas App)的屏幕、控件、Power Fx 公式与数据源——无需手写一行代码。

本文带你完整走通这条工作流:从环境准备、插件安装、MCP 连接,到 AI 五阶段流水线构建应用的内部机制与常见问题排查。

一、先搞懂:这个插件到底在做什么?

传统上,画布应用要靠鼠标在 Power Apps Studio 里逐个拖控件、手敲公式。Canvas Apps 插件换了一种方式:

  • MCP 服务器(canvas-authoring)由插件自动注册,它通过coauthoring(协同编辑)会话与 Power Apps Studio 通信,把应用状态同步为本地.pa.yaml文件;
  • AI 代理在本地直接编辑这些 YAML 文件,再调用compile_canvas通过官方 Power Apps 创作服务校验并回写应用;
  • Skills 与 Agents负责编排:一个面向用户的技能命令,背后是多角色专业代理分工协作的流水线。

一句话概括:你在聊天框说需求,AI 写 YAML,MCP 把它编译进你打开的应用里。

核心入口文件:

  • 插件说明:plugins/canvas-apps/README.md
  • 架构总览:plugins/canvas-apps/AGENTS.md
  • MCP 服务器注册配置:plugins/canvas-apps/.mcp.json

二、上手前准备:3 项硬性前置条件

条件说明
✅ 支持 MCP 与 agent 插件的编码智能体如 VS Code Agent 模式、GitHub Copilot CLI、Claude Code
✅.NET 10 SDKMCP 服务器依赖它运行(注意是 SDK,不只是 Runtime)
✅已存在且开启 coauthoring 的应用应用必须先在 Power Apps 中创建、保存并开启协同编辑;插件不能替你创建应用本身

验证 .NET SDK 版本(输出需包含10.开头的版本号):

dotnet --list-sdks

⚠️ 关键细节:应用必须已在 Power Apps Studio 中打开,并在Settings → Updates → Coauthoring中开启协同编辑,且整个会话期间不能关闭该浏览器标签页——关闭即断连,compile_canvas与sync_canvas会失效。

三、快速安装与连接:三步走

第 1 步:安装插件

在你的智能体插件市场中执行:

/plugin marketplace add microsoft/power-platform-skills /plugin install canvas-apps@power-platform-skills

在 VS Code 中,打开扩展视图(Ctrl+Shift+X)搜索@agentPlugins canvas apps,安装 Microsoft 发布的Canvas Apps即可。若搜索不到,可在用户设置 JSON 中加上"chat.plugins.enabled": true。

第 2 步:连接你的应用(/configure-canvas-mcp)

运行configure-canvas-mcp技能,或直接用自然语言说:

Connect the Canvas Apps MCP server to my app.

按提示从浏览器地址栏粘贴Studio 完整 URL,完成登录。这个技能会自动从 URL 中解析出ENV_ID、APP_ID、环境类别(prod / gov / china 等),并调用connect工具接入你的协同编辑会话。

技能定义见:plugins/canvas-apps/skills/configure-canvas-mcp/SKILL.md

第 3 步:验证连接

对 AI 说:

List the available Canvas App controls.

如果 AI 成功列出控件清单(触发list_controls工具),说明整条链路已打通。🎉

四、核心玩法:/canvas-app的完整工作流

这是插件的主角技能。直接说:

Create a Canvas App for managing inventory

或

修改我现有的 Canvas App,给表单加上校验

技能会自动识别你是在「从零创建」(CREATE)还是「修改现有应用」(EDIT),走不同的流水线。技能入口:plugins/canvas-apps/skills/canvas-app/SKILL.md

CREATE:五阶段流水线,先设计后实现

新建应用时,插件不是让 AI 一口气写代码,而是像一支小型产品团队那样分工,共 5 个阶段、7 个专职代理(Agents 不可被用户直接调用,均由技能通过Task工具调度):

阶段代理产出物职责
1️⃣ 功能定义canvas-create-functionalitycreate-functionality.md只梳理用户、任务、需求R*与动作A*,不碰任何控件
2️⃣ 屏幕规划canvas-create-screenscreate-screens.md把功能组织成任务导向的屏幕与导航
3️⃣ 布局设计canvas-create-layoutcreate-design.md+ 各屏composition.md视觉层级、密度、响应式断点等纯设计决策
4️⃣ 可行性发现canvas-create-discoverycreate-discovery.md调 MCP 工具核对真实控件、数据源、连接器、图片是否支持你的设计
5️⃣ 屏幕实现canvas-create-builder单个屏幕的.pa.yaml每个 builder只负责一个屏幕,按波次并行实现

关键设计亮点 👇

  • 体验先于实现:前 3 个阶段严禁提前选型控件,避免 AI "先射箭再画靶";
  • 人工审批关卡:可行性确认后,AI 会先呈现一份## Canvas App Plan(屏幕用途、关键交互、数据假设、视觉方向),你批准后才允许写任何 YAML 并编译;
  • 编译权集中:只有协调者(技能本身)能执行compile_canvas,workers 只写自己那个屏幕文件,杜绝互相覆盖。

工作流完整规则:plugins/canvas-apps/references/CreateWorkflow.md

各阶段代理源码(可深入了解每个角色的职责边界):

  • canvas-create-functionality.md
  • canvas-create-screens.md
  • canvas-create-layout.md
  • canvas-create-discovery.md
  • canvas-create-builder.md

EDIT:三级路由,改得稳才快

修改现有应用时,插件先用assess_edit_execution工具对改动"体量"做一次评估,返回三级路由:

路由适用场景行为
Direct加一个按钮这类单点小改顶层代理直接改完即编译,不打扰你审批
Partitioned多个文件互不影响的独立修改顺序(或回退到 Planned)逐文件执行
Planned跨屏共享状态、记录增删改、破坏性布局变更先出## Canvas Edit Plan给你批准 →canvas-app-planner制定分派计划 →canvas-screen-builder逐屏实施

这套"先评估、再分级、重大改动必审批"的机制,是插件防止 AI 误伤现有应用的核心保险。路由规则详见:plugins/canvas-apps/references/EditWorkflow.md

五、MCP 工具速查表:AI 的手与眼

以下工具由canvas-authoring服务器提供(无需手动调用,仅作了解):

工具作用
connect连接指定应用与环境(必须最先调用)
sync_canvas从 Studio 下载当前应用状态,覆盖本地 YAML
compile_canvas校验并应用本地 YAML 到 Power Apps 创作服务
list_controls/describe_control列出 / 查询控件的属性与变体
list_apis/describe_api列出 / 查询可用连接器及其操作
list_data_sources/get_data_source_schema列出数据源 / 查看列与类型
search_stock_images搜索可用库存图片
check_accessibility/check_app对已应用的应用做诊断(仅 EDIT 阶段)

六、常见问题排查

现象解决办法
插件搜不到 / 装不上确认宿主支持 MCP 与 agent 插件;VS Code 中重启后仍无果,请咨询管理员是否组织策略禁用了插件
dotnet/dnx找不到安装.NET 10 SDK(不是 Runtime),重启终端与智能体
工具调用后连不上确认 URL 来自Studio 编辑页(非应用播放器)、应用已保存、coauthoring 已开启、标签页未关闭
登录失败或账号不对重试并选择正确的组织账号;无界面环境(SSH)可指定auth_flow: "devicecode"
Studio 里看不到 AI 的修改确认原 Studio 标签页仍打开且已登录;检查 AI 是否报告了编译错误

完整故障表(含 NuGet 源问题)见:plugins/canvas-apps/README.md

七、安全须知 ⚠️

  • 凭据由官方 Azure Identity SDK 处理,插件不直接存储令牌;
  • 用最小权限账号连接,审批操作前核对环境、应用 URL 与工具参数;
  • 先在开发环境中验证 AI 生成的改动,再应用到生产;
  • 永远不要把密码、令牌、连接串粘贴进提示词或 Issue。

八、总结:一句话记住这套工作流

装插件 → 开 coauthoring → /configure-canvas-mcp 连接 → /canvas-app 说需求 → AI 五阶段设计 + 你审批 → 编译回写 Studio

Canvas Apps 插件的价值不只是"AI 帮你写应用",更在于它把软件工程的纪律(角色分工、可行性核对、变更分级、审批关卡、编译隔离)内建到了 AI 工作流里——这正是它区别于"一键生成"玩具的关键。

想动手试试?打开你的编码智能体,对它说:

"给我建一个管理员工休假申请(Canvas App),要能审批和统计。"

然后看着它一步步把设计稿变成可运行的应用。🚀

【免费下载链接】power-platform-skills

A plugin marketplace for GitHub Copilot and other AI agents that provides Power Platform development plugins, including reusable skills, agents, and commands for building and deploying solutions.

项目地址:https://gitcode.com/gh_mirrors/po/power-platform-skills
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进