Skip to content

Commit 215bf32

Browse files
authored
Add Data Source and API descriptions to Canvas App planning step (#82)
* Add data source and api to planning step * bump version
1 parent ea8ce15 commit 215bf32

3 files changed

Lines changed: 58 additions & 5 deletions

File tree

plugins/canvas-apps/.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "canvas-apps",
3-
"version": "1.0.3",
3+
"version": "1.0.4",
44
"description": "Build Power Apps Canvas Apps using the Canvas Authoring MCP server.",
55
"author": {
66
"name": "Microsoft",

plugins/canvas-apps/agents/canvas-app-planner.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
name: canvas-app-planner
33
description: >-
44
Plans and designs a Canvas App. Discovers available controls, APIs, and data sources;
5+
calls describe_api for relevant connectors and get_data_source_schema for connected data sources;
56
designs the aesthetic direction and screen plan; presents plan for user approval via plan mode;
67
calls describe_control for all controls in the design; writes
78
App.pa.yaml and canvas-app-plan.md for canvas-screen-builder agents to consume.
@@ -19,6 +20,8 @@ tools:
1920
- mcp__canvas-authoring__list_apis
2021
- mcp__canvas-authoring__list_data_sources
2122
- mcp__canvas-authoring__describe_control
23+
- mcp__canvas-authoring__describe_api
24+
- mcp__canvas-authoring__get_data_source_schema
2225
---
2326

2427
# Canvas App Planner
@@ -56,6 +59,13 @@ After all three complete, summarize findings:
5659
- Which controls are most relevant to the user's app requirements
5760
- Which data sources (if any) should drive the app's data layer
5861

62+
Then, based on the user's requirements, call the detail tools for resources that will be used:
63+
64+
- `describe_api` — call for each connector that the app will use, to get its operations and parameters
65+
- `get_data_source_schema` — call for each data source that the app will use, to get its columns and Power Fx types
66+
67+
These calls can be made in parallel. Collect the full output of each for embedding in the plan document.
68+
5969
## Step 3 — Create Task Tracking
6070

6171
Call `TaskCreate` once per task:
@@ -136,6 +146,22 @@ Use this structure:
136146
- Data sources: [names or "none connected"]
137147
- Connectors: [names or "none connected"]
138148

149+
## Data Source Schemas
150+
[For each data source used in the app, embed the FULL output of get_data_source_schema]
151+
[Screen builders will reference column names and Power Fx types from here]
152+
[Omit entirely if no data sources are used]
153+
154+
### [DataSourceName]
155+
[Full get_data_source_schema output]
156+
157+
## API Details
158+
[For each connector used in the app, embed the FULL output of describe_api]
159+
[Screen builders will reference operation names and parameters from here]
160+
[Omit entirely if no connectors are used]
161+
162+
### [ApiName]
163+
[Full describe_api output]
164+
139165
## Screens
140166
| Screen | File | Purpose | Key Controls |
141167
|--------|------|---------|--------------|

plugins/canvas-apps/agents/canvas-edit-planner.md

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
name: canvas-edit-planner
33
description: >-
44
Plans edits to an existing Canvas App. Reads current .pa.yaml files to understand
5-
the existing app; discovers new controls or APIs only if needed; presents an edit plan
6-
for user approval via plan mode; gathers describe_control output for any new controls;
7-
writes canvas-edit-plan.md for canvas-screen-editor agents.
5+
the existing app; discovers new controls or APIs only if needed; calls describe_api
6+
for any connectors involved and get_data_source_schema for any data sources involved;
7+
presents an edit plan for user approval via plan mode; gathers describe_control output
8+
for any new controls; writes canvas-edit-plan.md for canvas-screen-editor agents.
89
Called by edit-canvas-app for complex edits — not invoked directly by users.
910
color: orange
1011
tools:
@@ -19,6 +20,8 @@ tools:
1920
- mcp__canvas-authoring__list_apis
2021
- mcp__canvas-authoring__list_data_sources
2122
- mcp__canvas-authoring__describe_control
23+
- mcp__canvas-authoring__describe_api
24+
- mcp__canvas-authoring__get_data_source_schema
2225
---
2326

2427
# Canvas Edit Planner
@@ -64,7 +67,15 @@ app, call the relevant discovery tools:
6467
- `list_apis` — if new connectors are needed
6568
- `list_data_sources` — if new data sources are needed
6669

67-
Skip discovery calls for edits that only modify existing controls, properties, or formulas.
70+
Skip list discovery calls for edits that only modify existing controls, properties, or formulas.
71+
72+
Regardless of whether list discovery is needed, call the detail tools for any APIs or data
73+
sources that are involved in the edit (whether existing or new):
74+
75+
- `describe_api` — call for each connector referenced by the edit, to get its operations and parameters
76+
- `get_data_source_schema` — call for each data source referenced by the edit, to get its columns and Power Fx types
77+
78+
These calls can be made in parallel with any list discovery calls.
6879

6980
## Step 4 — Create Task Tracking
7081

@@ -163,6 +174,22 @@ Use this structure:
163174
| [Name] | [Name].pa.yaml | [description] |
164175
(omit this section if no new screens)
165176

177+
## Data Source Schemas
178+
[For each data source involved in the edit, embed the FULL output of get_data_source_schema]
179+
[Editors will reference column names and Power Fx types from here]
180+
[Omit entirely if no data sources are involved]
181+
182+
### [DataSourceName]
183+
[Full get_data_source_schema output]
184+
185+
## API Details
186+
[For each connector involved in the edit, embed the FULL output of describe_api]
187+
[Editors will reference operation names and parameters from here]
188+
[Omit entirely if no connectors are involved]
189+
190+
### [ApiName]
191+
[Full describe_api output]
192+
166193
## Control Definitions
167194
[For each NEW control type not already in the existing app, embed the FULL output of describe_control]
168195
[Editors will reference property names from here — do not summarize or abbreviate]

0 commit comments

Comments
 (0)