ha-mcp-dev 7.12.3.dev1932__tar.gz → 7.12.3.dev1934__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. {ha_mcp_dev-7.12.3.dev1932/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.12.3.dev1934}/PKG-INFO +1 -1
  2. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/pyproject.toml +1 -1
  3. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/server.py +1 -0
  4. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/backup.py +5 -1
  5. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_addons.py +2 -0
  6. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_areas.py +3 -0
  7. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_blueprints.py +6 -1
  8. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_bug_report.py +1 -0
  9. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_calendar.py +3 -0
  10. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_camera.py +1 -0
  11. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_categories.py +7 -1
  12. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_code.py +1 -0
  13. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_config_automations.py +3 -0
  14. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_config_dashboards.py +11 -2
  15. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_config_helpers.py +6 -1
  16. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_config_scenes.py +3 -0
  17. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_config_scripts.py +3 -0
  18. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_dashboard_screenshot.py +1 -0
  19. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_dev.py +10 -2
  20. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_energy.py +1 -0
  21. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_entities.py +3 -0
  22. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_filesystem.py +4 -0
  23. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_groups.py +7 -1
  24. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_hacs.py +2 -0
  25. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_history.py +1 -0
  26. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_integrations.py +7 -1
  27. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_labels.py +7 -1
  28. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_mcp_component.py +5 -1
  29. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_radio.py +1 -0
  30. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_registry.py +7 -1
  31. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_resources.py +3 -0
  32. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_search.py +3 -0
  33. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_service.py +16 -3
  34. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_services.py +1 -0
  35. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_system.py +11 -2
  36. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_themes.py +1 -0
  37. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_todo.py +12 -2
  38. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_traces.py +1 -0
  39. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_utility.py +2 -0
  40. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_voice_assistant.py +2 -0
  41. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_yaml_config.py +1 -0
  42. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_zones.py +12 -2
  43. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/transforms/categorized_search.py +7 -7
  44. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934/src/ha_mcp_dev.egg-info}/PKG-INFO +1 -1
  45. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/LICENSE +0 -0
  46. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/MANIFEST.in +0 -0
  47. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/README.md +0 -0
  48. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/setup.cfg +0 -0
  49. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/__init__.py +0 -0
  50. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/__main__.py +0 -0
  51. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/_pypi_marker +0 -0
  52. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/_version.py +0 -0
  53. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/auth/__init__.py +0 -0
  54. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/auth/consent_form.py +0 -0
  55. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/auth/provider.py +0 -0
  56. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/backup_manager.py +0 -0
  57. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/browser_landing.py +0 -0
  58. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/client/__init__.py +0 -0
  59. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/client/rest_client.py +0 -0
  60. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/client/supervisor_client.py +0 -0
  61. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/client/websocket_client.py +0 -0
  62. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/client/websocket_listener.py +0 -0
  63. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/config.py +0 -0
  64. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  65. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  66. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/dashboard_screenshot/content.py +0 -0
  67. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/dashboard_screenshot/paths.py +0 -0
  68. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  69. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/errors.py +0 -0
  70. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/llm_exposure.py +0 -0
  71. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/policy/__init__.py +0 -0
  72. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/policy/approval_queue.py +0 -0
  73. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/policy/evaluator.py +0 -0
  74. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/policy/handlers.py +0 -0
  75. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/policy/middleware.py +0 -0
  76. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/policy/model.py +0 -0
  77. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/policy/persistence.py +0 -0
  78. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/policy/value_sources.py +0 -0
  79. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/py.typed +0 -0
  80. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/read_only.py +0 -0
  81. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
  82. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
  83. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
  84. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
  85. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
  86. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
  87. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
  88. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
  89. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  90. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
  91. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  92. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
  93. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/appdaemon.md +0 -0
  94. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
  95. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/blueprint-guide.md +0 -0
  96. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  97. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  98. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  99. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  100. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  101. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  102. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  103. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/scenes.md +0 -0
  104. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  105. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  106. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/__init__.py +0 -0
  107. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/_handlers_advanced.py +0 -0
  108. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/_handlers_backups.py +0 -0
  109. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/_handlers_fs.py +0 -0
  110. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/_handlers_server.py +0 -0
  111. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/_handlers_theme.py +0 -0
  112. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/_handlers_tools.py +0 -0
  113. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/_persistence.py +0 -0
  114. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/_supervisor.py +0 -0
  115. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/_theme.py +0 -0
  116. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/_tools_meta.py +0 -0
  117. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/settings.css +0 -0
  118. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/settings.html +0 -0
  119. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/settings_ui/settings.js +0 -0
  120. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/smoke_test.py +0 -0
  121. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  122. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/strict_bps.py +0 -0
  123. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/__init__.py +0 -0
  124. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/auto_backup.py +0 -0
  125. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  126. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/component_api.py +0 -0
  127. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  128. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/device_control.py +0 -0
  129. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/enhanced.py +0 -0
  130. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/helpers.py +0 -0
  131. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/radio/__init__.py +0 -0
  132. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/radio/base.py +0 -0
  133. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/radio/matter.py +0 -0
  134. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/radio/thread.py +0 -0
  135. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/radio/zigbee.py +0 -0
  136. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/radio/zwave.py +0 -0
  137. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/reference_validator.py +0 -0
  138. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/registry.py +0 -0
  139. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  140. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  141. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  142. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  143. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  144. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  145. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  146. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  147. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  148. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  149. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/tools_updates.py +0 -0
  150. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/util_helpers.py +0 -0
  151. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/tools/validation_middleware.py +0 -0
  152. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/transforms/__init__.py +0 -0
  153. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  154. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/transport_security.py +0 -0
  155. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/update_check.py +0 -0
  156. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/utils/__init__.py +0 -0
  157. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/utils/config_hash.py +0 -0
  158. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/utils/data_paths.py +0 -0
  159. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/utils/domain_handlers.py +0 -0
  160. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  161. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  162. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/utils/operation_manager.py +0 -0
  163. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/utils/python_sandbox.py +0 -0
  164. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/utils/skill_loader.py +0 -0
  165. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/utils/usage_logger.py +0 -0
  166. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/visibility/__init__.py +0 -0
  167. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/visibility/model.py +0 -0
  168. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/visibility/persistence.py +0 -0
  169. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp/visibility/resolver.py +0 -0
  170. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
  171. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
  172. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
  173. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
  174. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
  175. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/tests/__init__.py +0 -0
  176. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/tests/test_constants.py +0 -0
  177. {ha_mcp_dev-7.12.3.dev1932 → ha_mcp_dev-7.12.3.dev1934}/tests/test_env_manager.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ha-mcp-dev
