ha-mcp-dev 7.8.0.dev714__tar.gz → 7.8.1.dev715__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 (143) hide show
  1. {ha_mcp_dev-7.8.0.dev714/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.8.1.dev715}/PKG-INFO +12 -5
  2. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/README.md +11 -4
  3. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/pyproject.toml +1 -1
  4. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715/src/ha_mcp_dev.egg-info}/PKG-INFO +12 -5
  5. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/LICENSE +0 -0
  6. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/MANIFEST.in +0 -0
  7. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/setup.cfg +0 -0
  8. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/__init__.py +0 -0
  9. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/__main__.py +0 -0
  10. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/_pypi_marker +0 -0
  11. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/_version.py +0 -0
  12. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/auth/__init__.py +0 -0
  13. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/auth/consent_form.py +0 -0
  14. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/auth/provider.py +0 -0
  15. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/backup_manager.py +0 -0
  16. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/client/__init__.py +0 -0
  17. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/client/rest_client.py +0 -0
  18. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/client/supervisor_client.py +0 -0
  19. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/client/websocket_client.py +0 -0
  20. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/client/websocket_listener.py +0 -0
  21. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/config.py +0 -0
  22. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/dashboard_screenshot/__init__.py +0 -0
  23. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/dashboard_screenshot/capture.py +0 -0
  24. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/dashboard_screenshot/provision.py +0 -0
  25. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/errors.py +0 -0
  26. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/policy/__init__.py +0 -0
  27. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/policy/approval_queue.py +0 -0
  28. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/policy/evaluator.py +0 -0
  29. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/policy/handlers.py +0 -0
  30. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/policy/middleware.py +0 -0
  31. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/policy/model.py +0 -0
  32. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/policy/persistence.py +0 -0
  33. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/policy/value_sources.py +0 -0
  34. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/py.typed +0 -0
  35. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/read_only.py +0 -0
  36. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
  37. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
  38. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
  39. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
  40. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
  41. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
  42. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
  43. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
  44. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  45. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
  46. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  47. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
  48. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
  49. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  50. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  51. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  52. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  53. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  54. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  55. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  56. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  57. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  58. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/server.py +0 -0
  59. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/settings.css +0 -0
  60. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/settings.js +0 -0
  61. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/settings_ui.py +0 -0
  62. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/smoke_test.py +0 -0
  63. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  64. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/__init__.py +0 -0
  65. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/auto_backup.py +0 -0
  66. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/backup.py +0 -0
  67. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  68. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/config_entry_flow.py +0 -0
  69. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/device_control.py +0 -0
  70. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/enhanced.py +0 -0
  71. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/helpers.py +0 -0
  72. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/reference_validator.py +0 -0
  73. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/registry.py +0 -0
  74. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/smart_search/__init__.py +0 -0
  75. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/smart_search/_base.py +0 -0
  76. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/smart_search/_config.py +0 -0
  77. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/smart_search/_deep.py +0 -0
  78. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/smart_search/_entities.py +0 -0
  79. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/smart_search/_fetch.py +0 -0
  80. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/smart_search/_overview.py +0 -0
  81. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/smart_search/_scenes.py +0 -0
  82. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/smart_search/_scoring.py +0 -0
  83. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tool_search_hint_middleware.py +0 -0
  84. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_addons.py +0 -0
  85. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_areas.py +0 -0
  86. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  87. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  88. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_calendar.py +0 -0
  89. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_camera.py +0 -0
  90. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_categories.py +0 -0
  91. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_code.py +0 -0
  92. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  93. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  94. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  95. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  96. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  97. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_dashboard_screenshot.py +0 -0
  98. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_energy.py +0 -0
  99. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_entities.py +0 -0
  100. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  101. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_groups.py +0 -0
  102. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_hacs.py +0 -0
  103. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_history.py +0 -0
  104. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_integrations.py +0 -0
  105. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_labels.py +0 -0
  106. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_mcp_component.py +0 -0
  107. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_registry.py +0 -0
  108. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_resources.py +0 -0
  109. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_search.py +0 -0
  110. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_service.py +0 -0
  111. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_services.py +0 -0
  112. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_system.py +0 -0
  113. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_themes.py +0 -0
  114. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_todo.py +0 -0
  115. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_traces.py +0 -0
  116. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_updates.py +0 -0
  117. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_utility.py +0 -0
  118. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  119. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  120. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/tools_zones.py +0 -0
  121. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/util_helpers.py +0 -0
  122. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/tools/validation_middleware.py +0 -0
  123. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/transforms/__init__.py +0 -0
  124. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/transforms/categorized_search.py +0 -0
  125. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  126. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/utils/__init__.py +0 -0
  127. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/utils/config_hash.py +0 -0
  128. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/utils/data_paths.py +0 -0
  129. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/utils/domain_handlers.py +0 -0
  130. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  131. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  132. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/utils/operation_manager.py +0 -0
  133. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/utils/python_sandbox.py +0 -0
  134. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/utils/skill_loader.py +0 -0
  135. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp/utils/usage_logger.py +0 -0
  136. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
  137. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
  138. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
  139. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
  140. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
  141. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/tests/__init__.py +0 -0
  142. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/tests/test_constants.py +0 -0
  143. {ha_mcp_dev-7.8.0.dev714 → ha_mcp_dev-7.8.1.dev715}/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.8.0.dev714
