Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
259f59c
first iteration
adishiritwick Aug 11, 2026
2ec3526
2nd iteration
adishiritwick Aug 12, 2026
dc354e3
Merge remote-tracking branch 'upstream/main' into adishi/ROupdate
adishiritwick Aug 12, 2026
1eb009e
copilot comments
adishiritwick Aug 12, 2026
49edf17
up
adishiritwick Aug 12, 2026
b2b0136
up
adishiritwick Aug 12, 2026
c88432a
up
adishiritwick Aug 13, 2026
83a731c
up
adishiritwick Aug 13, 2026
302864b
Merge remote-tracking branch 'upstream/main' into adishi/ROupdate
adishiritwick Aug 14, 2026
2fd2030
Merge remote-tracking branch 'upstream/main' into adishi/ROupdate
adishiritwick Aug 16, 2026
2e4336c
Merge remote-tracking branch 'upstream/main' into adishi/ROupdate
adishiritwick Aug 16, 2026
9a6061d
Fix spelling validation for recovery plan commands
adishiritwick Aug 16, 2026
63830ef
up
adishiritwick Aug 17, 2026
6084008
up
adishiritwick Aug 18, 2026
6e1f924
Merge branch 'main' of https://github.com/microsoft/mcp into adishi/R…
adishiritwick Aug 18, 2026
37abc52
up
adishiritwick Aug 18, 2026
b12b171
up
adishiritwick Aug 18, 2026
b4f63a4
up
adishiritwick Aug 18, 2026
f6aa4b8
up
adishiritwick Aug 18, 2026
f1fa434
Merge remote-tracking branch 'upstream/main' into adishi/ROupdate
adishiritwick Aug 18, 2026
38ff39c
up
adishiritwick Aug 18, 2026
68b82e3
up
adishiritwick Aug 19, 2026
1ae0e66
Merge branch 'main' of https://github.com/microsoft/mcp into adishi/R…
adishiritwick Aug 19, 2026
f7df699
up
adishiritwick Aug 19, 2026
4f9392d
up
adishiritwick Aug 19, 2026
4856897
up
adishiritwick Aug 19, 2026
de376b1
up
adishiritwick Aug 19, 2026
4ebaf4d
up
adishiritwick Aug 19, 2026
f93ac9e
changes
adishiritwick Aug 19, 2026
76cc815
up
adishiritwick Aug 19, 2026
074b6de
up
adishiritwick Aug 19, 2026
bf2ed1a
up
adishiritwick Aug 19, 2026
605de0a
up
adishiritwick Aug 19, 2026
6b62ec1
Merge branch 'main' of https://github.com/microsoft/mcp into adishi/R…
adishiritwick Aug 20, 2026
983ae38
fixes
adishiritwick Aug 20, 2026
05cc1bb
Refactor resilience recovery plan identifiers and improve error handling
adishiritwick Aug 21, 2026
521177a
Merge branch 'main' of https://github.com/microsoft/mcp into adishi/R…
adishiritwick Aug 21, 2026
1cedec2
up
adishiritwick Aug 21, 2026
c8d6ba4
up
adishiritwick Aug 22, 2026
8f92000
up
adishiritwick Aug 22, 2026
56fd545
up
adishiritwick Aug 22, 2026
748d512
Merge remote-tracking branch 'upstream/main' into adishi/enhanceROupdate
adishiritwick Aug 24, 2026
992dae1
up
adishiritwick Aug 24, 2026
539f5ce
up
adishiritwick Aug 24, 2026
feda88e
Merge remote-tracking branch 'upstream/main' into adishi/enhanceROupdate
adishiritwick Aug 25, 2026
92ea05c
up
adishiritwick Aug 25, 2026
80d8dcf
up
adishiritwick Aug 25, 2026
7f71e38
up
adishiritwick Aug 25, 2026
0ad0c4d
Merge branch 'main' of https://github.com/microsoft/mcp into adishi/e…
adishiritwick Aug 26, 2026
bfa98c6
Merge branch 'main' of https://github.com/microsoft/mcp into adishi/e…
adishiritwick Aug 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
changes:
- section: "Features Added"
description: "Added support for creating, replacing, and removing additional recovery groups and their manual or Custom Runbook pre/post actions through the 'azmcp resilience recoveryplan create' command."
- section: "Bugs Fixed"
description: "Aligned resilience recovery group and action input validation with the service API contract."
19 changes: 17 additions & 2 deletions servers/Azure.Mcp.Server/docs/azmcp-commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -3822,18 +3822,33 @@ azmcp resilience recoveryplan get --subscription <subscription> \
--service-group <service-group> \
[--name <name>]

