ha-mcp-dev 7.6.0.dev618__tar.gz → 7.6.0.dev620__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 (124) hide show
  1. {ha_mcp_dev-7.6.0.dev618/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.6.0.dev620}/PKG-INFO +2 -2
  2. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/README.md +1 -1
  3. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/pyproject.toml +1 -1
  4. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620/src/ha_mcp_dev.egg-info}/PKG-INFO +2 -2
  5. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/LICENSE +0 -0
  6. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/MANIFEST.in +0 -0
  7. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/setup.cfg +0 -0
  8. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/__init__.py +0 -0
  9. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/__main__.py +0 -0
  10. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/_pypi_marker +0 -0
  11. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/_version.py +0 -0
  12. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/auth/__init__.py +0 -0
  13. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/auth/consent_form.py +0 -0
  14. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/auth/provider.py +0 -0
  15. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/backup_manager.py +0 -0
  16. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/client/__init__.py +0 -0
  17. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/client/rest_client.py +0 -0
  18. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/client/supervisor_client.py +0 -0
  19. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/client/websocket_client.py +0 -0
  20. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/client/websocket_listener.py +0 -0
  21. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/config.py +0 -0
  22. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/errors.py +0 -0
  23. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/policy/__init__.py +0 -0
  24. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/policy/approval_queue.py +0 -0
  25. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/policy/evaluator.py +0 -0
  26. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/policy/handlers.py +0 -0
  27. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/policy/middleware.py +0 -0
  28. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/policy/model.py +0 -0
  29. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/policy/persistence.py +0 -0
  30. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/policy/value_sources.py +0 -0
  31. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/py.typed +0 -0
  32. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
  33. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
  34. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
  35. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
  36. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
  37. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
  38. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
  39. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
  40. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  41. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
  42. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  43. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
  44. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
  45. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  46. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  47. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  48. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  49. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  50. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  51. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  52. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  53. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
  54. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/server.py +0 -0
  55. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/settings_ui.py +0 -0
  56. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/smoke_test.py +0 -0
  57. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
  58. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/__init__.py +0 -0
  59. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/auto_backup.py +0 -0
  60. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/backup.py +0 -0
  61. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  62. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/device_control.py +0 -0
  63. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/enhanced.py +0 -0
  64. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/helpers.py +0 -0
  65. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/reference_validator.py +0 -0
  66. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/registry.py +0 -0
  67. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/smart_search.py +0 -0
  68. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_addons.py +0 -0
  69. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_areas.py +0 -0
  70. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  71. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  72. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_calendar.py +0 -0
  73. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_camera.py +0 -0
  74. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_categories.py +0 -0
  75. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_code.py +0 -0
  76. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  77. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  78. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_config_entry_flow.py +0 -0
  79. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  80. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
  81. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  82. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_energy.py +0 -0
  83. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_entities.py +0 -0
  84. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  85. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_groups.py +0 -0
  86. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_hacs.py +0 -0
  87. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_history.py +0 -0
  88. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_integrations.py +0 -0
  89. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_labels.py +0 -0
  90. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_mcp_component.py +0 -0
  91. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_registry.py +0 -0
  92. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_resources.py +0 -0
  93. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_search.py +0 -0
  94. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_service.py +0 -0
  95. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_services.py +0 -0
  96. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_system.py +0 -0
  97. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_todo.py +0 -0
  98. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_traces.py +0 -0
  99. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_updates.py +0 -0
  100. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_utility.py +0 -0
  101. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  102. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  103. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/tools_zones.py +0 -0
  104. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/tools/util_helpers.py +0 -0
  105. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/transforms/__init__.py +0 -0
  106. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/transforms/categorized_search.py +0 -0
  107. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
  108. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/utils/__init__.py +0 -0
  109. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/utils/config_hash.py +0 -0
  110. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/utils/data_paths.py +0 -0
  111. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/utils/domain_handlers.py +0 -0
  112. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  113. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
  114. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/utils/operation_manager.py +0 -0
  115. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/utils/python_sandbox.py +0 -0
  116. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp/utils/usage_logger.py +0 -0
  117. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
  118. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
  119. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
  120. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
  121. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
  122. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/tests/__init__.py +0 -0
  123. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/tests/test_constants.py +0 -0
  124. {ha_mcp_dev-7.6.0.dev618 → ha_mcp_dev-7.6.0.dev620}/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.6.0.dev618