3
+ Version: 7.8.1.dev715
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
@@ -319,9 +319,16 @@ Skills can still be installed manually for clients that prefer local skill files
319
319
 
320
320
  ## 🔍 Tool Discovery for AI Agents
321
321
 
322
- By default, the full tool catalog (~86 tools) is listed to the client through the standard MCP `tools/list` response. Clients with deferred / on-demand tool loading (Claude Sonnet, Claude Opus,) handle that fine — tools are pulled into context only when needed, so idle context cost is near-zero.
322
+ By default, the full tool catalog (~84 tools) is listed to the client through the standard MCP `tools/list` response. Clients with deferred / on-demand tool loading (Claude Sonnet, Claude Opus) handle that fine — tools are pulled into context only when needed, so idle context cost is near-zero.
323
323
 
324
- For models *without* deferred tool support — Claude Haiku, Gemini, ChatGPT OpenAI-compatible local models, smaller open-weights models — listing 86 tools eats ~46K tokens of idle context. To address that, the server ships with a **search-based discovery mode** built on top of FastMCP's BM25 search transform.
324
+ For models *without* deferred tool support — Claude Haiku, Gemini, ChatGPT OpenAI-compatible local models, smaller open-weights models — listing the full tool catalog up front adds a lot of idle context and can overwhelm smaller models. To address that, the server ships with a **search-based discovery mode** built on top of FastMCP's BM25 search transform.
325
+
326
+ ### Smaller or local LLMs (Ollama, etc.)
327
+
328
+ If your model can't see the tools or your Home Assistant, it may be getting handed the whole tool catalog at once and struggling with it. It's recommended to try the following to see if it helps:
329
+
330
+ - **Enable tool search** (`ENABLE_TOOL_SEARCH=true`, or the add-on option below). Instead of listing every tool up front, the server defers the catalog behind a search interface so the model pulls in only the tools it needs, when it needs them.
331
+ - **Raise the model's context window above the default.** Local runtimes ship with small defaults (Ollama's `num_ctx` is one example) that can't hold a large tool set plus the conversation — increase it well beyond the default.
325
332
 
326
333
  ### Enable search-based discovery
327
334
 
@@ -338,14 +345,14 @@ The proxy split lets MCP clients apply different permission policies per categor
338
345
 
339
346
  | Setting | Default | Description |
340
347
  |---------|---------|-------------|
341
- | `ENABLE_TOOL_SEARCH` | `false` | Replace full tool catalog with search-based discovery (~46K ~5K idle tokens). |
348
+ | `ENABLE_TOOL_SEARCH` | `false` | Replace full tool catalog with search-based discovery (tools deferred behind on-demand search). |
342
349
  | `TOOL_SEARCH_MAX_RESULTS` | `5` | Max results returned by `ha_search_tools` (range 2–10). |
343
350
  | `PINNED_TOOLS` | empty | Comma-separated tool names to keep always visible. The web settings UI is the primary way to manage this. |
344
351
 
345
352
  ### When to enable
346
353
 
347
354
  - **Claude Haiku, OpenAI-compatible local models, Gemini, ChatGPT or any model without native deferred tool support** — large idle-context savings.
