IoT device management engine for ADK-Rust Enterprise agents
IoT MCP Server
IoT device management engine for ADK-Rust Enterprise agents. Provides 22 MCP tools covering the full IoT lifecycle — device registry, telemetry ingestion, remote commands, alert rules with auto-triggering, digital twins with drift detection, fleet management, OTA firmware updates, and geofencing with haversine breach detection. Zero configuration, no external broker required.
Architecture
Key Principles
- Full device lifecycle — register, monitor, command, update, decommission
- Auto-alerting — telemetry ingestion automatically evaluates alert rules and triggers alerts
- Digital twins — reported vs desired state with drift detection
- Fleet operations — group devices and send bulk commands
- OTA management — firmware versioning and rollout tracking
- Geofencing — haversine distance calculation for breach detection
- Zero configuration — starts immediately with no MQTT broker or cloud dependency
Tools (22)
Device Registry (4)
| Tool | Description |
|------|-------------|
| device_register | Register device (sensor, actuator, gateway, edge) with location, tags, coordinates |
| device_list | List all devices with online/offline status summary |
| device_get | Get device details including twin state and recent telemetry |
| device_decommission | Decommission device, remove from active fleet |
Telemetry (2)
| Tool | Description |
|------|-------------|
| telemetry_ingest | Ingest metrics (temperature, humidity, pressure, voltage, etc). Auto-triggers alerts |
| telemetry_query | Query telemetry history by device, optional metric filter, configurable limit |
Remote Commands (2)
| Tool | Description |
|------|-------------|
| command_send | Send command to device (reboot, configure, update_firmware, calibrate) |
| command_list | List command history for a device with execution status |
Alert Rules (3)
| Tool | Description |
|------|-------------|
| alert_rule_create | Create alert rule (metric + condition + threshold). Conditions: gt, lt, gte, lte, eq |
| alert_rule_list | List all alert rules |
| alert_list | List triggered alerts (breaches) with device, metric, value vs threshold |
Digital Twins (2)
| Tool | Description |
|------|-------------|
| twin_update | Update desired state — device reconciles reported vs desired |
| twin_get | Get twin state with drift detection (keys where reported != desired) |
Fleet Management (3)
| Tool | Description |
|------|-------------|
| fleet_create | Create fleet group (logical grouping for bulk operations) |
| fleet_list | List all fleet groups |
| fleet_command | Send command to all devices in a fleet |
OTA Firmware (3)
| Tool | Description |
|------|-------------|
| ota_firmware_create | Register firmware version (URL, checksum, target type) |
| ota_deploy | Deploy firmware to devices, track rollout |
| ota_list | List OTA deployments and status |
Geofencing (2)
| Tool | Description |
|------|-------------|
| geofence_create | Create circular geofence (lat, lng, radius) for devices |
| geofence_check | Check device position against geofences — haversine breach detection |
Dashboard (1)
| Tool | Description |
|------|-------------|
| dashboard | Summary: device counts by status, alert count, telemetry rate, fleet count |
Installation
cargo install mcp-iot
Client Configuration
{
"mcpServers": {
"iot": { "command": "mcp-iot" }
}
}
Quick Start
1. Register devices
{"name": "device_register", "arguments": {"name": "Temp Sensor A1", "device_type": "sensor", "protocol": "mqtt", "location": "Warehouse 3", "lat": -1.286, "lng": 36.817, "tags": ["temperature", "warehouse"]}}
{"name": "device_register", "arguments": {"name": "Door Actuator B2", "device_type": "actuator", "location": "Gate 1"}}
2. Set up alert rules
{"name": "alert_rule_create", "arguments": {"name": "High Temp Alert", "metric": "temperature", "condition": "gt", "threshold": 45.0}}
{"name": "alert_rule_create", "arguments": {"name": "Low Battery", "metric": "voltage", "condition": "lt", "threshold": 3.2}}
3. Ingest telemetry (auto-triggers alerts)
{"name": "telemetry_ingest", "arguments": {"device_id": "dev_abc123", "metrics": {"temperature": 47.5, "humidity": 62.0, "voltage": 3.8}}}
Response: alerts triggered automatically if thresholds breached.
4. Digital twin management
{"name": "twin_update", "arguments": {"device_id": "dev_abc123", "desired": {"reporting_interval": 30, "mode": "low_power"}}}
{"name": "twin_get", "arguments": {"device_id": "dev_abc123"}}
5. Fleet operations
{"name": "fleet_create", "arguments": {"name": "Warehouse Sensors", "device_ids": ["dev_abc123", "dev_def456"]}}
{"name": "fleet_command", "arguments": {"fleet_id": "fleet_xyz", "command": "reboot"}}
6. Geofencing
{"name": "geofence_create", "arguments": {"name": "Warehouse Zone", "lat": -1.286, "lng": 36.817, "radius_m": 500, "device_ids": ["dev_abc123"]}}
{"name": "geofence_check", "arguments": {"device_id": "dev_abc123", "lat": -1.290, "lng": 36.820}}
IoT Flow
device_register --> telemetry_ingest --> alert_rule_create
| |
twin_update alert triggered
| |
twin_get alert_list
|
fleet_create --> fleet_command
|
ota_firmware_create --> ota_deploy
|
geofence_create --> geofence_check (breach?)
Competitive Comparison
| Feature | AWS IoT Core | Azure IoT Hub | GCP IoT | Us | |---------|:-:|:-:|:-:|:-:| | Device registry | ✅ | ✅ | ✅ | ✅ | | Telemetry ingestion | ✅ | ✅ | ✅ | ✅ | | Remote commands | ✅ | ✅ | ✅ | ✅ | | Alert rules | ✅ | ✅ | ✅ | ✅ | | Digital twins | ✅ | ✅ | ❌ | ✅ | | Fleet management | ✅ | ✅ | ❌ | ✅ | | OTA updates | ✅ | ✅ | ❌ | ✅ | | Geofencing | ❌ | ❌ | ❌ | ✅ | | Auto-alert on ingest | ❌ | ❌ | ❌ | ✅ | | Drift detection | ❌ | ❌ | ❌ | ✅ | | Zero config | ❌ | ❌ | ❌ | ✅ | | Open source | ❌ | ❌ | ❌ | ✅ | | No cloud dependency | ❌ | ❌ | ❌ | ✅ |
Error Codes
| Code | Meaning |
|------|---------|
| DEVICE_NOT_FOUND | Device ID does not exist |
| FLEET_NOT_FOUND | Fleet ID does not exist |
| FIRMWARE_NOT_FOUND | Firmware ID does not exist |
Integration
| Server | How it connects |
|--------|----------------|
| mcp-observability | Forward telemetry as metrics |
| mcp-messaging | Send alert notifications |
| mcp-workflow | Trigger workflows on alerts |
| mcp-maps | Geofence visualization |
License
Apache-2.0
Part of the ADK-Rust Enterprise MCP server ecosystem.
Built with ❤️ by Zavora AI