3
- Version: 7.12.3.dev1932
3
+ Version: 7.12.3.dev1934
4
4
  Summary: Home Assistant MCP Server - Complete control of Home Assistant through MCP
5
5
  Author-email: Julien <github@qc-h.net>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ha-mcp-dev"
7
- version = "7.12.3.dev1932"
7
+ version = "7.12.3.dev1934"
8
8
  description = "Home Assistant MCP Server - Complete control of Home Assistant through MCP"
9
9
  readme = "README.md"
10
10
  # Upper bound widened to <3.15 so the package installs on Home Assistant's
@@ -1349,6 +1349,7 @@ class HomeAssistantSmartMCPServer(EnhancedToolsMixin):
1349
1349
  name=SKILL_TOOL_NAME,
1350
1350
  description=tool_description,
1351
1351
  annotations={
1352
+ "openWorldHint": False,
1352
1353
  "readOnlyHint": True,
1353
1354
  "idempotentHint": True,
1354
1355
  "title": "Get Home Assistant Best Practices Skill Guide",
@@ -1054,7 +1054,11 @@ def register_backup_tools(
1054
1054
  @mcp.tool(
1055
1055
  description=manage_backup_description,
1056
1056
  tags={"System"},
1057
- annotations={"destructiveHint": True, "title": "Manage Backups"},
1057
+ annotations={
1058
+ "openWorldHint": False,
1059
+ "destructiveHint": True,
1060
+ "title": "Manage Backups",
1061
+ },
1058
1062
  )
1059
1063
  @log_tool_usage
1060
1064
  async def ha_manage_backup(
@@ -2572,6 +2572,7 @@ def register_addon_tools(mcp: Any, client: HomeAssistantClient, **kwargs: Any) -
2572
2572
  @mcp.tool(
2573
2573
  tags={"Add-ons"},
2574
2574
  annotations={
2575
+ "openWorldHint": True,
2575
2576
  "idempotentHint": True,
2576
2577
  "readOnlyHint": True,
2577
2578
  "title": "Get Add-ons",
@@ -2660,6 +2661,7 @@ def register_addon_tools(mcp: Any, client: HomeAssistantClient, **kwargs: Any) -
2660
2661
  @mcp.tool(
2661
2662
  tags={"Add-ons"},
2662
2663
  annotations={
2664
+ "openWorldHint": True,
2663
2665
  "destructiveHint": True,
2664
2666
  "idempotentHint": False,
2665
2667
  "readOnlyHint": False,
@@ -139,6 +139,7 @@ class AreaTools:
139
139
  name="ha_list_floors_areas",
140
140
  tags={"Areas & Floors"},
141
141
  annotations={
142
+ "openWorldHint": False,
142
143
  "idempotentHint": True,
143
144
  "readOnlyHint": True,
144
145
  "title": "List Floors and Areas",
@@ -390,6 +391,7 @@ class AreaTools:
390
391
  name="ha_set_area_or_floor",
391
392
  tags={"Areas & Floors"},
392
393
  annotations={
394
+ "openWorldHint": False,
393
395
  "destructiveHint": True,
394
396
  "title": "Create or Update Area or Floor",
395
397
  },
@@ -640,6 +642,7 @@ class AreaTools:
640
642
  name="ha_remove_area_or_floor",
641
643
  tags={"Areas & Floors"},
642
644
  annotations={
645
+ "openWorldHint": False,
643
646
  "destructiveHint": True,
644
647
  "idempotentHint": True,
645
648
  "title": "Remove Area or Floor",
@@ -76,6 +76,7 @@ class BlueprintTools:
76
76
  name="ha_get_blueprint",
77
77
  tags={"Blueprints"},
78
78
  annotations={
79
+ "openWorldHint": True,
79
80
  "idempotentHint": True,
80
81
  "readOnlyHint": True,
81
82
  "title": "Get Blueprint",
@@ -224,7 +225,11 @@ class BlueprintTools:
224
225
  @tool(
225
226
  name="ha_import_blueprint",
226
227
  tags={"Blueprints"},
227
- annotations={"destructiveHint": True, "title": "Import Blueprint"},
228
+ annotations={
229
+ "openWorldHint": True,
230
+ "destructiveHint": True,
231
+ "title": "Import Blueprint",
232
+ },
228
233
  )
229
234
  @log_tool_usage
230
235
  async def ha_import_blueprint(
@@ -646,6 +646,7 @@ class BugReportTools:
646
646
  name="ha_report_issue",
647
647
  tags={"Utilities"},
648
648
  annotations={
649
+ "openWorldHint": False,
649
650
  "idempotentHint": True,
650
651
  "readOnlyHint": True,
651
652
  "title": "Report Issue or Feedback",
@@ -43,6 +43,7 @@ class CalendarTools:
43
43
  name="ha_config_get_calendar_events",
44
44
  tags={"Calendar"},
45
45
  annotations={
46
+ "openWorldHint": False,
46
47
  "idempotentHint": True,
47
48
  "readOnlyHint": True,
48
49
  "title": "Get Calendar Events",
@@ -282,6 +283,7 @@ class CalendarTools:
282
283
  name="ha_config_set_calendar_event",
283
284
  tags={"Calendar"},
284
285
  annotations={
286
+ "openWorldHint": False,
285
287
  "destructiveHint": True,
286
288
  "title": "Create or Update Calendar Event",
287
289
  },
@@ -426,6 +428,7 @@ class CalendarTools:
426
428
  name="ha_config_remove_calendar_event",
427
429
  tags={"Calendar"},
428
430
  annotations={
431
+ "openWorldHint": False,
429
432
  "destructiveHint": True,
430
433
  "idempotentHint": True,
431
434
  "title": "Remove Calendar Event",
@@ -62,6 +62,7 @@ class CameraTools:
62
62
  name="ha_get_camera_image",
63
63
  tags={"Camera"},
64
64
  annotations={
65
+ "openWorldHint": False,
65
66
  "idempotentHint": True,
66
67
  "readOnlyHint": True,
67
68
  "title": "Get Camera Image",
@@ -38,6 +38,7 @@ class CategoryTools:
38
38
  name="ha_config_get_category",
39
39
  tags={"Labels & Categories"},
40
40
  annotations={
41
+ "openWorldHint": False,
41
42
  "idempotentHint": True,
42
43
  "readOnlyHint": True,
43
44
  "title": "Get Category",
@@ -170,7 +171,11 @@ class CategoryTools:
170
171
  @tool(
171
172
  name="ha_config_set_category",
172
173
  tags={"Labels & Categories"},
173
- annotations={"destructiveHint": True, "title": "Create or Update Category"},
174
+ annotations={
175
+ "openWorldHint": False,
176
+ "destructiveHint": True,
177
+ "title": "Create or Update Category",
178
+ },
174
179
  )
175
180
  @with_auto_backup(
176
181
  domain="category",
@@ -313,6 +318,7 @@ class CategoryTools:
313
318
  name="ha_config_remove_category",
314
319
  tags={"Labels & Categories"},
315
320
  annotations={
321
+ "openWorldHint": False,
316
322
  "destructiveHint": True,
317
323
  "idempotentHint": True,
318
324
  "title": "Remove Category",
@@ -1289,6 +1289,7 @@ def register_code_tools(mcp: Any, client: Any, **kwargs: Any) -> None:
1289
1289
  @mcp.tool(
1290
1290
  tags={"System", "beta"},
1291
1291
  annotations={
1292
+ "openWorldHint": False,
1292
1293
  "title": "Custom Tool",
1293
1294
  "destructiveHint": True,
1294
1295
  "idempotentHint": False,
@@ -340,6 +340,7 @@ class AutomationConfigTools:
340
340
  name="ha_config_get_automation",
341
341
  tags={"Automations"},
342
342
  annotations={
343
+ "openWorldHint": False,
343
344
  "idempotentHint": True,
344
345
  "readOnlyHint": True,
345
346
  "title": "Get Automation Config",
@@ -450,6 +451,7 @@ class AutomationConfigTools:
450
451
  name="ha_config_set_automation",
451
452
  tags={"Automations"},
452
453
  annotations={
454
+ "openWorldHint": False,
453
455
  "destructiveHint": True,
454
456
  "title": "Create or Update Automation",
455
457
  },
@@ -1291,6 +1293,7 @@ class AutomationConfigTools:
1291
1293
  name="ha_config_remove_automation",
1292
1294
  tags={"Automations"},
1293
1295
  annotations={
1296
+ "openWorldHint": False,
1294
1297
  "destructiveHint": True,
1295
1298
  "idempotentHint": True,
1296
1299
  "title": "Remove Automation",
@@ -1259,6 +1259,7 @@ class DashboardConfigTools:
1259
1259
  name="ha_config_get_dashboard",
1260
1260
  tags={"Dashboards"},
1261
1261
  annotations={
1262
+ "openWorldHint": False,
1262
1263
  "destructiveHint": False,
1263
1264
  "idempotentHint": True,
1264
1265
  "title": "Get Dashboard",
@@ -1815,7 +1816,11 @@ class DashboardConfigTools:
1815
1816
  @tool(
1816
1817
  name="ha_config_set_dashboard",
1817
1818
  tags={"Dashboards"},
1818
- annotations={"destructiveHint": True, "title": "Create or Update Dashboard"},
1819
+ annotations={
1820
+ "openWorldHint": False,
1821
+ "destructiveHint": True,
1822
+ "title": "Create or Update Dashboard",
1823
+ },
1819
1824
  )
1820
1825
  @with_auto_backup(domain="dashboard", id_param="url_path")
1821
1826
  @log_tool_usage
@@ -2743,7 +2748,11 @@ class DashboardConfigTools:
2743
2748
  @tool(
2744
2749
  name="ha_config_delete_dashboard",
2745
2750
  tags={"Dashboards"},
2746
- annotations={"destructiveHint": True, "title": "Delete Dashboard"},
2751
+ annotations={
2752
+ "openWorldHint": False,
2753
+ "destructiveHint": True,
2754
+ "title": "Delete Dashboard",
2755
+ },
2747
2756
  )
2748
2757
  @with_auto_backup(domain="dashboard", id_param="url_path")
2749
2758
  @log_tool_usage
@@ -3608,6 +3608,7 @@ class HelperConfigTools:
3608
3608
  name="ha_config_list_helpers",
3609
3609
  tags={"Helper Entities"},
3610
3610
  annotations={
3611
+ "openWorldHint": False,
3611
3612
  "idempotentHint": True,
3612
3613
  "readOnlyHint": True,
3613
3614
  "title": "List Helpers",
@@ -4021,7 +4022,11 @@ class HelperConfigTools:
4021
4022
  @tool(
4022
4023
  name="ha_config_set_helper",
4023
4024
  tags={"Helper Entities"},
4024
- annotations={"destructiveHint": True, "title": "Create or Update Helper"},
4025
+ annotations={
4026
+ "openWorldHint": False,
4027
+ "destructiveHint": True,
4028
+ "title": "Create or Update Helper",
4029
+ },
4025
4030
  )
4026
4031
  @with_auto_backup(
4027
4032
  domain_fn=lambda kw: f"helper_{kw.get('helper_type', 'unknown')}",
@@ -204,6 +204,7 @@ class ConfigSceneTools:
204
204
  name="ha_config_get_scene",
205
205
  tags={"Scenes"},
206
206
  annotations={
207
+ "openWorldHint": False,
207
208
  "idempotentHint": True,
208
209
  "readOnlyHint": True,
209
210
  "title": "Get Scene Config",
@@ -453,6 +454,7 @@ class ConfigSceneTools:
453
454
  name="ha_config_set_scene",
454
455
  tags={"Scenes"},
455
456
  annotations={
457
+ "openWorldHint": False,
456
458
  "destructiveHint": True,
457
459
  "title": "Create or Update Scene",
458
460
  },
@@ -976,6 +978,7 @@ class ConfigSceneTools:
976
978
  name="ha_config_remove_scene",
977
979
  tags={"Scenes"},
978
980
  annotations={
981
+ "openWorldHint": False,
979
982
  "destructiveHint": True,
980
983
  "idempotentHint": True,
981
984
  "title": "Remove Scene",
@@ -99,6 +99,7 @@ class ConfigScriptTools:
99
99
  name="ha_config_get_script",
100
100
  tags={"Scripts"},
101
101
  annotations={
102
+ "openWorldHint": False,
102
103
  "idempotentHint": True,
103
104
  "readOnlyHint": True,
104
105
  "title": "Get Script Config",
@@ -409,6 +410,7 @@ class ConfigScriptTools:
409
410
  name="ha_config_set_script",
410
411
  tags={"Scripts"},
411
412
  annotations={
413
+ "openWorldHint": False,
412
414
  "destructiveHint": True,
413
415
  "title": "Create or Update Script",
414
416
  },
@@ -860,6 +862,7 @@ class ConfigScriptTools:
860
862
  name="ha_config_remove_script",
861
863
  tags={"Scripts"},
862
864
  annotations={
865
+ "openWorldHint": False,
863
866
  "destructiveHint": True,
864
867
  "idempotentHint": True,
865
868
  "title": "Remove Script",
@@ -100,6 +100,7 @@ class DashboardScreenshotTools:
100
100
  name="ha_get_dashboard_screenshot",
101
101
  tags={"Dashboard", "beta"},
102
102
  annotations={
103
+ "openWorldHint": False,
103
104
  "destructiveHint": False,
104
105
  "title": "Get Dashboard Screenshot",
105
106
  },
@@ -456,7 +456,11 @@ class DevTools:
456
456
  @tool(
457
457
  name="ha_dev_manage_settings",
458
458
  tags={"Developer"},
459
- annotations={"title": "Manage Server Settings (dev)", "destructiveHint": True},
459
+ annotations={
460
+ "openWorldHint": False,
461
+ "title": "Manage Server Settings (dev)",
462
+ "destructiveHint": True,
463
+ },
460
464
  )
461
465
  @log_tool_usage
462
466
  async def ha_dev_manage_settings(
@@ -698,7 +702,11 @@ class DevTools:
698
702
  @tool(
699
703
  name="ha_dev_manage_server",
700
704
  tags={"Developer"},
701
- annotations={"title": "Manage MCP Server (dev)", "destructiveHint": True},
705
+ annotations={
706
+ "openWorldHint": True,
707
+ "title": "Manage MCP Server (dev)",
708
+ "destructiveHint": True,
709
+ },
702
710
  )
703
711
  @log_tool_usage
704
712
  async def ha_dev_manage_server(
@@ -370,6 +370,7 @@ class EnergyTools:
370
370
  name="ha_manage_energy_prefs",
371
371
  tags={"Energy"},
372
372
  annotations={
373
+ "openWorldHint": False,
373
374
  "destructiveHint": True,
374
375
  "idempotentHint": False,
375
376
  "title": "Manage Energy Dashboard Preferences",
@@ -1388,6 +1388,7 @@ class EntityTools:
1388
1388
  name="ha_set_entity",
1389
1389
  tags={"Entity Registry"},
1390
1390
  annotations={
1391
+ "openWorldHint": False,
1391
1392
  "destructiveHint": True,
1392
1393
  "idempotentHint": True,
1393
1394
  "title": "Set Entity",
@@ -1723,6 +1724,7 @@ class EntityTools:
1723
1724
  name="ha_get_entity",
1724
1725
  tags={"Entity Registry"},
1725
1726
  annotations={
1727
+ "openWorldHint": False,
1726
1728
  "readOnlyHint": True,
1727
1729
  "idempotentHint": True,
1728
1730
  "title": "Get Entity",
@@ -2014,6 +2016,7 @@ class EntityTools:
2014
2016
  name="ha_remove_entity",
2015
2017
  tags={"Entity Registry"},
2016
2018
  annotations={
2019
+ "openWorldHint": False,
2017
2020
  "destructiveHint": True,
2018
2021
  "idempotentHint": True,
2019
2022
  "title": "Remove Entity",
@@ -371,6 +371,7 @@ class FilesystemTools:
371
371
  name="ha_list_files",
372
372
  tags={"Files", "beta"},
373
373
  annotations={
374
+ "openWorldHint": False,
374
375
  "readOnlyHint": True,
375
376
  "title": "List Files",
376
377
  },
@@ -478,6 +479,7 @@ class FilesystemTools:
478
479
  name="ha_read_file",
479
480
  tags={"Files", "beta"},
480
481
  annotations={
482
+ "openWorldHint": False,
481
483
  "readOnlyHint": True,
482
484
  "title": "Read File",
483
485
  },
@@ -593,6 +595,7 @@ class FilesystemTools:
593
595
  name="ha_write_file",
594
596
  tags={"Files", "beta"},
595
597
  annotations={
598
+ "openWorldHint": False,
596
599
  "destructiveHint": True,
597
600
  "title": "Write File",
598
601
  },
@@ -735,6 +738,7 @@ class FilesystemTools:
735
738
  name="ha_delete_file",
736
739
  tags={"Files", "beta"},
737
740
  annotations={
741
+ "openWorldHint": False,
738
742
  "destructiveHint": True,
739
743
  "title": "Delete File",
740
744
  },
@@ -136,6 +136,7 @@ class GroupTools:
136
136
  name="ha_config_list_groups",
137
137
  tags={"Groups"},
138
138
  annotations={
139
+ "openWorldHint": False,
139
140
  "idempotentHint": True,
140
141
  "readOnlyHint": True,
141
142
  "title": "List Groups",
@@ -210,7 +211,11 @@ class GroupTools:
210
211
  @tool(
211
212
  name="ha_config_set_group",
212
213
  tags={"Groups"},
213
- annotations={"destructiveHint": True, "title": "Create or Update Group"},
214
+ annotations={
215
+ "openWorldHint": False,
216
+ "destructiveHint": True,
217
+ "title": "Create or Update Group",
218
+ },
214
219
  )
215
220
  @with_auto_backup(domain="group", id_param="object_id")
216
221
  @log_tool_usage
@@ -390,6 +395,7 @@ class GroupTools:
390
395
  name="ha_config_remove_group",
391
396
  tags={"Groups"},
392
397
  annotations={
398
+ "openWorldHint": False,
393
399
  "destructiveHint": True,
394
400
  "idempotentHint": True,
395
401
  "title": "Remove Group",
@@ -111,6 +111,7 @@ class HacsTools:
111
111
  name="ha_get_hacs_info",
112
112
  tags={"HACS"},
113
113
  annotations={
114
+ "openWorldHint": True,
114
115
  "idempotentHint": True,
115
116
  "readOnlyHint": True,
116
117
  "title": "Get HACS Info",
@@ -214,6 +215,7 @@ class HacsTools:
214
215
  name="ha_manage_hacs",
215
216
  tags={"HACS"},
216
217
  annotations={
218
+ "openWorldHint": True,
217
219
  "destructiveHint": True,
218
220
  "title": "Manage HACS",
219
221
  },
@@ -127,6 +127,7 @@ class HistoryTools:
127
127
  name="ha_get_history",
128
128
  tags={"History & Statistics"},
129
129
  annotations={
130
+ "openWorldHint": False,
130
131
  "idempotentHint": True,
131
132
  "readOnlyHint": True,
132
133
  "title": "Get Entity History or Statistics",
@@ -292,6 +292,7 @@ class IntegrationTools:
292
292
  name="ha_get_integration",
293
293
  tags={"Integrations"},
294
294
  annotations={
295
+ "openWorldHint": False,
295
296
  "idempotentHint": True,
296
297
  "readOnlyHint": True,
297
298
  "title": "Get Integration",
@@ -1188,7 +1189,11 @@ class IntegrationTools:
1188
1189
  @tool(
1189
1190
  name="ha_set_integration",
1190
1191
  tags={"Integrations"},
1191
- annotations={"destructiveHint": True, "title": "Set Integration"},
1192
+ annotations={
1193
+ "openWorldHint": False,
1194
+ "destructiveHint": True,
1195
+ "title": "Set Integration",
1196
+ },
1192
1197
  )
1193
1198
  @with_auto_backup(domain="integration", id_param="entry_id")
1194
1199
  @log_tool_usage
@@ -1412,6 +1417,7 @@ class IntegrationTools:
1412
1417
  name="ha_remove_helpers_integrations",
1413
1418
  tags={"Helper Entities", "Integrations"},
1414
1419
  annotations={
1420
+ "openWorldHint": False,
1415
1421
  "destructiveHint": True,
1416
1422
  "idempotentHint": True,
1417
1423
  "title": "Remove Helper or Integration",
@@ -35,6 +35,7 @@ class LabelTools:
35
35
  name="ha_config_get_label",
36
36
  tags={"Labels & Categories"},
37
37
  annotations={
38
+ "openWorldHint": False,
38
39
  "idempotentHint": True,
39
40
  "readOnlyHint": True,
40
41
  "title": "Get Label",
@@ -151,7 +152,11 @@ class LabelTools:
151
152
  @tool(
152
153
  name="ha_config_set_label",
153
154
  tags={"Labels & Categories"},
154
- annotations={"destructiveHint": True, "title": "Create or Update Label"},
155
+ annotations={
156
+ "openWorldHint": False,
157
+ "destructiveHint": True,
158
+ "title": "Create or Update Label",
159
+ },
155
160
  )
156
161
  @with_auto_backup(domain="label", id_param="label_id")
157
162
  @log_tool_usage
@@ -289,6 +294,7 @@ class LabelTools:
289
294
  name="ha_config_remove_label",
290
295
  tags={"Labels & Categories"},
291
296
  annotations={
297
+ "openWorldHint": False,
292
298
  "destructiveHint": True,
293
299
  "idempotentHint": True,
294
300
  "title": "Remove Label",
@@ -253,7 +253,11 @@ class McpComponentTools:
253
253
  @tool(
254
254
  name="ha_install_mcp_tools",
255
255
  tags={"Utilities", "beta"},
256
- annotations={"destructiveHint": True, "title": "Install MCP Tools Component"},
256
+ annotations={
257
+ "openWorldHint": True,
258
+ "destructiveHint": True,
259
+ "title": "Install MCP Tools Component",
260
+ },
257
261
  )
258
262
  @log_tool_usage
259
263
  async def ha_install_mcp_tools(
@@ -90,6 +90,7 @@ class RadioTools:
90
90
  name="ha_manage_radio",
91
91
  tags={"Radio Management", "Z-Wave", "Zigbee", "Matter", "Thread"},
92
92
  annotations={
93
+ "openWorldHint": False,
93
94
  "destructiveHint": True,
94
95
  "idempotentHint": False,
95
96
  "title": "Manage Radios (Z-Wave / Zigbee / Matter / Thread)",
@@ -616,6 +616,7 @@ class RegistryTools:
616
616
  name="ha_get_device",
617
617
  tags={"Device Registry", "Zigbee", "Z-Wave", "Matter"},
618
618
  annotations={
619
+ "openWorldHint": False,
619
620
  "idempotentHint": True,
620
621
  "readOnlyHint": True,
621
622
  "title": "Get Device (incl. Zigbee/ZHA/Z2M, Z-Wave and Matter)",
@@ -755,7 +756,11 @@ class RegistryTools:
755
756
  @tool(
756
757
  name="ha_set_device",
757
758
  tags={"Device Registry"},
758
- annotations={"destructiveHint": True, "title": "Set Device"},
759
+ annotations={
760
+ "openWorldHint": False,
761
+ "destructiveHint": True,
762
+ "title": "Set Device",
763
+ },
759
764
  )
760
765
  @with_auto_backup(domain="device", id_param="device_id")
761
766
  @log_tool_usage
@@ -852,6 +857,7 @@ class RegistryTools:
852
857
  name="ha_remove_device",
853
858
  tags={"Device Registry"},
854
859
  annotations={
860
+ "openWorldHint": False,
855
861
  "destructiveHint": True,
856
862
  "idempotentHint": True,
857
863
  "title": "Remove Device",
@@ -146,6 +146,7 @@ class ResourceTools:
146
146
  name="ha_config_list_dashboard_resources",
147
147
  tags={"Dashboards"},
148
148
  annotations={
149
+ "openWorldHint": True,
149
150
  "idempotentHint": True,
150
151
  "readOnlyHint": True,
151
152
  "title": "List Dashboard Resources",
@@ -246,6 +247,7 @@ class ResourceTools:
246
247
  name="ha_config_set_dashboard_resource",
247
248
  tags={"Dashboards"},
248
249
  annotations={
250
+ "openWorldHint": False,
249
251
  "destructiveHint": True,
250
252
  "title": "Set Dashboard Resource",
251
253
  },
@@ -651,6 +653,7 @@ class ResourceTools:
651
653
  name="ha_config_delete_dashboard_resource",
652
654
  tags={"Dashboards"},
653
655
  annotations={
656
+ "openWorldHint": False,
654
657
  "destructiveHint": True,
655
658
  "title": "Delete Dashboard Resource",
656
659
  },
@@ -1370,6 +1370,7 @@ class SearchTools:
1370
1370
  name="ha_search",
1371
1371
  tags={"Search & Discovery"},
1372
1372
  annotations={
1373
+ "openWorldHint": False,
1373
1374
  "idempotentHint": True,
1374
1375
  "readOnlyHint": True,
1375
1376
  "title": "Search",
@@ -2604,6 +2605,7 @@ class SearchTools:
2604
2605
  name="ha_get_overview",
2605
2606
  tags={"Search & Discovery"},
2606
2607
  annotations={
2608
+ "openWorldHint": True,
2607
2609
  "idempotentHint": True,
2608
2610
  "readOnlyHint": True,
2609
2611
  "title": "Get System Overview",
@@ -3298,6 +3300,7 @@ class SearchTools:
3298
3300
  name="ha_get_state",
3299
3301
  tags={"Search & Discovery"},
3300
3302
  annotations={
3303
+ "openWorldHint": False,
3301
3304
  "idempotentHint": True,
3302
3305
  "readOnlyHint": True,
3303
3306
  "title": "Get Entity State",