iot_discover_devicesLABSCO SUMMARY
Read-only until you say otherwise, on a surface that can reboot your hardware.
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.
What it is
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.
What you get
- 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
Requirements
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.
Setup effort
One command — docker run -d --name local-home-devices-mcp --network host -e MQTT_BROKER=192.168.1.100 -e START_IP=192.168.1.1 -e END_IP=192.168.1.254 -v local-home-devices-data:/app/data ghcr.io/paulomac1000/local-home-devices-mcp:latest
USE CASES
Finding what is actually on the network
Scan the range for OpenBK and Tasmota devices, then list them from cache instead of rescanning.
Turning something on from the conversation
Set a channel on, off or toggle, or set a brightness level, once writes are enabled.
Working out why a wall panel is dark
Read the panel status, analyse the backlight for known issues, and get a composite health score.
Tracing a doorbell that stopped triggering
Run the full pipeline trace from container to events to snapshots, and check the motion configuration.
65 tools
Listed in project docs. Your client may show a different list.
iot_list_devicesiot_check_deviceiot_find_device_by_nameiot_get_device_infoiot_get_device_poweriot_get_wifi_configiot_set_poweriot_set_brightnessiot_restart_deviceiot_set_flagsiot_set_nameiot_configure_mqttiot_set_gpioiot_execute_commandiot_start_ha_discoveryiot_get_full_infodescribe_iot_capabilitiesiot_mqtt_publishiot_mqtt_get_stateiot_mqtt_build_command_topicopenhasp_detectopenhasp_statusopenhasp_check_backlightopenhasp_get_configopenhasp_get_pagesopenhasp_screenshotopenhasp_download_fileopenhasp_upload_fileopenhasp_ota_updateopenhasp_page_setopenhasp_jsonl_sendopenhasp_telnetopenhasp_backlight_setopenhasp_config_setopenhasp_idle_resetopenhasp_restartopenhasp_factory_resetopenhasp_validate_configopenhasp_healthopenhasp_hardware_testhikvision_container_statushikvision_container_logshikvision_device_infohikvision_check_vmdhikvision_take_snapshothikvision_get_motion_confighikvision_get_event_confighikvision_get_alarm_serverhikvision_isapi_healthhikvision_pipeline_diagnosehikvision_open_gatehikvision_set_motion_detectionhikvision_snapshot_to_filehikvision_restart_containeriot_tuya_cloud_listiot_tuya_cloud_refresh_keysiot_tuya_cloud_controliot_tuya_get_dpsiot_tuya_set_dpiot_tuya_detect_versioniot_tuya_verify_dpsiot_tuya_scan_portsiot_tuya_removeiot_tuya_monitorBEFORE YOU INSTALL
What to know first
Tools you get
65 tools named in the project's documentation. ENABLE_WRITE_OPERATIONS defaults to 0, so every [WRITE] or [DESTRUCTIVE] tool, such as iot_set_power or hikvision_open_gate, is inert until set to 1. The 10 Tuya tools also need Tuya cloud API credentials (Access ID and Access Secret).
Requires
Docker (recommended) or Python 3.11+
INSTALLATION
Connect your client
Server setup
docker run -d --name local-home-devices-mcp --network host -e MQTT_BROKER=192.168.1.100 -e START_IP=192.168.1.1 -e END_IP=192.168.1.254 -v local-home-devices-data:/app/data ghcr.io/paulomac1000/local-home-devices-mcp:latestMCP Clients
Claude Desktop
{
"mcpServers": {
"local-home-devices": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://localhost:9101/sse"
]
}
}
}Other routes
REST API
curl -X POST http://localhost:9102/api/tools/iot_list_devices