3
+ Version: 7.6.0.dev620
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
@@ -259,7 +259,7 @@ An MCP server can create automations, helpers, and dashboards, but it has no opi
259
259
 
260
260
  Skills from `homeassistant-ai/skills` are bundled and served as [MCP resources](https://modelcontextprotocol.io/docs/concepts/resources) via `skill://` URIs. Any MCP client that supports resources can discover them automatically — no manual installation needed. For tool-only clients (claude.ai, etc.), the same skills are reachable through the polymorphic `ha_get_skill_guide` tool — call it with no args to list bundled skills, with a `skill` arg to list its files, or with `skill` + `file` to read content. Resources are not auto-injected into context — clients must explicitly request them, so idle context cost is just the metadata listing.
261
261
 
262
- `ha_get_skill_guide` is mandatory-pinned: the catalog always exposes it so tool-only clients never see a silently missing skill surface.
262
+ `ha_get_skill_guide` is a mandatory tool: the catalog always exposes it (it can't be disabled) so tool-only clients never see a silently missing skill surface.
263
263
 
264
264
  Skills can still be installed manually for clients that prefer local skill files — see the [skills repo](https://github.com/homeassistant-ai/skills) for instructions.
265
265
 
@@ -229,7 +229,7 @@ An MCP server can create automations, helpers, and dashboards, but it has no opi
229
229
 
230
230
  Skills from `homeassistant-ai/skills` are bundled and served as [MCP resources](https://modelcontextprotocol.io/docs/concepts/resources) via `skill://` URIs. Any MCP client that supports resources can discover them automatically — no manual installation needed. For tool-only clients (claude.ai, etc.), the same skills are reachable through the polymorphic `ha_get_skill_guide` tool — call it with no args to list bundled skills, with a `skill` arg to list its files, or with `skill` + `file` to read content. Resources are not auto-injected into context — clients must explicitly request them, so idle context cost is just the metadata listing.
231
231
 
232
- `ha_get_skill_guide` is mandatory-pinned: the catalog always exposes it so tool-only clients never see a silently missing skill surface.
232
+ `ha_get_skill_guide` is a mandatory tool: the catalog always exposes it (it can't be disabled) so tool-only clients never see a silently missing skill surface.
233
233
 
234
234
  Skills can still be installed manually for clients that prefer local skill files — see the [skills repo](https://github.com/homeassistant-ai/skills) for instructions.
235
235
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ha-mcp-dev"
7
- version = "7.6.0.dev618"
7
+ version = "7.6.0.dev620"
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.6.0.dev618
3
+ Version: 7.6.0.dev620
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
@@ -259,7 +259,7 @@ An MCP server can create automations, helpers, and dashboards, but it has no opi
259
259
 
260
260
  Skills from `homeassistant-ai/skills` are bundled and served as [MCP resources](https://modelcontextprotocol.io/docs/concepts/resources) via `skill://` URIs. Any MCP client that supports resources can discover them automatically — no manual installation needed. For tool-only clients (claude.ai, etc.), the same skills are reachable through the polymorphic `ha_get_skill_guide` tool — call it with no args to list bundled skills, with a `skill` arg to list its files, or with `skill` + `file` to read content. Resources are not auto-injected into context — clients must explicitly request them, so idle context cost is just the metadata listing.
261
261
 
262
- `ha_get_skill_guide` is mandatory-pinned: the catalog always exposes it so tool-only clients never see a silently missing skill surface.
262
+ `ha_get_skill_guide` is a mandatory tool: the catalog always exposes it (it can't be disabled) so tool-only clients never see a silently missing skill surface.
263
263
 
264
264
  Skills can still be installed manually for clients that prefer local skill files — see the [skills repo](https://github.com/homeassistant-ai/skills) for instructions.
265
265