Skip to content
Development
Skill

/configure-canvas-mcp

Configure the Canvas Authoring MCP server for the current coauthoring session. Use before starting to edit a canvas app with the /canvas-app skill if not already connected. USE WHEN "configure MCP", "set up MCP server", "MCP not working", "connect Canvas Apps MCP",

From plugin
power-platform-skills
1.1k110 skills25 agents5 MCP

Claude Code

$ npx -y skills add microsoft/power-platform-skills --skill configure-canvas-mcp --agent claude-code

SKILL.md

configure-canvas-mcp.SKILL.md
name: configure-canvas-mcp
version: 2.1.0
description: Configure the Canvas Authoring MCP server for the current coauthoring session. Use before starting to edit a canvas app with the /canvas-app skill if not already connected. 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".
author: Microsoft Corporation
user-invocable: true
allowed-tools: Bash, AskUserQuestion, mcp__canvas-authoring__connect, canvas-authoring/connect

Configure the Canvas Authoring MCP Server

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.

Instructions

1. Ask for the studio URL

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_canvas` and `sync_canvas` from working and means you can't see or save generated changes.

2. Extract parameters from the URL

Parse the following from the studio URL:

  • **ENV_ID**: the path segment between `/e/` and the next `/` (e.g. `Default-91bee3d9-0c15-4f17-8624-c92bb8b36ead`).
  • **APP_ID**: URL-decode the `app-id` query parameter value, then take the last segment after the final `/` (e.g. `6fc3e3d1-292b-4281-8826-577f78512e56`)
  • **MAKER_HOSTNAME**: the hostname of the URL (e.g. `make.powerapps.com`)
  • **ENVIRONMENT_CATEGORY**: determined from MAKER_HOSTNAME (see table below)

**Determine ENVIRONMENT_CATEGORY from MAKER_HOSTNAME:**

| MAKER_HOSTNAME | ENVIRONMENT_CATEGORY | | ---------------------------- | -------------------- | | `make.powerapps.com` | `prod` | | `make.preview.powerapps.com` | `prod` | | `make.preprod.powerapps.com` | `preprod` | | `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`

  • ENV_ID → `Default-91bee3d9-0c15-4f17-8624-c92bb8b36ead`
  • APP_ID → `6fc3e3d1-292b-4281-8826-577f78512e56`
  • MAKER_HOSTNAME → `make.powerapps.com`
  • ENVIRONMENT_CATEGORY → `prod`

3. Configure the MCP server

Call the `connect` MCP tool on the `canvas-authoring` server to connect to the user's coauthoring session.

connect(
  environment_id: ENV_ID,
  app_id: APP_ID,
  environment_category: ENVIRONMENT_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: "user@contoso.com",
  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 alice@contoso.com"). 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"` if the user has explicitly stated a preferred auth flow (e.g. "use browser sign-in"), or use `"browser"` for the 404 recovery below. 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 for the 404 recovery below, or 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 Canvas Authoring `connect` tool is **not available** under the current host's name, run the following command to check whether the server failed to launch due to a missing .NET 10 SDK. Do not treat the absence of the other host's tool name as a server failure.

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 `connect` fails with HTTP 404**, a likely cause is signing in with a different account from the one used for the Studi

Read more
@microsoft
Ships withpower-platform-skills

Plugins from Microsoft that teach AI assistants, such as GitHub Copilot and Claude Code, to build on Power Platform.

1.1k110 skills25 agents5 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
1.1k
Star history of microsoft/power-platform-skills on GitHub, a chart by star-history.com

Other skills on power-platform-skills.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc11d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about configure-canvas-mcp.

Which coding agents can use configure-canvas-mcp?
configure-canvas-mcp installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.