Skip to main content
Glama

面向 GPT 的 Canvas 应用 MCP 中继

本项目将微软本地 Canvas Authoring MCP Server 暴露为可托管在 Render 上的远程 MCP 端点。

架构

GPT / MCP client
      |
      | Streamable HTTP
      v
Render: canvas-mcp-relay
      |
      | authenticated WebSocket
      v
Your computer: local-bridge.js
      |
      | stdio
      v
Microsoft.PowerApps.CanvasAuthoring.McpServer
      |
      v
Power Apps Studio coauthoring session

Render 无法直接编辑你的 Canvas 应用,因为微软 Canvas Authoring MCP 进程和 Power Apps Studio 会话都运行在你的电脑上。因此,在创作期间必须使用本地桥接。

Related MCP server: OpenClaw MCP Proxy

1. Power Apps 前置条件

  • 在 Power Apps Studio 中打开目标 Canvas 应用。

  • 启用 设置 -> 更新 -> 共同创作。

  • 工作时保持 Studio 标签页处于打开状态。

  • 你的微软账户必须对该应用具有编辑权限。

2. 本地前置条件

  • Node.js 20+

  • .NET 10 SDK

  • dnx 可从 .NET 10 SDK 获取

验证:

node --version
dotnet --list-sdks
dnx --help

本地桥接使用以下命令启动微软服务器:

dnx Microsoft.PowerApps.CanvasAuthoring.McpServer --yes --prerelease --source https://api.nuget.org/v3/index.json

常规交互式 Canvas Authoring 流程无需自定义 Azure 应用注册或客户端密钥。

3. 部署到 Render

将此文件夹推送到 GitHub,然后从仓库创建 Render Web Service,或使用 render.yaml。

所需的 Render 环境变量:

RELAY_TOKEN=<long-random-secret>
MCP_PUBLIC=false
BRIDGE_REQUEST_TIMEOUT_MS=120000

在本地生成一个令牌,例如:

openssl rand -hex 32

部署后,你的端点将如下所示:

https://YOUR-SERVICE.onrender.com/health
https://YOUR-SERVICE.onrender.com/mcp
wss://YOUR-SERVICE.onrender.com/bridge

4. 运行本地桥接

在你的开发机器上:

npm install
CANVAS_STUDIO_URL='PASTE_THE_FULL_POWER_APPS_STUDIO_URL_HERE' \
REMOTE_URL=wss://YOUR-SERVICE.onrender.com/bridge \
RELAY_TOKEN=YOUR_RENDER_RELAY_TOKEN \
npm run bridge

桥接会启动微软 Canvas MCP 服务器,可选地解析 CANVAS_STUDIO_URL,连接到该应用的共同创作会话,发现实时 MCP 工具,并将其注册到 Render。微软登录界面仍然只出现在你的本地机器上。

如果你希望稍后通过 GPT 连接,请省略 CANVAS_STUDIO_URL;代理后的 connect 工具仍然可用。

检查:

curl -H "Authorization: Bearer YOUR_RENDER_RELAY_TOKEN" \
  https://YOUR-SERVICE.onrender.com/status

你应该能看到诸如 connect、sync_canvas、compile_canvas、list_controls 和 list_data_sources 等工具。

5. 连接 Canvas 应用

如果你在启动桥接时提供了 CANVAS_STUDIO_URL,此步骤将自动完成。否则,一旦 GPT 能看到 MCP 工具,请使用 Power Apps Studio URL 中的值调用 Canvas MCP connect 工具:

environment_id: Default-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
app_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
environment_category: prod

微软 MCP 进程在本地运行,因此交互式微软/Entra 身份验证会在你的机器上完成。请优先使用常规的浏览器/代理流程。

6. 连接 GPT

使用此 MCP 端点:

https://YOUR-SERVICE.onrender.com/mcp

服务器接受以下任一方式提供的中继令牌:

Authorization: Bearer <RELAY_TOKEN>

或者,对于无法配置 Authorization 标头的客户端:

https://YOUR-SERVICE.onrender.com/mcp?token=<RELAY_TOKEN>

提供查询字符串选项是为了兼容性,但更推荐使用 bearer 标头,因为 URL 更有可能出现在日志/历史记录中。

重要的 ChatGPT 限制

截至 2026 年 8 月,ChatGPT 中完整的自定义 MCP 写入/修改操作仅适用于 Business 和 Enterprise/Edu 工作区。Pro 仅支持读取/获取。如果你的 ChatGPT 套餐无法调用写入工具,请从 OpenAI API 应用程序或其他完整的 MCP 客户端使用相同的 Render MCP 端点。

安全

  • 首先使用 Canvas 应用的 DEV/副本。

  • 不要在面向互联网的部署上设置 MCP_PUBLIC=true。

  • 如果 RELAY_TOKEN 泄露,请轮换该令牌。

  • 保持一个本地桥接同时只连接一个 Canvas 创作进程。

  • 保持 Power Apps Studio 标签页处于打开状态。

  • 在 compile_canvas 之后,先在 Studio 中验证更改并重新同步,然后再视为已持久化。

当前微软预览版注意事项

Canvas Authoring MCP 功能仍处于预览阶段。2026 年报告的已知问题类别包括:

  • compile_canvas / sync_canvas 有时报告推送成功,但并未规范地持久化。

  • 涉及 PCF 代码组件和 Canvas 组件的问题。

  • 大型屏幕 YAML 达到单文件编译限制。

  • Intel macOS(osx-x64)目前缺少受支持的 Canvas Authoring MCP 运行时包。

  • 重启微软 MCP 进程后反复出现 Entra 登录提示。

故障排查

/status 显示 bridgeConnected: false

在你的机器上运行 npm run bridge,并确保 REMOTE_URL 和 RELAY_TOKEN 正确。

找不到 dnx

安装 .NET 10 SDK 并重启终端。

Canvas MCP 已启动但工具失败

确认:

  1. Power Apps Studio 已打开。

  2. 已启用共同创作。

  3. 已使用正确的环境 ID 和应用 ID 调用 connect 工具。

  4. 你已使用可以编辑该应用的账户进行身份验证。

Intel Mac

微软当前的预览包存在 osx-x64 的未解决问题。在微软发布缺失的运行时之前,请使用 Apple Silicon、Windows x64/ARM64 或 Linux x64/ARM64。

Related MCP Connectors

Related MCP Servers