add-action
Guide users through adding a new connector action to a Copilot Studio agent. Connector…
Edit an existing action (TaskDialog) in a Copilot Studio agent. Supports connector actions and MCP server actions. Modify inputs, outputs, descriptions, connection mode, and other properties.
$ npx -y skills add microsoft/skills-for-copilot-studio --skill edit-action --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/edit-actionContext preview
The summary Claude sees to decide when to auto-load this skill.
Edit an existing action (TaskDialog) in a Copilot Studio agent. Supports connector actions and MCP server actions. Modify inputs, outputs, descriptions, connection mode, and other properties.
user-invocable: false description: Edit an existing action (TaskDialog) in a Copilot Studio agent. Supports connector actions and MCP server actions. Modify inputs, outputs, descriptions, connection mode, and other properties. argument-hint: <what to change, e.g. "add description to SharePoint inputs"> allowed-tools: Bash(node *connector-lookup.bundle.js *), Bash(node *schema-lookup.bundle.js *), Read, Edit, Glob context: fork agent: copilot-studio-author
Edit an existing action (`kind: TaskDialog`) in a Copilot Studio agent. Supports both regular connector actions (`InvokeConnectorTaskAction`) and MCP server actions (`InvokeExternalAgentTaskAction`). Uses connector definitions to understand the full operation schema (inputs, outputs, types) and action templates as structural reference.
Help the user find the right connector and operation before they go to the UI. Use the connector lookup tool. Important: The connector lookup script only covers a subset of connectors (run `list` to see which ones). If the user's requested connector is not in the list, tell the user they need to find and add the connector action entirely through the Copilot Studio portal, then ask them to pull again the files locally. Once pulled, `/copilot-studio:edit-action` can still be used to customize the YAML.
When the connector IS available, use the lookup tool to help the user before they go to the UI:
node ${CLAUDE_SKILL_DIR}/../../scripts/connector-lookup.bundle.js list # List connectors
node ${CLAUDE_SKILL_DIR}/../../scripts/connector-lookup.bundle.js operations <connector> # List operations
node ${CLAUDE_SKILL_DIR}/../../scripts/connector-lookup.bundle.js operation <connector> <opId> # Full input/output details
node ${CLAUDE_SKILL_DIR}/../../scripts/connector-lookup.bundle.js search <keyword> # Search operationsUse schema lookup for structural properties:
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js summary TaskDialog
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js summary InvokeConnectorTaskAction
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js summary InvokeExternalAgentTaskAction
node ${CLAUDE_SKILL_DIR}/../../scripts/schema-lookup.bundle.js summary ModelContextProtocolMetadata1. **Auto-discover the agent directory**:
Glob: **/agent.mcs.yml
If multiple agents found, ask which one.
2. **Find the action file** to edit:
Glob: <agent-dir>/actions/*.mcs.yml
Read the action file. If the user's request is ambiguous and multiple actions exist, list them and ask which one.
3. **Identify the connector and operation**:
node ${CLAUDE_SKILL_DIR}/../../scripts/connector-lookup.bundle.js operation <connector> <operationId> Read: ${CLAUDE_SKILL_DIR}/sharepoint-actions.mdThis covers OData filter syntax, the critical `"'$filter'"` quoting pattern, which inputs should be Manual vs Automatic, and dynamic output handling.
4. **Determine the action type** from the YAML:
5. **Read the appropriate template** for structural reference:
Read: ${CLAUDE_SKILL_DIR}/../../templates/actions/connector-action.mcs.yml Read: ${CLAUDE_SKILL_DIR}/../../templates/actions/mcp-action.mcs.ymlUse this alongside the connector-lookup output from step 3 to understand the YAML structure and available inputs/outputs.
6. **Make the requested edits** using the Edit tool. Common modifications:
Update `description` on `AutomaticTaskInput` entries to improve how the orchestrator fills them:
inputs:
- kind: AutomaticTaskInput
propertyName: body
description: The email body content in HTML format # <-- edit thisCross-reference the connector definition to see all available input properties. Add new ones or remove unnecessary ones:
# Add a new input from the connector definition
- kind: AutomaticTaskInput
propertyName: importance
description: The importance level of the email (Low, Normal, High) # Change from automatic to manual (hardcode a value)
- kind: ManualTaskInput
propertyName: timeZone
value: "(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna"Add or remove output properties. Cross-reference the connector definition for available outputs:
outputs:
- propertyName: id
description: The unique ID of the created itemThese control how the orchestrator understands and routes to this action:
modelDisplayName: Send a Teams message modelDescription: Posts a message to a Teams chat or channel on behalf of th
A plugin for Claude Code, GitHub Copilot CLI, and VS Code that enables authoring, testing, and troubleshooting Microsoft Copilot Studio STANDARD agents through YAML files — directly from your terminal or editor.
Repo: microsoft/skills-for-copilot-studio
Guide users through adding a new connector action to a Copilot Studio agent. Connector…
Generate and insert an Adaptive Card into a Copilot Studio topic using AdaptiveCardPrompt.…
Add generative answer nodes (SearchAndSummarizeContent or AnswerQuestionWithAI) to a Copilot…
Add a global variable to a Copilot Studio agent. Use when the user needs a variable that…
Add a knowledge source (public website or SharePoint) to a Copilot Studio agent. Use when the…
Add or modify a node in an existing Copilot Studio topic. Use when the user asks to add a…