Canvas-MCP
Canvas App MCP Relay for GPT
このプロジェクトは、Microsoft のローカル 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 は、Microsoft Canvas Authoring MCP プロセスと Power Apps Studio セッションがお使いのコンピューター上で動作しているため、Canvas App を直接編集できません。したがって、オーサリング中はローカルブリッジが必要です。
Related MCP server: OpenClaw MCP Proxy
1. Power Apps の前提条件
対象の Canvas App を Power Apps Studio で開きます。
Settings -> Updates -> Coauthoring を有効にします。
作業中は Studio タブを開いたままにします。
お使いの Microsoft アカウントにアプリの編集権限が必要です。
2. ローカルの前提条件
Node.js 20+
.NET 10 SDK
.NET 10 SDK から利用可能な
dnx
確認:
node --version
dotnet --list-sdks
dnx --helpローカルブリッジは、Microsoft のサーバーを次のコマンドで起動します:
dnx Microsoft.PowerApps.CanvasAuthoring.McpServer --yes --prerelease --source https://api.nuget.org/v3/index.json通常の対話型 Canvas Authoring フローでは、カスタムの Azure App Registration やクライアントシークレットは不要です。
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ブリッジは Microsoft Canvas MCP サーバーを起動し、必要に応じて CANVAS_STUDIO_URL を解析し、そのアプリの共同編集セッションに接続して、ライブの MCP ツールを検出し、Render に登録します。Microsoft のサインイン UI は引き続きお使いのマシン上でローカルに動作します。
後で GPT 経由で接続する場合は、CANVAS_STUDIO_URL を省略してください。プロキシされた connect ツールは引き続き利用可能です。
確認:
curl -H "Authorization: Bearer YOUR_RENDER_RELAY_TOKEN" \
https://YOUR-SERVICE.onrender.com/statusconnect、sync_canvas、compile_canvas、list_controls、list_data_sources などのツールが表示されるはずです。
5. Canvas App の接続
ブリッジの起動時に 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: prodMicrosoft MCP プロセスはローカルで実行されるため、対話型の Microsoft/Entra 認証はお使いのマシン上で行われます。通常のブラウザー/ブローカーフローを推奨します。
6. GPT の接続
次の MCP エンドポイントを使用します:
https://YOUR-SERVICE.onrender.com/mcpサーバーはリレートークンを次のいずれかとして受け入れます:
Authorization: Bearer <RELAY_TOKEN>または、Authorization ヘッダーを設定できないクライアントの場合:
https://YOUR-SERVICE.onrender.com/mcp?token=<RELAY_TOKEN>クエリ文字列オプションは互換性のために提供されていますが、URL はログや履歴に残る可能性が高いため、ベアラーヘッダーが推奨されます。
重要な ChatGPT の制限
2026年8月現在、ChatGPT での完全なカスタム MCP 書き込み/変更 アクションは、Business および Enterprise/Edu ワークスペースで利用可能です。Pro は読み取り/取得のみをサポートしています。お使いの ChatGPT プランで書き込みツールを呼び出せない場合は、同じ Render MCP エンドポイントを OpenAI API アプリケーションまたは他の完全な MCP クライアントから使用してください。
安全性
最初に Canvas App の DEV/コピーを使用してください。
インターネットに公開するデプロイメントでは
MCP_PUBLIC=trueを設定しないでください。RELAY_TOKENが漏洩した場合はローテーションしてください。1つのローカルブリッジを1つの Canvas オーサリングプロセスに接続したままにしてください。
Power Apps Studio タブを開いたままにしてください。
compile_canvasの後は、Studio で変更を確認し、永続化されたと見なす前に再同期してください。
現在の Microsoft プレビューの注意事項
Canvas Authoring MCP 機能はまだプレビュー段階です。2026年に報告されている既知の問題クラスは次のとおりです:
compile_canvas/sync_canvasが、正規に永続化されなかったプッシュの成功を報告することがある。PCF コードコンポーネントと Canvas Components に関する問題。
大規模な画面の YAML がファイルごとのコンパイル制限に達する。
Intel macOS (
osx-x64) で、サポートされている Canvas Authoring MCP ランタイムパッケージが現在不足している。Microsoft MCP プロセスの再起動後に Entra のサインインプロンプトが繰り返し表示される。
トラブルシューティング
/status が bridgeConnected: false と表示される
お使いのマシンで npm run bridge を実行し、REMOTE_URL と RELAY_TOKEN が正しいことを確認してください。
dnx が見つからない
.NET 10 SDK をインストールし、ターミナルを再起動してください。
Canvas MCP は起動するがツールが失敗する
以下を確認してください:
Power Apps Studio が開いている。
Coauthoring が有効になっている。
connectツールが正しい環境 ID とアプリ ID で呼び出されている。アプリを編集できるアカウントで認証している。
Intel Mac
Microsoft の現在のプレビューパッケージには osx-x64 に関する未解決の問題があります。Microsoft が不足しているランタイムを提供するまで、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