
Add Mcscopilot
Wire a Microsoft Copilot Studio agent into a Power Apps code app so prompts and agent replies flow through a registered data source.
Overview
Add Microsoft Copilot Studio is an agent skill for the Build phase that registers and configures the Copilot Studio connector on a Power Apps code app.
Install
npx skills add https://github.com/microsoft/power-platform-skills --skill add-mcscopilotWhat is this skill?
- 5-step workflow: memory bank → add connector → configure → build → update memory bank
- Runs `npx power-apps add-data-source -a microsoftcopilotstudio -c <connection-id>` after resolving the connection
- Delegates connection discovery to `/list-connections` with fallback to Power Apps Connections UI
- User-invocable skill with Read, Edit, Write, Bash, and task tooling for guided setup
- Points to shared cross-cutting instructions and connector reference docs in the plugin
- 5-step workflow from memory bank through build
- Uses npx power-apps add-data-source for microsoftcopilotstudio
Adoption & trust: 79 installs on skills.sh; 349 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You have a Power Apps code app and a Copilot Studio agent, but no registered data source or connection ID to invoke the agent from app logic.
Who is it for?
Builders already on Power Platform with an environment ID in `power.config.json` who want agent chat inside a code app.
Skip if: Teams not using Power Apps or Copilot Studio, or apps that only need generic OpenAI APIs without Dataverse connections.
When should I use this skill?
Adding Microsoft Copilot Studio connector when invoking agents, sending prompts, or integrating agent responses in a Power Apps code app.
What do I get? / Deliverables
After the workflow, the app has a microsoftcopilotstudio data source tied to a live connection and memory-bank notes for the chosen agent configuration.
- microsoftcopilotstudio data source added to the app project
- Updated memory-bank.md with connector and agent configuration notes
Recommended Skills
Journey fit
Connector registration and agent invocation are product-integration work done while building the app, not launch or operate tasks. Copilot Studio is added via `power-apps add-data-source` and connection IDs—classic third-party and platform integration on the build shelf.
How it compares
Use instead of manually guessing connector names in the Power Apps CLI without listing connections first.
Common Questions / FAQ
Who is add-mcscopilot for?
Solo and indie developers building Power Apps code apps who need Microsoft Copilot Studio agents as first-class data sources.
When should I use add-mcscopilot?
During Build when integrating Copilot Studio—after you can open the target environment and before you ship agent-driven UI that calls the connector.
Is add-mcscopilot safe to install?
It can edit project files and run shell commands; review the Security Audits panel on this page and verify connection IDs before applying changes in production tenants.
SKILL.md
READMESKILL.md - Add Mcscopilot
**📋 Shared Instructions: [shared-instructions.md](${CLAUDE_PLUGIN_ROOT}/shared/shared-instructions.md)** - Cross-cutting concerns. # Add Microsoft Copilot Studio ## Workflow 1. Check Memory Bank → 2. Add Connector → 3. Configure → 4. Build → 5. Update Memory Bank --- ### Step 1: Check Memory Bank Check for `memory-bank.md` per [shared-instructions.md](${CLAUDE_PLUGIN_ROOT}/shared/shared-instructions.md). ### Step 2: Add Connector **First, find the connection ID** (see [connector-reference.md](${CLAUDE_PLUGIN_ROOT}/shared/connector-reference.md)): Run the `/list-connections` skill. Find the Microsoft Copilot Studio connection in the output. If none exists, direct the user to create one using the environment-specific Connections URL — construct it from the active environment ID in context (from `power.config.json` or a prior step): `https://make.powerapps.com/environments/<environment-id>/connections` → **+ New connection** → search for the connector → Create. ```bash npx power-apps add-data-source -a microsoftcopilotstudio -c <connection-id> ``` ### Step 3: Configure Ask the user which Copilot Studio agent they want to invoke and what operations they need. **Agent Setup Prerequisites** (manual steps the user must complete in Copilot Studio): 1. **Publish the agent**: In Copilot Studio, click Channels → select Teams → add to Teams → click Publish. 2. **Get the agent name**: Under Channels, click "Web app". The connection string URL contains the agent name. Example: `https://...api.powerplatform.com/copilotstudio/dataverse-backed/authenticated/bots/cr3e1_myAgent/conversations?...` — the agent name is `cr3e1_myAgent`. **ExecuteCopilotAsyncV2** -- execute an agent and wait for the response: Use the `ExecuteCopilotAsyncV2` operation (path: `/proactivecopilot/executeAsyncV2`). This is the **only** endpoint that reliably returns agent responses synchronously. It is the same endpoint used by Power Automate's "Execute Agent and wait" action. ```typescript const result = await MicrosoftCopilotStudioService.ExecuteCopilotAsyncV2({ message: "Your prompt or data here", // Can be a JSON string notificationUrl: "https://notificationurlplaceholder" // Required by API but unused; any URL works }); // Response structure: // result.responses — Array of response strings from the agent // result.conversationId — The conversation ID // result.lastResponse — The last response from the agent // result.completed — Boolean indicating if the agent finished ``` **Important:** Agents often return responses as JSON strings. Parse the `responses` array to extract meaningful data: ```typescript const agentResponse = result.responses?.[0]; if (agentResponse) { const parsed = JSON.parse(agentResponse); // Extract specific fields, e.g., parsed.trend_summary } ``` Use `Grep` to find specific methods in the generated service file (generated files can be very large — see [connector-reference.md](${CLAUDE_PLUGIN_ROOT}/shared/connector-reference.md#inspecting-large-generated-files)). #### Known Issues - **ExecuteCopilot** (`/execute`) -- fire-and-forget, only returns `ConversationId`, not the actual response. Do NOT use this. - **ExecuteCopilotAsync** (`/executeAsync`) -- returns 502 "Cannot read server response" errors. Do NOT use this. - **Conversation turn model** (`/conversations/{ConversationId}`) -- only works after `/execute`, which doesn't provide responses. Do NOT use this. - **Response casing varies** -- check all variations: `conversationId`, `ConversationId`, `conversationID`. ### Step 4: Build ```bash npm run build ``` Fix TypeScript errors before proceeding.