Skip to content
Back to skills

Add Mcscopilot

ASecurity

Adds Microsoft Copilot Studio connector to a Power Apps code app. Use when invoking Copilot Studio agents, sending prompts to agents, or integrating agent responses.

  • 969 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 27, 2026
developmenttypescriptbashapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add microsoft/power-platform-skills --skill add-mcscopilot --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Add Mcscopilot?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Add Mcscopilot
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/microsoft-add-mcscopilot/badge)](https://www.skillsdirectory.com/skills/microsoft-add-mcscopilot)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: add-mcscopilot
description: Adds Microsoft Copilot Studio connector to a Power Apps code app. Use when invoking Copilot Studio agents, sending prompts to agents, or integrating agent responses.
user-invocable: true
allowed-tools: Read, Edit, Write, Grep, Glob, Bash, LSP, TaskCreate, TaskUpdate, TaskList, TaskGet, AskUserQuestion, Skill
model: sonnet
---

**πŸ“‹ 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. Do NOT deploy yet.

### Step 5: Update Memory Bank

Update `memory-bank.md` with: connector added, agent name configured, configured operations, build status.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…