[ResilienceManagement] Onboard read-only get commands (namespace: resilience)#2948
Open
LavishSingal wants to merge 10 commits into
Open
[ResilienceManagement] Onboard read-only get commands (namespace: resilience)#2948LavishSingal wants to merge 10 commits into
LavishSingal wants to merge 10 commits into
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR onboards the new Azure Resilience Management toolset (Azure.Mcp.Tools.ResilienceManagement, namespace resilience) into Azure MCP, providing the initial read-only (get + list) command surface across goals, usage plans, drills, and recovery resources.
Changes:
- Adds the
Azure.Mcp.Tools.ResilienceManagementtoolset (service layer + models) and registers it withAzure.Mcp.Server. - Introduces read-only commands for goals (templates/assignments/resources), usage plans (and enrollments), drills (and runs/resources), and recovery (plans/resources/jobs).
- Adds unit test scaffolding and updates tool consolidation + command documentation.
Reviewed changes
Copilot reviewed 64 out of 64 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/UsagePlans/UsagePlanGetCommandTests.cs | Unit tests for usage plan get/list behaviors |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/UsagePlans/Enrollments/UsagePlanEnrollmentGetCommandTests.cs | Unit tests for enrollment get/list behaviors |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Recovery/Plans/Resources/RecoveryResourceGetCommandTests.cs | Unit tests for recovery plan member get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Recovery/Plans/RecoveryPlanGetCommandTests.cs | Unit tests for recovery plan get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Recovery/Jobs/Resources/RecoveryJobResourceGetCommandTests.cs | Unit tests for recovery job target get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Recovery/Jobs/RecoveryJobGetCommandTests.cs | Unit tests for recovery job get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Goals/Templates/GoalTemplateGetCommandTests.cs | Unit tests for goal template get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Goals/Resources/GoalResourceGetCommandTests.cs | Unit tests for goal assignment member get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Goals/Assignments/GoalAssignmentGetCommandTests.cs | Unit tests for goal assignment get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Drills/Runs/Resources/DrillRunResourceGetCommandTests.cs | Unit tests for drill run target get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Drills/Runs/DrillRunGetCommandTests.cs | Unit tests for drill run get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Drills/Resources/DrillResourceGetCommandTests.cs | Unit tests for drill target get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Drills/DrillGetCommandTests.cs | Unit tests for drill get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Azure.Mcp.Tools.ResilienceManagement.Tests.csproj | Adds new test project for the toolset |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Services/ResilienceManagementService.cs | Implements ARM interactions and mapping for resilience read-only operations |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Services/IReseilienceManagementService.cs | Service interface for resilience operations |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/ResilienceManagementSetup.cs | Registers the toolset services and command group hierarchy |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/UsagePlans/UsagePlanGetOption.cs | CLI options model for usage plan get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/UsagePlans/Enrollments/UsagePlanEnrollmentGetOption.cs | CLI options model for enrollment get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/ResilienceManagementOptionDefinitions.cs | Shared option definition for service-group |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Recovery/Plans/Resources/RecoveryResourceGetOption.cs | CLI options model for recovery plan resource get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Recovery/Plans/RecoveryPlanGetOption.cs | CLI options model for recovery plan get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Recovery/Jobs/Resources/RecoveryJobResourceGetOption.cs | CLI options model for recovery job resource get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Recovery/Jobs/RecoveryJobGetOption.cs | CLI options model for recovery job get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Goals/Templates/GoalTemplateGetOption.cs | CLI options model for goal template get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Goals/Resources/GoalResourceGetOption.cs | CLI options model for goal resource get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Goals/Assignments/GoalAssignmentGetOption.cs | CLI options model for goal assignment get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Drills/Runs/Resources/DrillRunResourceGetOption.cs | CLI options model for drill run resource get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Drills/Runs/DrillRunGetOption.cs | CLI options model for drill run get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Drills/Resources/DrillResourceGetOption.cs | CLI options model for drill resource get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Drills/DrillGetOption.cs | CLI options model for drill get/list |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/UsagePlanKind.cs | Enum model for usage plan kind |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/UsagePlanInfo.cs | Response model for usage plan details |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/UsagePlanEnrollmentInfo.cs | Response model for enrollment details |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/ResourceSummary.cs | Shared id/name list item model |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/GoalTemplateKind.cs | Enum model for goal template kind |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/GoalTemplateInfo.cs | Response model for goal template details |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/GoalResourceInfo.cs | Response model for goal member details |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/GoalRequirement.cs | Enum model for goal requirement |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/GoalAssignmentKind.cs | Enum model for goal assignment kind |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/GoalAssignmentInfo.cs | Response model for goal assignment details |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/GlobalUsings.cs | Adds toolset-wide global usings |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/UsagePlans/UsagePlanGetCommand.cs | Implements usage plan get/list command |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/UsagePlans/Enrollments/UsagePlanEnrollmentGetCommand.cs | Implements usage plan enrollment get/list command |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/ResilienceManagementJsonContext.cs | Registers JSON source-gen types for AOT |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Recovery/Plans/Resources/RecoveryResourceGetCommand.cs | Implements recovery plan resource get/list command |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Recovery/Plans/RecoveryPlanGetCommand.cs | Implements recovery plan get/list command |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Recovery/Jobs/Resources/RecoveryJobResourceGetCommand.cs | Implements recovery job resource get/list command |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Recovery/Jobs/RecoveryJobGetCommand.cs | Implements recovery job get/list command |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Goals/Templates/GoalTemplateGetCommand.cs | Implements goal template get/list command |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Goals/Resources/GoalResourceGetCommand.cs | Implements goal resource get/list command |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Goals/Assignments/GoalAssignmentGetCommand.cs | Implements goal assignment get/list command |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/Runs/Resources/DrillRunResourceGetCommand.cs | Implements drill run resource get/list command |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/Runs/DrillRunGetCommand.cs | Implements drill run get/list command |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/Resources/DrillResourceGetCommand.cs | Implements drill resource get/list command |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/DrillGetCommand.cs | Implements drill get/list command |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Azure.Mcp.Tools.ResilienceManagement.csproj | Adds new toolset project + package references |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/AssemblyInfo.cs | Enables InternalsVisibleTo for tests |
| servers/Azure.Mcp.Server/src/Resources/consolidated-tools.json | Adds a consolidated tool mapping for the resilience namespace commands |
| servers/Azure.Mcp.Server/src/Program.cs | Registers the new ResilienceManagement area setup |
| servers/Azure.Mcp.Server/docs/azmcp-commands.md | Documents the new resilience commands |
| servers/Azure.Mcp.Server/Azure.Mcp.Server.slnx | Adds the toolset projects to the server solution |
| Microsoft.Mcp.slnx | Adds the toolset projects to the repo solution |
| Directory.Packages.props | Pins Azure.ResourceManager.ResilienceManagement dependency version |
Comment on lines
+56
to
+60
| var subscriptionId = _subscriptionService.IsSubscriptionId(subscription) | ||
| ? subscription | ||
| : (await _subscriptionService.GetSubscription(subscription, tenant, retryPolicy, cancellationToken)).Data.SubscriptionId; | ||
|
|
||
| ArmClient armClient = await CreateArmClientAsync(tenantIdOrName: tenant, cancellationToken: cancellationToken); |
Comment on lines
+103
to
+107
| var subscriptionId = _subscriptionService.IsSubscriptionId(subscription) | ||
| ? subscription | ||
| : (await _subscriptionService.GetSubscription(subscription, tenant, retryPolicy, cancellationToken)).Data.SubscriptionId; | ||
|
|
||
| ArmClient armClient = await CreateArmClientAsync(tenantIdOrName: tenant, cancellationToken: cancellationToken); |
Comment on lines
+125
to
+129
| var subscriptionId = _subscriptionService.IsSubscriptionId(subscription) | ||
| ? subscription | ||
| : (await _subscriptionService.GetSubscription(subscription, tenant, retryPolicy, cancellationToken)).Data.SubscriptionId; | ||
|
|
||
| ArmClient armClient = await CreateArmClientAsync(tenantIdOrName: tenant, cancellationToken: cancellationToken); |
| ? subscription | ||
| : (await _subscriptionService.GetSubscription(subscription, tenant, retryPolicy, cancellationToken)).Data.SubscriptionId; | ||
|
|
||
| ArmClient armClient = await CreateArmClientAsync(tenantIdOrName: tenant, cancellationToken: cancellationToken); |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This reverts commit 2b7d416.
g2vinay
reviewed
Jun 26, 2026
g2vinay
left a comment
Contributor
There was a problem hiding this comment.
Missing updates in e2eTestPrompts.md
g2vinay
reviewed
Jun 26, 2026
g2vinay
left a comment
Contributor
There was a problem hiding this comment.
Missing a Changelog entry.
Follow the guidance in changelog-entries.md file to add a changelog.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Onboards the new Azure Resilience Management toolset (
Azure.Mcp.Tools.ResilienceManagement, command namespaceresilience) as a new Azure MCP toolset.This is PR 1 of the rollout plan in #2894 — the read-only surface across all command groups (all
getcommands). It establishes the toolset plumbing end-to-end (IAreaSetup,BaseAzureResourceService, non-standardserviceGrouppath-parameter handling, pagination, parameter shapes, telemetry, and test scaffolding) with zero blast radius. Authoring (create-or-update) and lifecycle/action commands follow in PR 2 and PR 3 respectively.All commands are read-only (
ReadOnly = true,Destructive = false,Idempotent = true). Eachgetcommand returns details for a named resource, or lists resources (id + name only) when the name is omitted.Commands added:
resilience goal template get(GoalTemplates_List/GoalTemplates_Get)resilience goal assignment get(GoalAssignments_List/GoalAssignments_Get)resilience goal resource get(GoalResources_List/GoalResources_Get)resilience usageplan get(UsagePlans_ListBySubscription/UsagePlans_ListByResourceGroup/UsagePlans_Get)resilience usageplan enrollment get(Enrollments_List/Enrollments_Get)resilience drill get(Drills_List/Drills_Get)resilience drill resource get(DrillResources_List/DrillResources_Get)resilience drill run get(DrillRuns_List/DrillRuns_Get)resilience drill run resource get(DrillRunResources_List/DrillRunResources_Get)resilience recovery plan get(RecoveryPlans_List/RecoveryPlans_Get)resilience recovery plan resource get(RecoveryResources_List/RecoveryResources_Get)resilience recovery job get(RecoveryJobs_List/RecoveryJobs_Get)resilience recovery job resource get(RecoveryJobResources_List/RecoveryJobResources_Get)GitHub issue number?
Part of #2894
Pre-merge Checklist
servers/Azure.Mcp.Server/README.mdand/orservers/Fabric.Mcp.Server/README.mddocumentationREADME.mdchanges running the script./eng/scripts/Process-PackageReadMe.ps1. See Package READMEToolDescriptionEvaluatorand obtained a score of0.4or more and a top 3 ranking for all related test promptsconsolidated-tools.jsonbreaking-changelabelservers/Azure.Mcp.Server/docs/azmcp-commands.md./eng/scripts/Update-AzCommandsMetadata.ps1to update tool metadata inazmcp-commands.md(required for CI)servers/Azure.Mcp.Server/docs/e2eTestPrompts.mdcrypto mining, spam, data exfiltration, etc.)/azp run mcp - pullrequest - liveto run Live Test Pipeline