348
- - MCP clients that cap total tool count (some cap at 100) — surfaces a minimal set (~10 tools) instead of 86.
355
+ - MCP clients that cap total tool count (some cap at 100) — surfaces a minimal set (~10 tools) instead of 84.
349
356
  - **Cost-sensitive deployments** — fewer idle tokens per turn.
350
357
 
351
358
  Leave it off when using Claude Sonnet/Opus or any client with deferred tool loading; the full catalog has no idle cost there and direct calls skip the search step. If you choose to use our toolsearch then you should disable the native Claude Opus/Sonnet toolsearch, which is called deferred tools in the settings.
@@ -288,9 +288,16 @@ Skills can still be installed manually for clients that prefer local skill files
288
288
 
289
289
  ## 🔍 Tool Discovery for AI Agents
290
290
 
291
- By default, the full tool catalog (~86 tools) is listed to the client through the standard MCP `tools/list` response. Clients with deferred / on-demand tool loading (Claude Sonnet, Claude Opus,) handle that fine — tools are pulled into context only when needed, so idle context cost is near-zero.
291
+ By default, the full tool catalog (~84 tools) is listed to the client through the standard MCP `tools/list` response. Clients with deferred / on-demand tool loading (Claude Sonnet, Claude Opus) handle that fine — tools are pulled into context only when needed, so idle context cost is near-zero.
292
292
 
293
- For models *without* deferred tool support — Claude Haiku, Gemini, ChatGPT OpenAI-compatible local models, smaller open-weights models — listing 86 tools eats ~46K tokens of idle context. To address that, the server ships with a **search-based discovery mode** built on top of FastMCP's BM25 search transform.
293
+ For models *without* deferred tool support — Claude Haiku, Gemini, ChatGPT OpenAI-compatible local models, smaller open-weights models — listing the full tool catalog up front adds a lot of idle context and can overwhelm smaller models. To address that, the server ships with a **search-based discovery mode** built on top of FastMCP's BM25 search transform.
294
+
295
+ ### Smaller or local LLMs (Ollama, etc.)
296
+
297
+ If your model can't see the tools or your Home Assistant, it may be getting handed the whole tool catalog at once and struggling with it. It's recommended to try the following to see if it helps:
298
+
299
+ - **Enable tool search** (`ENABLE_TOOL_SEARCH=true`, or the add-on option below). Instead of listing every tool up front, the server defers the catalog behind a search interface so the model pulls in only the tools it needs, when it needs them.
300
+ - **Raise the model's context window above the default.** Local runtimes ship with small defaults (Ollama's `num_ctx` is one example) that can't hold a large tool set plus the conversation — increase it well beyond the default.
294
301
 
295
302
  ### Enable search-based discovery
296
303
 
@@ -307,14 +314,14 @@ The proxy split lets MCP clients apply different permission policies per categor
307
314
 
308
315
  | Setting | Default | Description |
309
316
  |---------|---------|-------------|
310
- | `ENABLE_TOOL_SEARCH` | `false` | Replace full tool catalog with search-based discovery (~46K ~5K idle tokens). |
317
+ | `ENABLE_TOOL_SEARCH` | `false` | Replace full tool catalog with search-based discovery (tools deferred behind on-demand search). |
311
318
  | `TOOL_SEARCH_MAX_RESULTS` | `5` | Max results returned by `ha_search_tools` (range 2–10). |
312
319
  | `PINNED_TOOLS` | empty | Comma-separated tool names to keep always visible. The web settings UI is the primary way to manage this. |
313
320
 
314
321
  ### When to enable
315
322
 
316
323
  - **Claude Haiku, OpenAI-compatible local models, Gemini, ChatGPT or any model without native deferred tool support** — large idle-context savings.
317
- - MCP clients that cap total tool count (some cap at 100) — surfaces a minimal set (~10 tools) instead of 86.
324
+ - MCP clients that cap total tool count (some cap at 100) — surfaces a minimal set (~10 tools) instead of 84.
318
325
  - **Cost-sensitive deployments** — fewer idle tokens per turn.
319
326
 
