Skip to content

Commit 09eeee8

Browse files
lesaltzmrggammonCopilot
authored
Adds Canvas Apps plugin to use the Canvas Authoring MCP to generate and edit Canvas Apps (#64)
* Add canvas app skills to configure mcp server and generate app * Remove workflow piece * Remove workflow piece * use url for config * New skill, cleanup * WIP * Pick up carlos' updates (#2) * Update paths in canvas skill to reference plugin root * Set CANVAS_CLUSTER_CATEGORY for prod enablement (#3) * Task creation * Update generation skill with phases * Update generation skill with phases * Add canvas apps to readme * Add readme to canvas-apps plugin * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Address review feedback * Rename skills to be more friendly for ghcp * Update plugins/canvas-apps/skills/configure-canvas-mcp/SKILL.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update plugins/canvas-apps/skills/configure-canvas-mcp/SKILL.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update plugins/canvas-apps/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update plugins/canvas-apps/skills/configure-canvas-mcp/SKILL.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Ryan Gammon <ryan@gamnation.net> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 0e02f92 commit 09eeee8

11 files changed

Lines changed: 1124 additions & 10 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,21 @@
3333
"microsoft"
3434
]
3535
},
36+
{
37+
"name": "canvas-apps",
38+
"source": "./plugins/canvas-apps",
39+
"description": "Build Power Apps Canvas Apps using the Canvas Authoring MCP server",
40+
"category": "development",
41+
"tags": [
42+
"power platform",
43+
"power apps",
44+
"canvas apps",
45+
"pa-yaml",
46+
"msapp",
47+
"connectors",
48+
"microsoft"
49+
]
50+
},
3651
{
3752
"name": "code-apps",
3853
"source": "./plugins/code-apps",

README.md

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ If you prefer to install manually, run these commands inside a Claude Code or Gi
4747
/plugin install power-pages@power-platform-skills
4848
/plugin install model-apps@power-platform-skills
4949
/plugin install code-apps@power-platform-skills
50+
/plugin install canvas-apps@power-platform-skills
5051
```
5152

5253
## Available Plugins
@@ -69,6 +70,12 @@ Build and deploy Power Apps code apps connected to Power Platform via connectors
6970

7071
**Stack**: React + Vite + TypeScript, deployed via PAC CLI
7172

73+
### [Canvas Apps](plugins/canvas-apps/AGENTS.md) (`plugins/canvas-apps`)
74+
75+
Author Power Apps Canvas Apps using the Canvas Authoring MCP server.
76+
77+
**Stack**: PA YAML (`.pa.yaml`) authored via `CanvasAuthoringMcpServer`, requires .NET 10 SDK
78+
7279
## Local Development
7380

7481
To develop and test plugins locally, follow these steps:
@@ -80,6 +87,7 @@ To develop and test plugins locally, follow these steps:
8087
claude --plugin-dir /path/to/power-platform-skills/plugins/power-pages
8188
claude --plugin-dir /path/to/power-platform-skills/plugins/model-apps
8289
claude --plugin-dir /path/to/power-platform-skills/plugins/code-apps
90+
claude --plugin-dir /path/to/power-platform-skills/plugins/canvas-apps
8391
```
8492

8593
## Running Without Interruption
@@ -159,18 +167,23 @@ power-platform-skills/
159167
│ │ ├── shared/
160168
│ │ └── skills/
161169
│ ├── model-apps/ # Model Apps plugin
170+
│ | ├── .claude-plugin/
171+
│ │ └── plugin.json
172+
│ | ├── commands/
173+
│ | ├── skills/
174+
│ | ├── shared/ # Shared references + samples
175+
│ | └── github/ # GitHub Copilot instructions
176+
│ ├── code-apps/ # Code Apps plugin
177+
│ │ ├── .claude-plugin/
178+
│ │ │ └── plugin.json
179+
│ │ ├── agents/
180+
│ │ ├── skills/
181+
│ │ └── shared/ # Shared instructions + references
182+
│ └── canvas-apps/ # Canvas Apps plugin
162183
│ ├── .claude-plugin/
163184
│ │ └── plugin.json
164-
│ ├── commands/
165-
│ ├── skills/
166-
│ ├── shared/ # Shared references + samples
167-
│ └── github/ # GitHub Copilot instructions
168-
│ └── code-apps/ # Code Apps plugin
169-
│ ├── .claude-plugin/
170-
│ │ └── plugin.json
171-
│ ├── agents/
172-
│ ├── skills/
173-
│ └── shared/ # Shared instructions + references
185+
│ ├── references/ # Technical + design guides
186+
│ └── skills/
174187
├── AGENTS.md # Development guidelines
175188
└── README.md
176189
```
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"name": "canvas-apps",
3+
"version": "1.0.0",
4+
"description": "Build Power Apps Canvas Apps using the Canvas Authoring MCP server.",
5+
"author": {
6+
"name": "Microsoft",
7+
"url": "https://www.microsoft.com"
8+
},
9+
"homepage": "https://github.com/microsoft/power-platform-skills/",
10+
"repository": "https://github.com/microsoft/power-platform-skills/",
11+
"license": "MIT",
12+
"keywords": [
13+
"canvas-apps",
14+
"power-apps",
15+
"canvas",
16+
"pa-yaml",
17+
"msapp"
18+
]
19+
}

plugins/canvas-apps/AGENTS.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# AGENTS.md — Canvas Apps Plugin
2+
3+
This file provides guidance to AI Agents when working with the **canvas-apps** plugin.
4+
5+
## What This Plugin Is
6+
7+
A plugin for authoring Power Apps Canvas Apps. The Canvas Authoring MCP server (`CanvasAuthoringMcpServer`) exposes tools and prompts that Claude uses directly — no skill orchestration layer is needed. Claude calls the MCP tools in conversation to generate, validate, and compile Canvas App YAML files (`.pa.yaml`) in conjunction with a running coauthoring studio session
8+
9+
## Local Development
10+
11+
Test this plugin locally:
12+
13+
```bash
14+
claude --plugin-dir /path/to/plugins/canvas-apps
15+
```
16+
17+
## Architecture
18+
19+
```
20+
.claude-plugin/plugin.json ← Plugin metadata (name, version, keywords)
21+
AGENTS.md ← Plugin guidance for AI agents (this file)
22+
CLAUDE.md ← Symlink → AGENTS.md
23+
references/
24+
TechnicalGuide.md ← YAML syntax, control selection, layout strategies, Power Fx patterns
25+
DesignGuide.md ← Aesthetic guidelines, anti-patterns, design process
26+
skills/
27+
configure-canvas-mcp/
28+
SKILL.md ← Registers the Canvas Authoring MCP server with Claude Code
29+
generate-canvas-app/
30+
SKILL.md ← Generates pa.yaml source files for a described Canvas App
31+
edit-canvas-app/
32+
SKILL.md ← Edits pa.yaml source files for an existing Canvas App
33+
```
34+
35+
## Skills
36+
37+
| Skill | Description |
38+
|-------|-------------|
39+
| `/configure-canvas-mcp` | Register the Canvas Authoring MCP server with Claude Code |
40+
| `/generate-canvas-app` | Generate a complete Canvas App from a natural language description |
41+
| `/edit-canvas-app` | Edit an existing Canvas App from a natural language description of changes |
42+
43+
## MCP Tools
44+
45+
The `canvas-authoring` MCP server exposes the following tools:
46+
47+
| Tool | Description |
48+
|------|-------------|
49+
| `compile_canvas` | Validates canvas app YAML files in a directory using the Power Apps authoring service |
50+
| `describe_api` | Gets detailed information about a specific API (connector) including its operations and parameters |
51+
| `describe_control` | Gets detailed information about a specific Power Apps control including properties, variants, and metadata |
52+
| `get_data_source_schema` | Gets the schema (columns and their Power Fx types) for a specific data source in the current authoring session |
53+
| `list_apis` | Lists all available APIs (connectors) in the current authoring session |
54+
| `list_controls` | Lists all available Power Apps controls in the current authoring session |
55+
| `list_data_sources` | Lists all available data sources in the current authoring session |
56+
| `sync_canvas` | Syncs the current coauthoring session state from the server to a local directory, writing all YAML files |
57+
58+
## Prerequisites
59+
60+
Before the MCP server will start, you need:
61+
62+
**.NET 10 SDK**[Download from Microsoft](https://dotnet.microsoft.com/download/dotnet/10.0)

plugins/canvas-apps/CLAUDE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
AGENTS.md

plugins/canvas-apps/README.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Canvas Apps Plugin
2+
3+
Build Power Apps Canvas Apps with your coding agent as coauthor. This plugin connects AI coding assistants to the Power Apps authoring service over stdio, enabling them to validate .pa.yaml files, browse available controls and their properties, discover APIs/connectors and data sources, and sync app state from live coauthoring sessions.
4+
5+
> **Preview:** This plugin is currently in [preview](https://www.microsoft.com/en-us/business-applications/legal/supp-powerplatform-preview/). These features are available before official release for customers to provide feedback.
6+
7+
## Prerequisites
8+
9+
- [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0)
10+
11+
## Installation
12+
13+
### From the marketplace
14+
15+
```bash
16+
/plugin marketplace add microsoft/power-platform-skills
17+
/plugin install canvas-apps@power-platform-skills
18+
```
19+
20+
### From a local clone
21+
22+
```bash
23+
claude --plugin-dir /path/to/power-platform-skills/plugins/canvas-apps
24+
```
25+
26+
## Skills
27+
28+
### `/configure-canvas-mcp`
29+
30+
Register the Canvas Authoring MCP server with Claude Code or GitHub Copilot.
31+
32+
**Usage:** Invoke directly with `/configure-canvas-mcp`, or use any of the keywords below to trigger the skill automatically:
33+
34+
- `Configure MCP for Canvas Apps`
35+
- `Set up the Canvas Authoring MCP server`
36+
- `Connect Canvas Apps MCP`
37+
38+
### `/generate-canvas-app`
39+
40+
Generate a complete Canvas App from a natural language description.
41+
42+
**Usage:** Invoke directly with `/generate-canvas-app`, or use any of the keywords below to trigger the skill automatically:
43+
44+
- `Create a Canvas App for managing inventory`
45+
- `I need a Canvas App for tracking employee time off`
46+
47+
### `/edit-canvas-app`
48+
49+
Edit an existing Canvas App from a natural language description of changes.
50+
51+
**Usage:** Invoke directly with `/edit-canvas-app`, or use any of the keywords below to trigger the skill automatically:
52+
53+
- `Modify the form in my existing Canvas App to include validation`
54+
- `Edit my Canvas App to add a new screen for reports`
55+
56+
## MCP Tools
57+
58+
The `canvas-authoring` MCP server exposes the following tools:
59+
60+
| Tool | Description |
61+
|------|-------------|
62+
| `compile_canvas` | Validates canvas app YAML files in a directory using the Power Apps authoring service |
63+
| `describe_api` | Gets detailed information about a specific API (connector) including its operations and parameters |
64+
| `describe_control` | Gets detailed information about a specific Power Apps control including properties, variants, and metadata |
65+
| `get_data_source_schema` | Gets the schema (columns and their Power Fx types) for a specific data source in the current authoring session |
66+
| `list_apis` | Lists all available APIs (connectors) in the current authoring session |
67+
| `list_controls` | Lists all available Power Apps controls in the current authoring session |
68+
| `list_data_sources` | Lists all available data sources in the current authoring session |
69+
| `sync_canvas` | Syncs the current coauthoring session state from the server to a local directory, writing all YAML files |
70+
71+
## Security
72+
73+
Your credentials are always handled securely through the official Azure Identity SDK - we never store or manage tokens directly.
74+
75+
MCP is a new and developing standard. As with all new technology standards, you should review the security of any systems that integrate with MCP servers, such as MCP hosts, clients, agents, AI applications, and models and confirm that they comply with system requirements, standards, and expectations. You should follow Microsoft security guidance for MCP servers, including enabling Entra ID authentication, secure token management, and network isolation. Refer to Microsoft Security Documentation for details.
76+
77+
78+
## License
79+
See the [LICENSE](../../LICENSE) file for license information.

0 commit comments

Comments
 (0)