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". DO NOT USE WHEN prerequisites are missing — direct the user to install .NET 10 SDK first.
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.
Verify that .NET 10 SDK or higher is installed:
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 first to use this skill. https://dotnet.microsoft.com/download/dotnet/10.0
Then wait for the user to install it before continuing. If they say it's installed, run the command again to confirm. If it's still not found, repeat the message until they have it installed.
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 (see below):
auth_flow: "broker" | "browser",
login_hint: "[email protected]"
)
Optional parameters — do NOT prompt the user for these. Only include them if the user has already expressed a preference earlier in the conversation:
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.auth_flow: Pass "browser" or "broker" only if the user has explicitly stated a preferred auth flow (e.g. "use browser sign-in"). Omit otherwise to use the default.If the call fails, report the error to the user and suggest checking that:
auth_flow (broker vs. browser) or a login_hint (UPN/email) to authenticate as the correct accountTell 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.
development
Use when the user asks to "set up authentication", "add login", "add logout", "add sign in", "enable auth", "add role-based access", "add authorization", "protect routes", "configure identity provider", "configure Entra ID", "configure Entra External ID", "configure OpenID Connect", "add OIDC", "set up SAML", "set up WS-Federation", "set up local login", "add username password", "add Facebook login", "add Google sign in", "add Microsoft Account", "set up invitation login", or otherwise wants to set up authentication (login/logout) and role-based authorization for their Power Pages code site using any supported identity provider (Microsoft Entra ID, Entra External ID, OpenID Connect, SAML2, WS-Federation, local authentication, Microsoft Account, Facebook, or Google).
development
Creates, updates, and deploys Power Apps generative pages for model-driven apps using React v17, TypeScript, and Fluent UI V9. Orchestrates specialist agents for planning, entity creation, and code generation. Use it when user asks to build, retrieve, or update a page in an existing Microsoft Power Apps model-driven app. Use it when user mentions "generative page", "page in a model-driven", or "genux".
development
Creates a new Power Pages code site (SPA) using React, Angular, Vue, or Astro. Guides through the full process from initial concept to deployed site: requirements discovery, scaffolding, component planning, design, implementation, validation, and deployment. Use when the user wants to create, build, or scaffold a new Power Pages website or portal.
devops
Creates a Dataverse publisher and solution, then adds Power Pages site components to the solution for ALM and deployment management. Use when asked to: "create solution", "set up solution", "add to solution", "package site into solution", "create publisher", "solutionize my site", or "set up ALM for my site".