實測成功:使用 Codex 編輯 Power Apps Canvas App 的前置條件與配置

| PowerPlatform | 2 Reads

過去編輯 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 --versiondnx --help
Codex MCP 配置 在工作區配置 Microsoft Canvas Authoring MCP 重新啟動 Codex 後能看到 connectsync_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 工具:

  • connect
  • sync_canvas
  • compile_canvas
  • list_controls
  • list_data_sources
  • get_data_source_schema
  • list_apis
  • describe_control
  • describe_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_controlslist_data_sources,確認 MCP 確實連到正確的 App,而不是只啟動了本機程序。

Codex 實際編輯 Canvas App 的流程

  1. 使用 sync_canvas 把目前共同創作狀態同步到本機目錄。
  2. Codex 讀取並修改每個 Screen 對應的 .pa.yaml 檔案。
  3. 使用 describe_controlget_data_source_schema 等工具確認控制項屬性和資料結構。
  4. 使用 compile_canvas 將 YAML 交給 Power Apps Authoring Service 驗證。
  5. 修正所有 YAML 或 Power Fx 診斷錯誤,直到驗證通過。
  6. 再次從共同創作會話同步回讀,確認修改已進入 Studio。
  7. 在 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 --versiondnx --help 可以正常執行。
  • ☐ 可存取 NuGet 與 Microsoft 登入服務。
  • ☐ 工作區內已有 .codex/config.tomlcanvas-authoring MCP 配置。
  • ☐ 修改配置後已重新啟動 Codex。
  • ☐ 已使用具備權限的 Microsoft 帳號完成 MCP 登入。
  • ☐ 已用 list_controlslist_data_sources 驗證連線。
  • ☐ 修改前已同步最新 App 狀態。
  • ☐ 編譯通過後仍會在 Studio 中預覽、儲存並自行決定是否發布。

參考資料

結語

Codex 並不是直接操控 Power Apps Studio 的畫面,而是透過 Canvas Authoring MCP 與正在執行的共同創作會話交換 Canvas App YAML。真正關鍵的前置條件可以濃縮成一句話:

Studio 要開著、共同創作要啟用、.NET 10 和 MCP 要配置好,而且登入帳號必須有權限。

滿足這些條件後,Codex 就能把「用自然語言描述修改」轉成可驗證、可同步的 Canvas App 變更。

This article was last edited at