On boarding IoTHub toolset#3005
Open
jichang1 wants to merge 4 commits into
Open
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Onboards a new Azure IoT Hub toolset into the Azure MCP Server, including a first command (azmcp iothub hub get) backed by Resource Graph queries, plus test infrastructure and documentation updates so the tool is discoverable and runnable in CI/live test flows.
Changes:
- Added the
iothub hub getcommand, options, models, service implementation, and JSON source-gen context for AOT-friendly output. - Added unit tests and recorded live tests plus Bicep/ARM test resource templates and post-deploy script.
- Wired the toolset into the server (area registration + consolidated tool mapping) and updated docs/changelog/CODEOWNERS.
Reviewed changes
Copilot reviewed 28 out of 28 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/Azure.Mcp.Tools.IoTHub/tests/test-resources.json | Generated ARM template for IoTHub test resources. |
| tools/Azure.Mcp.Tools.IoTHub/tests/test-resources.bicep | Bicep template deploying an IoT Hub and RBAC for test execution. |
| tools/Azure.Mcp.Tools.IoTHub/tests/test-resources-post.ps1 | Post-deployment hook to write test settings / confirm outputs. |
| tools/Azure.Mcp.Tools.IoTHub/tests/Azure.Mcp.Tools.IoTHub.UnitTests/IoTHub/IoTHubGetCommandTests.cs | Unit tests validating binding, serialization, and error handling for iothub hub get. |
| tools/Azure.Mcp.Tools.IoTHub/tests/Azure.Mcp.Tools.IoTHub.UnitTests/Azure.Mcp.Tools.IoTHub.UnitTests.csproj | Adds the IoTHub unit test project. |
| tools/Azure.Mcp.Tools.IoTHub/tests/Azure.Mcp.Tools.IoTHub.LiveTests/IoTHubCommandTests.cs | Recorded live tests exercising list/get flows via the tool name iothub_hub_get. |
| tools/Azure.Mcp.Tools.IoTHub/tests/Azure.Mcp.Tools.IoTHub.LiveTests/Azure.Mcp.Tools.IoTHub.LiveTests.csproj | Adds the IoTHub live test project and references required test infrastructure. |
| tools/Azure.Mcp.Tools.IoTHub/tests/Azure.Mcp.Tools.IoTHub.LiveTests/assets.json | Enables recorded-test playback via azure-sdk-assets tag metadata. |
| tools/Azure.Mcp.Tools.IoTHub/src/Services/IoTHubService.cs | Implements IoT Hub discovery/details via BaseAzureResourceService Resource Graph queries. |
| tools/Azure.Mcp.Tools.IoTHub/src/Services/IIoTHubService.cs | Defines the IoTHub service interface contract. |
| tools/Azure.Mcp.Tools.IoTHub/src/Options/IoTHub/IoTHubGetOptions.cs | Adds CLI option POCO for iothub hub get. |
| tools/Azure.Mcp.Tools.IoTHub/src/Models/IoTHubDescription.cs | Adds the response model returned from the get/list command. |
| tools/Azure.Mcp.Tools.IoTHub/src/IoTHubSetup.cs | Registers the IoTHub area, DI services, and command groups. |
| tools/Azure.Mcp.Tools.IoTHub/src/GlobalUsings.cs | Introduces global usings for the toolset project. |
| tools/Azure.Mcp.Tools.IoTHub/src/Commands/IoTHubJsonContext.cs | Registers response models in a source-generated JSON context for AOT safety. |
| tools/Azure.Mcp.Tools.IoTHub/src/Commands/IoTHub/IoTHubGetCommand.cs | Adds the azmcp iothub hub get command implementation and tool metadata. |
| tools/Azure.Mcp.Tools.IoTHub/src/Azure.Mcp.Tools.IoTHub.csproj | New IoTHub toolset project definition and dependencies. |
| tools/Azure.Mcp.Tools.IoTHub/src/AssemblyInfo.cs | InternalsVisibleTo for unit/live test projects. |
| servers/Azure.Mcp.Server/src/Resources/consolidated-tools.json | Adds iothub_hub_get into the “messaging services details” consolidated tool mapping. |
| servers/Azure.Mcp.Server/src/Program.cs | Registers the IoTHub area in the Azure MCP Server. |
| servers/Azure.Mcp.Server/README.md | Documents IoTHub capabilities and example prompts. |
| servers/Azure.Mcp.Server/docs/e2eTestPrompts.md | Adds e2e prompts for iothub_hub_get. |
| servers/Azure.Mcp.Server/docs/azmcp-commands.md | Adds CLI documentation entry for azmcp iothub hub get. |
| servers/Azure.Mcp.Server/changelog-entries/jichang1-add-iothub-docs-integration.yml | Changelog entry for IoTHub onboarding/doc + integration updates. |
| servers/Azure.Mcp.Server/Azure.Mcp.Server.slnx | Includes IoTHub toolset + test projects in the server solution. |
| Microsoft.Mcp.slnx | Includes IoTHub toolset + test projects in the repo solution. |
| Directory.Packages.props | Adds central package version for Azure.ResourceManager.IotHub. |
| .github/CODEOWNERS | Adds ownership/labels for the new IoTHub toolset path. |
…ion and consolidated tools metadata
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?
[Provide a clear, concise description of the changes]On boarding Azure IoT Hub to Azure MCP Server
[Add additional context, screenshots, or information that helps reviewers]GitHub issue number?
[Link to the GitHub issue this PR addresses]#2917
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