Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

IoT Solution Developer Plugin

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.


What the plugin does

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.


Installation

Prerequisites

  • 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).

Steps

  1. Copy the plugin folder (or reference it from the registry) into your workspace or user-level Copilot plugins directory.

  2. Register the MCP servers — the .mcp.json file 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"
      }
    }
  }
}
  1. Verify the plugin is loaded: open Copilot chat and confirm the IoT Solution Developer Agent appears in the agent list.

Agents

IoT Solution Developer Agent

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)

Skills

azure-iothub-service

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".


iot-simulator

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".


MCP Servers

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)

Plugin metadata

Field Value
Name iot-solution-developer
Version 1.0
Author Jon Mikel Inza