# Create or fully update a Zonal resilience recovery plan. Ask the customer to select an identity type; do not assume SystemAssigned or another default. Identity types can switch on update, but an existing user-assigned identity cannot be replaced with a different user-assigned identity. The plan description must be 5 to 50 characters and is required on create; it is preserved when omitted on update.
# Create or update a Zonal resilience recovery plan's identity, recovery group structure, and recovery group pre/post actions. Use recoveryplan resource update instead for recovery resource membership and protection settings. Ask the customer to select an identity type; do not assume SystemAssigned or another default. Identity types can switch on update, but an existing user-assigned identity cannot be replaced with a different user-assigned identity. The plan description must be 5 to 50 characters and is required on create; it is preserved when omitted on update. Additional groups and group actions are preserved when omitted and replaced when supplied.
# ✅ Destructive | ✅ Idempotent | ❌ OpenWorld | ❌ ReadOnly | ❌ Secret | ❌ LocalRequired
azmcp resilience recoveryplan create --service-group <service-group> \
--recovery-plan <recovery-plan> \
--plan-type Zonal \
[--plan-description <plan-description>] \
--identity-type <SystemAssigned|UserAssigned|SystemAndUserAssigned> \
[--user-assigned-identity <user-assigned-identity-resource-id>] \
[--default-group-description <default-group-description>]
[--default-group-description <default-group-description>] \
[--default-group-pre-actions '<json-array>'] \
[--default-group-post-actions '<json-array>'] \
[--additional-groups '<json-array>']

# Provide --user-assigned-identity when --identity-type is UserAssigned or SystemAndUserAssigned.
# Directly replacing one user-assigned identity with another is not currently supported.
# Additional group orderId values must be unique and sequential starting at 1. groupUniqueId is optional.
# Additional group objects may contain preActions and postActions arrays. Default group actions use the dedicated options above.
# Before adding an action, collect and explain each value to the customer:
# 1. type: ManualAction pauses for a person to complete a step; CustomRunbook runs an Azure Automation runbook.
# 2. name: a 3 to 24 character customer-facing action name containing only letters, numbers, or hyphens.
# 3. description: optional action instructions up to 100 characters; an empty value is allowed.
# 4. timeoutInMinutes: a positive whole number defining how long the action may run.
# 5. actionResourceId: required only for CustomRunbook; use the full Microsoft.Automation/automationAccounts/runbooks resource ID.
# 6. parameters: optional for CustomRunbook; use a JSON object whose values are strings.
# ManualAction example: [{"type":"ManualAction","name":"Confirm-dependencies","description":"Verify dependencies are ready","timeoutInMinutes":30}]
# CustomRunbook example: [{"type":"CustomRunbook","name":"Start-dependencies","description":"Start application dependencies","timeoutInMinutes":30,"actionResourceId":"/subscriptions/{subscription}/resourceGroups/{resourceGroup}/providers/Microsoft.Automation/automationAccounts/{account}/runbooks/{runbook}","parameters":{"environment":"production"}}]
# Omit an action option or property to preserve existing actions. Specify [] to clear that action list.

# Delete a resilience recovery plan. Returns deleted=false when the plan does not exist.
# ✅ Destructive | ✅ Idempotent | ❌ OpenWorld | ❌ ReadOnly | ❌ Secret | ❌ LocalRequired
Expand Down
3 changes: 3 additions & 0 deletions servers/Azure.Mcp.Server/docs/e2eTestPrompts.md
Original file line number Diff line number Diff line change
Expand Up @@ -961,6 +961,9 @@ The `Interaction` column describes whether a prompt can invoke its tool immediat
| resilience_recoveryplan_create | Set up a Zonal recovery plan named <recovery_plan_name> in service group <service_group>. Use a system-assigned managed identity, description <plan_description>, and default recovery group description <default_group_description> | none |
| resilience_recoveryplan_create | Create Zonal recovery plan <recovery_plan_name> in service group <service_group> and attach user-assigned managed identity <user_assigned_identity_resource_id>. Use <plan_description> for the plan description and <default_group_description> for the default recovery group | none |
| resilience_recoveryplan_create | Change recovery plan <recovery_plan_name> in service group <service_group> to a system-assigned managed identity and description <plan_description>. Keep its Zonal plan type and existing recovery groups | none |
| resilience_recoveryplan_create | Split recovery plan <recovery_plan_name> in service group <service_group> into its default recovery group and one additional group described as <additional_group_description>. Preserve its existing plan type and managed identity | none |
| resilience_recoveryplan_create | Update recovery plan <recovery_plan_name> in service group <service_group>. Add a manual pre-action named <manual_action_name> with timeout <timeout_minutes> to the default group, and add a post-action script using Automation runbook <runbook_resource_id> to additional recovery group <recovery_group_id>. Preserve its existing plan type and managed identity | none |
| resilience_recoveryplan_create | Add a pre-action to the default group of recovery plan <recovery_plan_name> in service group <service_group>. I have not chosen the action values yet. Explain the accepted values and ask me for the action type, name, optional description, timeout, and any runbook-specific values one at a time before updating the plan. Preserve its existing plan type and managed identity | none |
| resilience_recoveryplan_create | Change a system-assigned recovery plan <recovery_plan_name> in service group <service_group> to use a user-assigned managed identity | clarification-required |
| resilience_recoveryplan_create | Update recovery plan <recovery_plan_name> in service group <service_group> to use both its system-assigned identity and user-assigned managed identity <user_assigned_identity_resource_id>. Preserve its existing plan settings | none |
| resilience_recoveryplan_checkreadiness | Check whether recovery plan <recovery_plan_name> and its protected resources are ready for recovery operations in service group <service_group> | none |
Expand Down
Loading
Loading