Skip to main content
ClaudeWave
Skill358 repo starsupdated today

configure-canvas-mcp

The configure-canvas-mcp skill sets up the Canvas Authoring MCP server to enable Power Apps canvas app development within a coauthoring session. Use this skill when the MCP server needs initialization, isn't responding, or requires connection to a specific app instance. The skill verifies .NET 10 SDK installation, extracts configuration parameters from the Power Apps studio URL, and establishes the server connection for subsequent canvas app compilation and synchronization operations.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/microsoft/power-platform-skills /tmp/configure-canvas-mcp && cp -r /tmp/configure-canvas-mcp/plugins/canvas-apps/skills/configure-canvas-mcp ~/.claude/skills/configure-canvas-mcp
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# 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

### 0. Check prerequisites

Verify that .NET 10 SDK or higher is installed:

```bash
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.

### 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`)
- **CLUSTER_CATEGORY**: determined from MAKER_HOSTNAME (see table below)

**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`

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

### 3. Configure the MCP server

Call 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: "user@contoso.com"
)
```

**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 alice@contoso.com"). 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:

1. The studio URL is correct and the browser tab is still open
2. Coauthoring is enabled in the app settings
3. .NET 10 SDK is correctly installed
4. If sign-in failed, the user may need to specify `auth_flow` (`broker` vs. `browser`) or a `login_hint` (UPN/email) to authenticate as the correct account

### 4. Confirm

Tell the user:

> ✅ Canvas Authoring MCP server configured for your coauthoring session.
>
> You can now use Canvas App skills like `/canvas-app` to create or edit your app.
>
> To verify the setup, try: "List available Canvas App controls" — this should invoke `list_controls`.
add-data-sourceSkill

Guide the user to add a data source, connection, or API connector to a Canvas App via Power Apps Studio, then verify and continue. USE WHEN the user asks to add a data source, add a connection, add an API, add a connector, connect to SharePoint / Dataverse / SQL / Excel / OneDrive / Teams / Office 365, or any similar request to make new data available to the app. DO NOT USE WHEN the user is asking to list or describe existing data sources — call list_data_sources or list_apis directly instead.

canvas-appSkill

Creates or edits a Power Apps Canvas App through the Canvas Authoring MCP coauthoring session. Handles new app generation from requirements, simple inline edits, and complex multi-screen changes with parallel screen builders. Triggers on requests to create, build, generate, modify, update, change, or edit a Canvas App or .pa.yaml files.

generate-canvas-appSkill

[DEPRECATED — use canvas-app instead] Generate a complete Power Apps canvas app.

report-issueSkill

>

add-azuredevopsSkill

Adds Azure DevOps connector to a Power Apps code app. Use when querying work items, creating bugs, managing pipelines, or making ADO API calls.

add-connectorSkill

Adds any Power Platform connector to a Power Apps code app. Generic fallback for connectors not covered by a specific skill.

add-datasourceSkill

Adds a data source or connector to a Power Apps code app. Asks what the user wants to accomplish and routes to the appropriate specialized skill.

add-dataverseSkill

Adds Dataverse tables to a Power Apps code app with generated TypeScript models and services. Can also create new Dataverse tables. Use when connecting to Dataverse, adding tables, creating schema, or querying Dataverse data.