From e17787fa0f77cf5b801888669bc34ac33d6ce2a0 Mon Sep 17 00:00:00 2001 From: Martin Date: Tue, 10 Feb 2026 21:40:18 -0500 Subject: [PATCH] [FIX] Fields were not populated for scripts --- custom_components/mcp_bridge/__init__.py | 25 ++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/custom_components/mcp_bridge/__init__.py b/custom_components/mcp_bridge/__init__.py index 81a9afb..5d94d2e 100644 --- a/custom_components/mcp_bridge/__init__.py +++ b/custom_components/mcp_bridge/__init__.py @@ -81,6 +81,27 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: if not state: continue + # Get script name from entity_id (e.g., "script.my_script" -> "my_script") + script_name = entity_id.split(".", 1)[1] + + # Get service definition from services registry to access fields + service_data = hass.services.async_services().get("script", {}).get(script_name) + + fields = {} + if service_data and hasattr(service_data, "fields"): + # Convert service fields to our format + fields = { + field_name: { + "name": field_info.get("name", field_name), + "description": field_info.get("description", ""), + "required": field_info.get("required", False), + "example": field_info.get("example"), + "default": field_info.get("default"), + "selector": field_info.get("selector"), + } + for field_name, field_info in service_data.fields.items() + } + scripts.append( { "entity_id": entity_id, @@ -88,7 +109,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: "friendly_name", entity_id ), "description": state.attributes.get("description", ""), - "fields": state.attributes.get("fields", {}), + "fields": fields, } ) @@ -164,4 +185,4 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: ) _LOGGER.info("MCP Bridge services registered successfully") - return True + return True \ No newline at end of file