plugins/canvas-apps/skills/configure-canvas-mcp/SKILL.md
Configure the Canvas Authoring MCP server for the current coauthoring session. USE WHEN "configure MCP", "set up MCP server", "MCP not working", "connect Canvas Apps MCP", "canvas-authoring not available", "MCP not configured", "set up canvas apps".
npx skillsauth add microsoft/power-platform-skills configure-canvas-mcpInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill configures the Canvas Authoring MCP server for the user's current Power Apps coauthoring session. The MCP server is auto-registered by the plugin — this skill connects it to a specific app session.
Ask the user:
What is the URL of your canvas app studio session?
Copy the URL from the browser address bar while your app is open in Power Apps Designer (it should look like
https://make.powerapps.com/e/Default-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/canvas/?action=edit&app-id=...).Make sure coauthoring is enabled in the app (Settings → Updates → Coauthoring).
Keep this browser tab open for the entire session. The MCP server communicates with Power Apps through the coauthoring session tied to that tab. Closing the tab ends the coauthoring session, which prevents
compile_canvasandsync_canvasfrom working and means you can't see or save generated changes.
Parse the following from the studio URL:
/e/ and the next / (e.g. Default-91bee3d9-0c15-4f17-8624-c92bb8b36ead).app-id query parameter value, then take the last segment after the final / (e.g. 6fc3e3d1-292b-4281-8826-577f78512e56)make.powerapps.com)Determine CLUSTER_CATEGORY from MAKER_HOSTNAME:
| MAKER_HOSTNAME | CLUSTER_CATEGORY |
| ---------------------------- | ---------------- |
| make.powerapps.com | prod |
| make.preview.powerapps.com | prod |
| make.gov.powerapps.us | gov |
| make.high.powerapps.us | high |
| make.apps.appsplatform.us | dod |
| make.powerapps.cn | china |
| Any other hostname | test |
Example:
Example URL: https://make.powerapps.com/e/Default-91bee3d9-0c15-4f17-8624-c92bb8b36ead/canvas/?action=edit&app-id=%2Fproviders%2FMicrosoft.PowerApps%2Fapps%2F6fc3e3d1-292b-4281-8826-577f78512e56
Default-91bee3d9-0c15-4f17-8624-c92bb8b36ead6fc3e3d1-292b-4281-8826-577f78512e56make.powerapps.comprodCall the connect MCP tool to connect the server to the user's coauthoring session:
mcp__canvas-authoring__connect(
environment_id: ENV_ID,
app_id: APP_ID,
cluster_category: CLUSTER_CATEGORY,
// Optional — include only if the user has expressed a preference or a prior sign-in failed (see below):
auth_flow: "broker" | "browser" | "devicecode",
login_hint: "[email protected]",
tenant_id: "00000000-0000-0000-0000-000000000000",
force_account_select: true
)
Optional parameters — do NOT prompt the user for these. Only include them if the user has already expressed a preference earlier in the conversation, or if a prior connect attempt failed:
login_hint: Pass the user's UPN or email only if they have indicated they want to connect as a specific/different user (e.g. "log in as [email protected]"). These values cannot be derived from the maker portal URL — never guess. Omit otherwise to use the first signed-in user. When reconnecting to switch environment/app, reuse the same login_hint value as the previous successful connect (if known) so the same user is reused without re-prompting.auth_flow: Pass "browser", "broker", or "devicecode" only if the user has explicitly stated a preferred auth flow (e.g. "use browser sign-in"). Use "devicecode" on headless/SSH hosts where neither broker nor browser flow can pop a UI — the verification URL and user code are surfaced via an MCP elicitation request and require a client that supports elicitation. Omit otherwise to use the default.tenant_id: Pass a tenant GUID only for Entra B2B guest access — set it to the host/resource tenant where the user is a guest so the token is issued by that tenant rather than the user's home tenant. Combine with login_hint (the guest's home UPN) to pre-fill the account. Omit for normal same-tenant sign-in.force_account_select: Pass true only to force the account picker instead of silently reusing a cached account — set this when a previous connect failed with a 401/403 and no login_hint was given, so the user can pick the correct account. Omit otherwise.If the mcp__canvas-authoring__connect tool is not available (the MCP server did not start), run the following command to check whether the server failed to launch due to a missing .NET 10 SDK:
dotnet --list-sdks
If a version 10.x.y or higher is not listed, tell the user:
⚠️ .NET 10 SDK is required to run the Canvas Authoring MCP server. It looks like you don't have it installed. Please install it from https://dotnet.microsoft.com/download/dotnet/10.0 and then try again.
If the tool is available but the call returns an error, report the error and suggest checking that:
auth_flow (broker, browser, or devicecode) or a login_hint (UPN/email) to authenticate as the correct account. On a headless/SSH host, use auth_flow: "devicecode". If a cached account keeps getting picked, retry with force_account_select: true. For Entra B2B guest access, set tenant_id to the host tenant.Tell the user:
✅ Canvas Authoring MCP server configured for your coauthoring session.
You can now use Canvas App skills like
/canvas-appto create or edit your app.To verify the setup, try: "List available Canvas App controls" — this should invoke
list_controls.
tools
Adds Work IQ (M365 Copilot Search) to a Power Apps code app via the Work IQ Copilot MCP connector (shared_a365copilotchatmcp), then wires up a production-ready McpSession wrapper for AI-powered, knowledge-grounded search and chat. Use when integrating Microsoft 365 Copilot search/chat. The CopilotChat tool searches internal Microsoft 365 content (documents, emails, chats, sites, files) across your organization — prefer workload-specific tools (SharePoint, OneDrive, Teams, Mail) when the workload is explicit; do not use it for general knowledge, news, public web, or external information.
tools
Use when the user wants to preview generated screens in a browser without starting Metro / a simulator — for example after /create-mobile-app finishes or after /edit-app regenerates a screen.
development
Use when the user wants to iterate on an existing generated Power Apps mobile app after /create-mobile-app: update the plan, data model, native capabilities, design, screens, generated app code, and preview without restarting the full project flow.
development
Creates and manages the brand design system for a Power Apps mobile app. Generates brand/design-system.md (source of truth), brand/tokens.ts (importable Tamagui tokens), and brand/design-system.html (visual gallery). Triggered at Step 6.5 of /create-mobile-app, or standalone via /design-system.