fix(homeassistant): its MCP tools register, stating read_only as the server requires (#6355)
CI / lint (push) Successful in 2s
CI / unit (push) Successful in 1m39s
CI / integration (push) Successful in 1m51s
CI / publish (push) Successful in 19s

Without it the plugin's hook raised at boot and left it with no tools. The
test's stand-in for register gave read_only a default, so now both arguments
are required there too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-30 23:25:51 -04:00
co-authored by Claude Opus 5.5
parent fe9bba1042
commit 9c9e14e79c
2 changed files with 5 additions and 2 deletions
+1 -1
View File
@@ -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)
+4 -1
View File
@@ -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)}