diff --git a/plugins/homeassistant/mcp_tools.py b/plugins/homeassistant/mcp_tools.py index 544fb3b..ffdaaae 100644 --- a/plugins/homeassistant/mcp_tools.py +++ b/plugins/homeassistant/mcp_tools.py @@ -108,4 +108,4 @@ async def mcp_overview(db) -> list[dict]: def register_tools(register) -> None: register(get_home_assistant, role=UserRole.viewer, read_only=True) - register(update_home_assistant, role=UserRole.admin) + register(update_home_assistant, role=UserRole.admin, read_only=False) diff --git a/tests/plugins/homeassistant/test_service.py b/tests/plugins/homeassistant/test_service.py index 444c4cb..936d928 100644 --- a/tests/plugins/homeassistant/test_service.py +++ b/tests/plugins/homeassistant/test_service.py @@ -129,7 +129,10 @@ def test_the_overview_names_what_needs_a_look_and_no_more(): def test_reading_is_open_to_a_viewer_and_installing_is_for_an_admin(): seen = {} - homeassistant_plugin.register_mcp_tools(lambda fn, role, read_only=False: seen.update({fn.__name__: (role, read_only)})) + + def register(fn, *, role, read_only): # both required, as on the server + seen[fn.__name__] = (role, read_only) + homeassistant_plugin.register_mcp_tools(register) assert seen == {"get_home_assistant": (UserRole.viewer, True), "update_home_assistant": (UserRole.admin, False)}