Power Platform Skills

June 24, 2026 · View on GitHub

Official agent skills/plugins for Power Platform development by Microsoft.

Overview

This repository is a plugin marketplace containing Claude Code/GitHub Copilot plugins for Power Platform services. Each plugin provides skills, agents, and commands to help developers build on the Power Platform.

Installation

Run the installer to set up all plugins with auto-update enabled:

Windows (PowerShell):

iwr https://raw.githubusercontent.com/microsoft/power-platform-skills/main/scripts/install.js -OutFile install.js; node install.js; del install.js

Mac OS/Linux/Windows (cmd):

curl -fsSL https://raw.githubusercontent.com/microsoft/power-platform-skills/main/scripts/install.js | node

The installer automatically:

  • Installs pac CLI if not already installed
  • Detects available tools (Claude Code, GitHub Copilot CLI)
  • Registers the plugin marketplace and installs all listed plugins
  • Enables auto-update so plugins stay current

Manual Installation

If you prefer to install manually, run these commands inside a Claude Code or GitHub Copilot CLI session:

  1. Add the marketplace

    /plugin marketplace add microsoft/power-platform-skills
    
  2. Install the desired plugin

    /plugin install power-pages@power-platform-skills
    /plugin install model-apps@power-platform-skills
    /plugin install mcp-apps@power-platform-skills
    /plugin install code-apps-preview@power-platform-skills
    /plugin install canvas-apps@power-platform-skills
    

Available Plugins

Power Pages (plugins/power-pages)

Create and deploy Power Pages sites using modern development approaches.

Currently supported: Code Sites (SPAs) with React, Angular, Vue, or Astro

Model Apps (plugins/model-apps)

Build and deploy Power Apps generative pages for model-driven apps.

Stack: React + TypeScript + Fluent, deployed via PAC CLI

MCP Apps (plugins/mcp-apps)

Generate interactive MCP App widgets for MCP tools.

Stack: HTML widgets using the MCP Apps protocol

Code Apps (plugins/code-apps)

Build and deploy Power Apps code apps connected to Power Platform via connectors.

Stack: React + Vite + TypeScript, deployed via PAC CLI

Canvas Apps (plugins/canvas-apps)

Author Power Apps Canvas Apps using the Canvas Authoring MCP server.

Stack: PA YAML (.pa.yaml) authored via CanvasAuthoringMcpServer, requires .NET 10 SDK

Local Development

To develop and test plugins locally, follow these steps:

  1. Clone this repository

  2. Launch Claude Code with plugin path:

    claude --plugin-dir /path/to/power-platform-skills/plugins/power-pages
    claude --plugin-dir /path/to/power-platform-skills/plugins/model-apps
    claude --plugin-dir /path/to/power-platform-skills/plugins/mcp-apps
    claude --plugin-dir /path/to/power-platform-skills/plugins/code-apps
    claude --plugin-dir /path/to/power-platform-skills/plugins/canvas-apps
    

Running Without Interruption

Plugins in this repo may invoke multiple tools (file edits, shell commands, MCP servers) during a session, which can result in frequent approval prompts. Use the options below to reduce or eliminate these interruptions.

Warning: Auto-approval options give the agent the same access you have on your machine. Only use these in trusted or sandboxed environments.

Claude Code

Set the acceptEdits mode to auto-approve file edits while still prompting for shell commands:

// .claude/settings.json (project-level) or ~/.claude/settings.json (user-level)
{
  "defaultMode": "acceptEdits",
  "permissions": {
    "allow": [
      "Bash(npm run *)",
      "Bash(git *)",
      "Bash(pac *)"
      // add other commands your workflow needs
    ]
  }
}

Option 2 — Allow all tools

Press Shift+Tab during a session to cycle to auto-accept mode, or launch with:

claude --dangerously-skip-permissions

See the Claude Code permissions docs for the full reference.

GitHub Copilot CLI

Pre-approve only the tools your workflow needs:

copilot --allow-tool 'write' --allow-tool 'shell(npm run build)' --allow-tool 'shell(pac *)'

Option 2 — Allow all tools in Copilot

copilot --allow-all-tools

To allow everything except dangerous commands:

copilot --allow-all-tools --deny-tool 'shell(rm)' --deny-tool 'shell(git push)'

See the Copilot CLI docs for the full reference.

Repository Structure

power-platform-skills/
├── marketplace.json          # Open Plugins marketplace manifest (lists all plugins)
├── .claude-plugin/           # Legacy marketplace shim for existing subscriptions
│   └── marketplace.json
├── .claude/
│   └── settings.json         # Auto-allowed tools (pac, node, dotnet, etc.)
├── plugins/
│   ├── power-pages/          # Power Pages plugin
│   │   ├── .plugin/
│   │   │   └── plugin.json
│   │   ├── .claude-plugin/   # Legacy manifest mirror
│   │   │   └── plugin.json
│   │   ├── commands/
│   │   ├── shared/
│   │   └── skills/
│   ├── model-apps/           # Model Apps plugin
│   |   ├── .plugin/
│   │   └── plugin.json
│   |   ├── commands/
│   |   ├── skills/
│   |   ├── shared/           # Shared references + samples
│   |   └── github/           # GitHub Copilot instructions
│   ├── mcp-apps/             # MCP Apps widget generator plugin
│   │   ├── .plugin/
│   │   │   └── plugin.json
│   │   ├── references/
│   │   ├── samples/
│   │   └── skills/
│   ├── code-apps/            # Code Apps plugin
│   │   ├── .plugin/
│   │   │   └── plugin.json
│   │   ├── agents/
│   │   ├── skills/
│   │   └── shared/           # Shared instructions + references
│   └── canvas-apps/          # Canvas Apps plugin
│       ├── .plugin/
│       │   └── plugin.json
│       ├── references/       # Technical + design guides
│       └── skills/
├── AGENTS.md                 # Development guidelines
└── README.md

The .claude-plugin files are compatibility mirrors for users who subscribed before the Open Plugins migration. The root legacy marketplace mirrors marketplace.json, and per-plugin legacy manifests mirror .plugin/plugin.json. The shared marketplace keeps marketplace-level owner and metadata, while each plugin entry is intentionally just name plus repository-root-relative source. Plugin descriptions, versions, licenses, and keywords are controlled from each plugin's .plugin/plugin.json. This keeps existing subscriptions updating without duplicating display/update metadata.

Documentation

Contributing

See CONTRIBUTING.md for contribution guide.

License

The code in this repo is licensed under the MIT license.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Telemetry

Plugins that ship 1DS telemetry (currently: power-pages) gather anonymous usage signals. Telemetry is default-on; users opt out per-plugin via the /<plugin>:telemetry off command (e.g. /power-pages:telemetry off), stored in ~/.power-platform-skills/config.json. For automation/CI, each adopting plugin also honors a per-plugin opt-out environment variable POWER_PLATFORM_SKILLS_TELEMETRY_<PLUGIN>_OPTOUT (e.g. POWER_PLATFORM_SKILLS_TELEMETRY_POWER_PAGES_OPTOUT=1); when set it disables transmission with the highest precedence, overriding any /<plugin>:telemetry choice. See shared/telemetry/README.md.