實測成功:使用 Codex 編輯 Power Apps Canvas App 的前置條件與配置
Copyright Notice: This article is an original work licensed under the CC 4.0 BY-NC-ND license.
If you wish to repost this article, please include the original source link and this copyright notice.
Source link: https://v2know.com/article/1330
過去編輯 Power Apps Canvas App,通常都要在 Power Apps Studio 裡逐個新增控制項、調整屬性和編寫 Power Fx。現在透過 Microsoft 提供的 Canvas Authoring MCP,Codex 也可以把 Canvas App 同步到本機,以 .pa.yaml 形式修改,經過服務端驗證後再同步回正在執行的 Power Apps Studio 共同創作會話。
本文不討論複雜的 App 設計,重點只放在一件事:要讓 Codex 真正操作 Canvas App,事前需要準備什麼?
這套能力目前仍屬預覽功能。適合測試和驗證工作流程;正式用於生產環境前,仍需人工檢查公式、資料權限、安全性及組織合規要求。
先說結論:四個缺一不可的前置條件
| 項目 | 必要條件 | 如何確認 |
|---|---|---|
| Power Platform 權限 | 可進入目標環境,並能建立或編輯目標 Canvas App | 使用本人帳號在 Power Apps Studio 開啟 App |
| 共同創作會話 | 在瀏覽器中開啟目標 App 的 Studio 編輯頁面,並啟用共同創作 | 保持 Studio 分頁開啟 |
| 本機執行環境 | 安裝 .NET SDK 10.0 或以上版本,並可執行 dnx |
執行 dotnet --version 和 dnx --help |
| Codex MCP 配置 | 在工作區配置 Microsoft Canvas Authoring MCP | 重新啟動 Codex 後能看到 connect、sync_canvas 等工具 |
另外,首次連線時還要使用具備該環境權限的 Microsoft 帳號完成登入授權。
前置條件一:Power Apps 權限
使用者必須具備:
- 可進入目標 Power Platform 環境的權限。
- 建立或編輯目標 Canvas App 的權限。
- 存取該 App 使用的資料來源和連接器的相應權限。
MCP 不會繞過 Power Platform 的既有權限模型。即使取得了 App URL,沒有相應帳號權限仍然無法連線或編輯。
前置條件二:開啟 Power Apps Studio 並啟用共同創作
必須開啟的是目標 Canvas App 的 Studio 編輯頁面,而不只是 make.powerapps.com 首頁。URL 通常類似:
https://make.powerapps.com/e/<ENVIRONMENT_ID>/canvas/?action=edit&app-id=%2Fproviders%2FMicrosoft.PowerApps%2Fapps%2F<APP_ID>
這個 URL 包含兩項 MCP 連線所需的資訊:
<ENVIRONMENT_ID>:Power Platform 環境 ID。<APP_ID>:Canvas App ID。
在 Power Apps Studio 中啟用「共同創作」後,請保持這個 Studio 分頁開啟。Canvas Authoring MCP 連接的是這個即時共同創作會話;關閉 Studio 分頁或讓會話失效,可能導致編譯和同步中斷。
不建議把真實的 Environment ID、App ID、完整 Designer URL 或登入帳號公開在博客、截圖或公共儲存庫中。
前置條件三:安裝 .NET SDK 10
Microsoft 的 Canvas Authoring MCP 以 .NET 工具形式執行,官方最低要求是 .NET SDK 10.0。
可在 PowerShell 中確認:
dotnet --version
dnx --help
兩條命令都能正常執行後,Codex 才能透過 dnx 從 NuGet 啟動 MCP Server。首次啟動還需要能連線到:
https://api.nuget.org/v3/index.json
如果公司網路使用 Proxy、防火牆或 NuGet 白名單,這個網路條件也要事先確認。
前置條件四:在 Codex 工作區配置 Canvas Authoring MCP
Codex 需要知道如何啟動這個 MCP Server。本次實測採用專案級配置,只影響目前的 Power Apps 工作區,不修改其他專案。
配置檔的正確位置是:
<工作區>/.codex/config.toml
本次實測中的實際路徑為:
C:\Workspace_New\Power Apps\.codex\config.toml
注意 Power Apps 與 .codex 之間還有一個反斜線。
配置內容如下:
[mcp_servers.canvas-authoring]
enabled = true
required = false
command = "dnx"
args = [
"Microsoft.PowerApps.CanvasAuthoring.McpServer",
"--yes",
"--prerelease",
"--source",
"https://api.nuget.org/v3/index.json",
]
startup_timeout_sec = 120.0
tool_timeout_sec = 300.0
其中:
command = "dnx":使用 .NET 的一次性工具執行方式啟動 Server。--prerelease:目前 Canvas Authoring MCP 仍為預覽版本。--source:指定 Microsoft 套件的 NuGet 來源。- 較長的啟動和工具逾時:避免首次下載或大型 App 同步時過早中斷。
這個檔案可以自行建立,也可以像本次實測一樣,直接要求 Codex 檢查環境並代為建立。
配置後要重新啟動 Codex
新增 .codex/config.toml 後,現有 Codex 任務不一定會即時載入新 MCP。本次實測需要重新啟動 Codex並重新開啟工作區,之後才出現以下 Canvas Authoring 工具:
connectsync_canvascompile_canvaslist_controlslist_data_sourcesget_data_source_schemalist_apisdescribe_controldescribe_api
如果配置看起來正確但 Codex 仍找不到這些工具,第一件事就是重新啟動 Codex。
首次連線:提供 Designer URL 並完成 Microsoft 登入
重新啟動後,將完整的 Power Apps Studio Designer URL 提供給 Codex。Codex 可以從 URL 中取得 Environment ID 和 App ID,然後呼叫 connect。
首次連線可能出現 Microsoft 登入或帳號選擇畫面。應使用同時具備下列條件的帳號:
- 能在 Power Apps Studio 開啟該 App。
- 對目標環境和 App 具有編輯權限。
- 能存取 App 所需的連接器與資料來源。
連線成功後,可以先執行 list_controls 或 list_data_sources,確認 MCP 確實連到正確的 App,而不是只啟動了本機程序。
Codex 實際編輯 Canvas App 的流程
- 使用
sync_canvas把目前共同創作狀態同步到本機目錄。 - Codex 讀取並修改每個 Screen 對應的
.pa.yaml檔案。 - 使用
describe_control、get_data_source_schema等工具確認控制項屬性和資料結構。 - 使用
compile_canvas將 YAML 交給 Power Apps Authoring Service 驗證。 - 修正所有 YAML 或 Power Fx 診斷錯誤,直到驗證通過。
- 再次從共同創作會話同步回讀,確認修改已進入 Studio。
- 在 Power Apps Studio 中預覽、測試、儲存;確認無誤後再由使用者決定是否發布。
本次簡單測試中,Codex 成功新增了一個 CodexTestScreen,放入文字、按鈕和 Power Fx 點擊計數器。全部七個 YAML 檔案通過驗證,之後再從共同創作會話回讀,也確實取得了新 Screen。
幾個容易忽略的重點
1. 「同步成功」不等於「已發布」
MCP 可以把修改帶入共同創作會話,但正式儲存、測試和發布仍應在 Power Apps Studio 中確認。不要把 MCP 的編譯成功直接視為生產發布完成。
2. sync_canvas 可能覆寫本機檔案
同步工具會覆寫目標目錄中同名的 .pa.yaml 檔案。開始修改前先同步最新狀態;已有未提交的本機修改時,不要隨意對同一目錄再次同步。
3. Studio 分頁必須保持開啟
共同創作會話是 Codex 與 Power Apps Studio 之間的橋樑。分頁關閉、登入逾時或共同創作被停用,都可能讓後續編譯或同步失敗。
4. 每次都要確認連到正確的 App
同一套 MCP 配置可以切換不同環境和 App。修改前應核對 Environment ID、App ID 和登入帳號,尤其不要在測試環境與正式環境之間混淆。
5. 預覽功能仍需要人工審查
AI 生成的 YAML 和 Power Fx 仍可能存在邏輯、安全、可存取性或效能問題。重要 App 應經過人工 Review、Studio 預覽、資料權限檢查和回歸測試。
可直接使用的前置條件檢查表
- ☐ 已取得目標 Power Platform 環境與 Canvas App 的編輯權限。
- ☐ 已在 Power Apps Studio 開啟正確的 App。
- ☐ 已啟用共同創作,並保持 Studio 分頁開啟。
- ☐ 已安裝
.NET SDK 10.0或以上版本。 - ☐
dotnet --version和dnx --help可以正常執行。 - ☐ 可存取 NuGet 與 Microsoft 登入服務。
- ☐ 工作區內已有
.codex/config.toml和canvas-authoringMCP 配置。 - ☐ 修改配置後已重新啟動 Codex。
- ☐ 已使用具備權限的 Microsoft 帳號完成 MCP 登入。
- ☐ 已用
list_controls或list_data_sources驗證連線。 - ☐ 修改前已同步最新 App 狀態。
- ☐ 編譯通過後仍會在 Studio 中預覽、儲存並自行決定是否發布。
參考資料
- Microsoft Learn:使用 AI 代碼生成工具建立和編輯畫布應用
- Microsoft Power Platform Skills:Canvas Apps Plugin
- Codex MCP 配置說明
- Codex 配置檔說明
結語
Codex 並不是直接操控 Power Apps Studio 的畫面,而是透過 Canvas Authoring MCP 與正在執行的共同創作會話交換 Canvas App YAML。真正關鍵的前置條件可以濃縮成一句話:
Studio 要開著、共同創作要啟用、.NET 10 和 MCP 要配置好,而且登入帳號必須有權限。
滿足這些條件後,Codex 就能把「用自然語言描述修改」轉成可驗證、可同步的 Canvas App 變更。
This article was last edited at