A GitHub Copilot plugin that provides AI-assisted tooling for IoT solution development. It bundles a purpose-built agent, two skills, and two MCP servers so you can simulate IoT devices and operate Azure IoT Hub directly from Copilot chat.
| Capability | Description |
|---|---|
| IoT Device Simulation | Start, stop, and manage virtual IoT devices (individually or in fleets) that provision via Azure IoT Hub Device Provisioning Service (DPS) and send telemetry — no physical hardware required. |
| Azure IoT Hub Service | Interact with a real IoT Hub: send C2D direct method calls and messages, read/update device twin tags and properties, manage the device registry, and schedule/monitor IoT Hub Jobs. |
All features are backed by dedicated MCP servers and guided by skills that instruct the agent on exactly which tools to call.
- GitHub Copilot (VS Code extension or GitHub.com)
- The two MCP server executables placed under
%USERPROFILE%\.mcp\servers\:
| MCP Server | Expected path |
|---|---|
azure-iothub-service-mcp |
%USERPROFILE%\.mcp\servers\azure-iothub-service-mcp\server\JMI.AI.MCP.IoTHub.exe |
iot-simulator-mcp |
%USERPROFILE%\.mcp\servers\iot-simulator-mcp\server\JMI.AI.MCP.IoTSimulator.exe |
Docker is required for the IoT simulator MCP server (simulated devices run as containers).
-
Copy the plugin folder (or reference it from the registry) into your workspace or user-level Copilot plugins directory.
-
Register the MCP servers — the
.mcp.jsonfile at the plugin root is picked up automatically by Copilot when the plugin is active:
{
"servers": {
"azure-iothub-service-mcp": {
"type": "stdio",
"command": "C:\\Users\\<you>\\.mcp\\servers\\azure-iothub-service-mcp\\server\\JMI.AI.MCP.IoTHub.exe",
"args": ["--McpSettings:Transport", "Stdio", "--IoTHub:ConnectionString", "TO BE COMPLETED"]
},
"iot-simulator-mcp": {
"type": "stdio",
"command": "C:\\Users\\<you>\\.mcp\\servers\\iot-simulator-mcp\\server\\JMI.AI.MCP.IoTSimulator.exe",
"args": ["--McpSettings:Transport", "Stdio"]
}
}
}or
{
"servers": {
"azure-iothub-service-mcp": {
"type": "stdio",
"command": "C:\\Users\\<you>\\.mcp\\servers\\azure-iothub-service-mcp\\server\\JMI.AI.MCP.IoTHub.exe",
"env": {
"McpSettings__Transport": "Stdio",
"IoTHub__ConnectionString": "TO BE COMPLETED"
}
},
"iot-simulator-mcp": {
"type": "stdio",
"command": "C:\\Users\\<you>\\.mcp\\servers\\iot-simulator-mcp\\server\\JMI.AI.MCP.IoTSimulator.exe",
"env": {
"McpSettings__Transport": "Stdio"
}
}
}
}- Verify the plugin is loaded: open Copilot chat and confirm the IoT Solution Developer Agent appears in the agent list.
File: agents/iot-solution-developer.agent.md
The main entry point for all IoT-related tasks. It combines the two skills below and exposes the tools of both MCP servers.
Use when: simulate device, send telemetry, start simulator, provision device with DPS, fleet simulation, send C2D message, direct method, device twin operations, manage devices, reboot device, find running devices, update firmware tag, rotate device keys, schedule IoT Hub job.
Tools available:
- All tools from
azure-iothub-service-mcp - All tools from
iot-simulator-mcp - Microsoft Docs MCP (
microsoft.docs.mcp)
File: skills/azure-iothub-service/SKILL.md
Full-featured skill for operating Azure IoT Hub Service through the azure-iothub-service-mcp MCP Server.
Capabilities:
| Area | Examples |
|---|---|
| C2D Direct Methods | Reboot device, trigger firmware update, get diagnostics |
| C2D Messages | Fire-and-forget notifications to a device message queue |
| Device Twin | Read/update tags and reported properties; patch twins across a fleet |
| Device Management | Search, enable, disable, rotate keys/secrets, delete devices |
| IoT Hub Jobs | Schedule and monitor twin patch or direct method jobs across a fleet |
Trigger phrases: "reboot device X", "find sensors with this specific criteria", "update the firmware tag on these devices", "run a twin patch across a fleet", "send a C2D message to device Y".
File: skills/iot-simulator/SKILL.md
Full-featured skill for simulating IoT devices and their interactions with Azure IoT Hub, backed by the iot-simulator-mcp MCP Server.
Capabilities:
| Area | Examples |
|---|---|
| Start/stop devices | Start a single device or a named fleet; stop by deviceId or pattern |
| Fleet simulation | Launch many devices in one container (auto-named) or one container per device (custom IDs) |
| DPS provisioning | Provision simulated devices with DPS enrollment groups |
| Running devices | List all active simulators with status and last activity time |
| Telemetry & twin | Simulated devices send telemetry, receive C2D desired properties, and update their device twin |
Trigger phrases: "simulate 10 devices", "start a fleet of sensors", "provision a virtual device with DPS", "list running simulators", "stop all simulated devices".
| Server | Description |
|---|---|
azure-iothub-service-mcp |
Provides tools to interact with Azure IoT Hub (direct methods, C2D messages, device twin, device registry, jobs) |
iot-simulator-mcp |
Provides tools to manage simulated IoT device containers (start, stop, list, provision with DPS) |
| Field | Value |
|---|---|
| Name | iot-solution-developer |
| Version | 1.0 |
| Author | Jon Mikel Inza |