MCP Tools in Drills: drill-check-resync-readiness, drill_validate-for-execution, drill_resource_add-or-update, drill_run_mark-complete - #3370
Conversation
|
Azure Pipelines: Successfully started running 1 pipeline(s). There may be pipelines that require an authorized user to comment /azp run to run. |
Tool Description Evaluator ResultsTest 1Expected Tool: Results
Test 2Expected Tool: Results
Test 3Expected Tool: Results
Test 4Expected Tool: Results
Test 5Expected Tool: Results
Test 6Expected Tool: Results
Test 7Expected Tool: Results
Test 8Expected Tool: Results
|
There was a problem hiding this comment.
Pull request overview
This PR adds a new Azure Resilience Management drill operation to start a resync readiness check, wiring it through the tool command surface, service layer, JSON serialization (AOT), and documentation and tests so it is available through azmcp and the Azure MCP Server tool catalog.
Changes:
- Added
resilience drill check-resync-readinesscommand (and mapped toolresilience_drill_check-resync-readiness) plus service implementation and result model. - Added unit and tool-level tests for validation, success, and RequestFailedException message sanitization, and updated recorded-test assets tag.
- Updated Azure MCP Server docs and metadata: consolidated-tools mapping,
azmcp-commands.md,e2eTestPrompts.md, and a changelog entry.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/ResilienceManagementCommandTests.cs | Adds an end-to-end tool invocation test for the new drill resync readiness check. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/Drills/DrillCheckResyncReadinessCommandTests.cs | Adds unit tests covering required option validation, happy path, invalid path segments, and RequestFailedException sanitization. |
| tools/Azure.Mcp.Tools.ResilienceManagement/tests/Azure.Mcp.Tools.ResilienceManagement.Tests/assets.json | Updates the recorded test assets tag to the new snapshot. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Services/ResilienceManagementService.cs | Implements CheckDrillResyncReadinessAsync using the ARM drill resource operation. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Services/IResilienceManagementService.cs | Adds the new service contract method. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/ResilienceManagementSetup.cs | Registers the new command and adds it to the drill command group. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Options/Drills/DrillCheckResyncReadinessOption.cs | Introduces the options POCO for the new command. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Models/DrillResyncReadinessResult.cs | Adds a result model for operation ID and completion state. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/ResilienceManagementJsonContext.cs | Registers new result types for source-generated JSON serialization. |
| tools/Azure.Mcp.Tools.ResilienceManagement/src/Commands/Drills/DrillCheckResyncReadinessCommand.cs | Adds the new tool command, validation, and error message shaping. |
| servers/Azure.Mcp.Server/src/Resources/consolidated-tools.json | Maps the new drill readiness check tool into the consolidated “readiness” tool and updates its description. |
| servers/Azure.Mcp.Server/docs/e2eTestPrompts.md | Adds prompt entries for the new tool. |
| servers/Azure.Mcp.Server/docs/azmcp-commands.md | Adds the new CLI command documentation block. |
| servers/Azure.Mcp.Server/changelog-entries/dhruvbharuka-drill-check-resync-readiness.yml | Adds a changelog entry for the new tool. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| var drills = new CommandGroup("drill", "Resilience drill operations - Commands for listing, getting, and checking resync readiness of resilience drills for an Azure service group."); | ||
| resilienceManagement.AddSubGroup(drills); | ||
|
|
||
| drills.AddCommand<DrillGetCommand>(serviceProvider); | ||
| drills.AddCommand<DrillCheckResyncReadinessCommand>(serviceProvider); |
| [CommandMetadata( | ||
| Id = "9136d433-50df-4e08-bc6a-660881d39421", | ||
| Name = "check-resync-readiness", | ||
| Title = "Check Resilience Drill Resync Readiness", | ||
| Description = "Checks whether a resilience drill is ready to resync in a service group. Starts a resync and readiness check that resyncs the drill's configuration and evaluates whether the drill is ready, then returns the operation ID for the started check. Use this to run a resync readiness check and confirm drill readiness before running the drill.", |
…ecord all four drill tool live tests Clubs the drill resource add-or-update and drill run mark-complete MCP tools into this PR alongside resync-readiness and validate-for-execution. Updates recordings tag to Azure.Mcp.Tools.ResilienceManagement.Tests_d8b926b9e3 covering all four recorded integration tests.
What does this PR do?
[Provide a clear, concise description of the changes][Add additional context, screenshots, or information that helps reviewers]GitHub issue number?
[Link to the GitHub issue this PR addresses]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