From code-apps-preview
Adds Microsoft Copilot Studio connector to Power Apps code apps using pac CLI. Configures ExecuteCopilotAsyncV2 for invoking agents, sending prompts, and parsing responses.
How this skill is triggered — by the user, by Claude, or both
Slash command
/code-apps-preview:add-mcscopilotsonnetThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**📋 Shared Instructions: [shared-instructions.md](${CLAUDE_PLUGIN_ROOT}/shared/shared-instructions.md)** - Cross-cutting concerns.
📋 Shared Instructions: shared-instructions.md - Cross-cutting concerns.
Check for memory-bank.md per shared-instructions.md.
First, find the connection ID (see 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.
pwsh -NoProfile -Command "pac code add-data-source -a microsoftcopilotstudio -c <connection-id>"
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):
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.
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:
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).
/execute) -- fire-and-forget, only returns ConversationId, not the actual response. Do NOT use this./executeAsync) -- returns 502 "Cannot read server response" errors. Do NOT use this./conversations/{ConversationId}) -- only works after /execute, which doesn't provide responses. Do NOT use this.conversationId, ConversationId, conversationID.npm run build
Fix TypeScript errors before proceeding. Do NOT deploy yet.
Update memory-bank.md with: connector added, agent name configured, configured operations, build status.
npx claudepluginhub microsoft/power-platform-skills --plugin code-apps-previewGuides adding connector actions to Copilot Studio agents: uses Bash connector-lookup tool for operations, walks through UI portal authentication, delegates to YAML editing.
Builds multichannel agents for Microsoft 365, Teams, and Copilot Studio using TypeScript SDK with Express hosting, AgentApplication routing, and Azure OpenAI streaming.
Builds multichannel enterprise agents for Microsoft 365, Teams, and Copilot Studio using the Microsoft Agents SDK with aiohttp hosting, AgentApplication routing, streaming responses, and MSAL-based authentication.