From f5573362c54348dadae724f3d899764c87a2097f Mon Sep 17 00:00:00 2001 From: Chathurangi Shyalika Date: Wed, 24 Jun 2026 15:10:12 -0400 Subject: [PATCH 1/3] Updating iot agent tools to filter assets and add description --- src/servers/iot/main.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/servers/iot/main.py b/src/servers/iot/main.py index eb3bc89e..65cb7261 100644 --- a/src/servers/iot/main.py +++ b/src/servers/iot/main.py @@ -410,22 +410,24 @@ def asset_sensors( @mcp.tool(title="List Registry Assets") def registry_assets( - site_name: str, assettype: Optional[str] = None + site_name: Optional[str] = None, assettype: Optional[str] = None ) -> Union[RegistryAssetsResult, ErrorResult]: """List assets from the registry with metadata (assettype, vintage, sensor count), optionally filtered by assettype (e.g. 'PUMP', 'COMPRESSOR'). Complements assets(), which returns bare ids derived from telemetry.""" + site_name = site_name or "MAIN" + if not _is_known_site(site_name): return ErrorResult(error=f"unknown site {site_name}") if not asset_db: return ErrorResult(error="CouchDB not connected") try: - selector: Dict[str, Any] = {"doctype": "asset"} + selector: Dict[str, Any] = {"doctype": "asset", "siteid": site_name} if assettype: selector["assettype"] = assettype res = asset_db.find( selector, - fields=["assetnum", "assettype", "vintage", "sensors"], + fields=["assetnum", "assettype", "description", "vintage", "sensors"], limit=100000, ) rows = sorted( @@ -433,6 +435,7 @@ def registry_assets( { "asset_id": d["assetnum"], "assettype": d.get("assettype"), + "description": d.get("description"), "vintage": d.get("vintage"), "n_sensors": len(d.get("sensors", [])), } From 4fa1561746e81bea5c50525e0875d66628753e67 Mon Sep 17 00:00:00 2001 From: Chathurangi Shyalika Date: Wed, 24 Jun 2026 15:35:35 -0400 Subject: [PATCH 2/3] Updating iot agent tools to filter assets and add description --- src/servers/iot/main.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/servers/iot/main.py b/src/servers/iot/main.py index 65cb7261..c07e6dc0 100644 --- a/src/servers/iot/main.py +++ b/src/servers/iot/main.py @@ -415,7 +415,6 @@ def registry_assets( """List assets from the registry with metadata (assettype, vintage, sensor count), optionally filtered by assettype (e.g. 'PUMP', 'COMPRESSOR'). Complements assets(), which returns bare ids derived from telemetry.""" - site_name = site_name or "MAIN" if not _is_known_site(site_name): return ErrorResult(error=f"unknown site {site_name}") From e08f83f9cd9bdc586f6eacf354cd8d384940cd99 Mon Sep 17 00:00:00 2001 From: Chathurangi Shyalika Date: Wed, 24 Jun 2026 15:48:35 -0400 Subject: [PATCH 3/3] Updating iot agent tools to filter assets and add description Signed-off-by: Chathurangi Shyalika --- src/servers/iot/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/iot/main.py b/src/servers/iot/main.py index c07e6dc0..7d2ba944 100644 --- a/src/servers/iot/main.py +++ b/src/servers/iot/main.py @@ -410,7 +410,7 @@ def asset_sensors( @mcp.tool(title="List Registry Assets") def registry_assets( - site_name: Optional[str] = None, assettype: Optional[str] = None + site_name: str, assettype: Optional[str] = None ) -> Union[RegistryAssetsResult, ErrorResult]: """List assets from the registry with metadata (assettype, vintage, sensor count), optionally filtered by assettype (e.g. 'PUMP', 'COMPRESSOR'). Complements assets(), which returns bare ids derived from