Canvas-MCP
面向 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 sessionRender 无法直接编辑你的 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/bridge4. 运行本地桥接
在你的开发机器上:
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 已启动但工具失败
确认:
Power Apps Studio 已打开。
已启用共同创作。
已使用正确的环境 ID 和应用 ID 调用
connect工具。你已使用可以编辑该应用的账户进行身份验证。
Intel Mac
微软当前的预览包存在 osx-x64 的未解决问题。在微软发布缺失的运行时之前,请使用 Apple Silicon、Windows x64/ARM64 或 Linux x64/ARM64。
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server to assist with JxBrowser development.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
MCP server for querying Forkast documentation
Collaborative whiteboard MCP server — create objects, connectors, C4 diagrams, and manage boards
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceA proxy server that allows LLM clients to use Databutton app API endpoints as tools through the MCP protocol over websockets.1MIT- FlicenseNot gradedqualityDmaintenanceExposes app-registered tools as an MCP server for OpenClaw, forwarding actual tool execution back to the app over a WebSocket bridge.-
- AlicenseNot gradedqualityCmaintenanceEnables browsers to act as MCP servers by relaying tools, resources, and prompts to AI agents via a WebSocket-to-stdio bridge.13MIT
- FlicenseNot gradedqualityBmaintenanceEnables remote desktop control with screen capture and mouse/keyboard simulation through an MCP server exposed via a WebSocket tunnel.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/BharathVyaas/Canvas-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server