Discovery, status and config reads work out of the box; anything that changes a device — including the restart and factory-reset tools — is behind one environment flag. The risk label on every tool means you can see which is which before calling it.
An IoT server that scans your local network for OpenBK and Tasmota devices, reads and changes their state over HTTP or MQTT, and adds dedicated tool sets for OpenHASP panels and Hikvision doorbells.
- iot_discover_devices, iot_list_devices, iot_check_device and iot_find_device_by_name for finding what is on the network
- iot_get_device_info, iot_get_full_info, iot_get_device_power and iot_get_wifi_config for reading state
- iot_set_power, iot_set_brightness, iot_set_name, iot_set_flags, iot_set_gpio, iot_configure_mqtt and iot_start_ha_discovery for changes
- iot_mqtt_publish, iot_mqtt_get_state and iot_mqtt_build_command_topic for the MQTT path
- A full OpenHASP set: status, config and pages, screenshots, file download and upload, page navigation, JSONL object creation, backlight, telnet and a composite health score
- Hikvision doorbell tools: device info, snapshots, motion and event configuration, gate relay, and a full pipeline trace
- describe_iot_capabilities, which lists the tools, manifests and transports so an agent can orient itself
- Every tool labelled READ, WRITE or DESTRUCTIVE
Docker in host-network mode is the intended path, since nmap scanning and direct device HTTP need the local network; Python 3.11+ works too, with nmap installed. MQTT_BROKER plus a scan range are the settings that matter. Write and destructive tools stay disabled until ENABLE_WRITE_OPERATIONS is set to 1. It serves SSE on port 9101, with health on 9100 and a REST view on 9102.
One command — docker compose up -d