320
327
  Leave it off when using Claude Sonnet/Opus or any client with deferred tool loading; the full catalog has no idle cost there and direct calls skip the search step. If you choose to use our toolsearch then you should disable the native Claude Opus/Sonnet toolsearch, which is called deferred tools in the settings.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ha-mcp-dev"
7
- version = "7.8.0.dev714"
7
+ version = "7.8.1.dev715"
8
8
  description = "Home Assistant MCP Server - Complete control of Home Assistant through MCP"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13,<3.14"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ha-mcp-dev
3
- Version: 7.8.0.dev714
3
+ Version: 7.8.1.dev715
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
@@ -319,9 +319,16 @@ Skills can still be installed manually for clients that prefer local skill files
319
319
 
320
320
  ## 🔍 Tool Discovery for AI Agents
321
321
 
322
- By default, the full tool catalog (~86 tools) is listed to the client through the standard MCP `tools/list` response. Clients with deferred / on-demand tool loading (Claude Sonnet, Claude Opus,) handle that fine — tools are pulled into context only when needed, so idle context cost is near-zero.
322
+ By default, the full tool catalog (~84 tools) is listed to the client through the standard MCP `tools/list` response. Clients with deferred / on-demand tool loading (Claude Sonnet, Claude Opus) handle that fine — tools are pulled into context only when needed, so idle context cost is near-zero.
323
323
 
324
- For models *without* deferred tool support — Claude Haiku, Gemini, ChatGPT OpenAI-compatible local models, smaller open-weights models — listing 86 tools eats ~46K tokens of idle context. To address that, the server ships with a **search-based discovery mode** built on top of FastMCP's BM25 search transform.
324
+ For models *without* deferred tool support — Claude Haiku, Gemini, ChatGPT OpenAI-compatible local models, smaller open-weights models — listing the full tool catalog up front adds a lot of idle context and can overwhelm smaller models. To address that, the server ships with a **search-based discovery mode** built on top of FastMCP's BM25 search transform.
325
+
326
+ ### Smaller or local LLMs (Ollama, etc.)
327
+
328
+ If your model can't see the tools or your Home Assistant, it may be getting handed the whole tool catalog at once and struggling with it. It's recommended to try the following to see if it helps:
329
+
330
+ - **Enable tool search** (`ENABLE_TOOL_SEARCH=true`, or the add-on option below). Instead of listing every tool up front, the server defers the catalog behind a search interface so the model pulls in only the tools it needs, when it needs them.
331
+ - **Raise the model's context window above the default.** Local runtimes ship with small defaults (Ollama's `num_ctx` is one example) that can't hold a large tool set plus the conversation — increase it well beyond the default.
325
332
 
326
333
  ### Enable search-based discovery
327
334
 
@@ -338,14 +345,14 @@ The proxy split lets MCP clients apply different permission policies per categor
338
345
 
339
346
  | Setting | Default | Description |
340
347
  |---------|---------|-------------|
341
- | `ENABLE_TOOL_SEARCH` | `false` | Replace full tool catalog with search-based discovery (~46K ~5K idle tokens). |
348
+ | `ENABLE_TOOL_SEARCH` | `false` | Replace full tool catalog with search-based discovery (tools deferred behind on-demand search). |
342
349
  | `TOOL_SEARCH_MAX_RESULTS` | `5` | Max results returned by `ha_search_tools` (range 2–10). |
343
350
  | `PINNED_TOOLS` | empty | Comma-separated tool names to keep always visible. The web settings UI is the primary way to manage this. |
344
351
 
345
352
  ### When to enable
346
353
 
347
354
  - **Claude Haiku, OpenAI-compatible local models, Gemini, ChatGPT or any model without native deferred tool support** — large idle-context savings.
348
- - MCP clients that cap total tool count (some cap at 100) — surfaces a minimal set (~10 tools) instead of 86.
355
+ - MCP clients that cap total tool count (some cap at 100) — surfaces a minimal set (~10 tools) instead of 84.
349
356
  - **Cost-sensitive deployments** — fewer idle tokens per turn.
350
357
 
351
358
  Leave it off when using Claude Sonnet/Opus or any client with deferred tool loading; the full catalog has no idle cost there and direct calls skip the search step. If you choose to use our toolsearch then you should disable the native Claude Opus/Sonnet toolsearch, which is called deferred tools in the settings.