ha-mcp-dev 7.2.0.dev323__tar.gz → 7.2.0.dev324__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 (100) hide show
  1. {ha_mcp_dev-7.2.0.dev323/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.2.0.dev324}/PKG-INFO +33 -1
  2. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/README.md +32 -0
  3. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/pyproject.toml +1 -1
  4. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_mcp_component.py +2 -3
  5. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324/src/ha_mcp_dev.egg-info}/PKG-INFO +33 -1
  6. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/LICENSE +0 -0
  7. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/MANIFEST.in +0 -0
  8. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/setup.cfg +0 -0
  9. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/__init__.py +0 -0
  10. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/__main__.py +0 -0
  11. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/_pypi_marker +0 -0
  12. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/auth/__init__.py +0 -0
  13. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/auth/consent_form.py +0 -0
  14. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/auth/provider.py +0 -0
  15. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/client/__init__.py +0 -0
  16. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/client/rest_client.py +0 -0
  17. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/client/websocket_client.py +0 -0
  18. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/client/websocket_listener.py +0 -0
  19. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/config.py +0 -0
  20. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/errors.py +0 -0
  21. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/py.typed +0 -0
  22. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
  23. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
  24. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
  25. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
  26. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
  27. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
  28. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
  29. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
  30. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
  31. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
  32. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
  33. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
  34. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
  35. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
  36. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
  37. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
  38. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
  39. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
  40. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
  41. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
  42. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/server.py +0 -0
  43. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/smoke_test.py +0 -0
  44. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/__init__.py +0 -0
  45. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/backup.py +0 -0
  46. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/best_practice_checker.py +0 -0
  47. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/device_control.py +0 -0
  48. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/enhanced.py +0 -0
  49. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/helpers.py +0 -0
  50. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/registry.py +0 -0
  51. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/smart_search.py +0 -0
  52. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_addons.py +0 -0
  53. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_areas.py +0 -0
  54. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_blueprints.py +0 -0
  55. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_bug_report.py +0 -0
  56. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_calendar.py +0 -0
  57. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_camera.py +0 -0
  58. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_categories.py +0 -0
  59. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_automations.py +0 -0
  60. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
  61. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_entry_flow.py +0 -0
  62. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
  63. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
  64. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_entities.py +0 -0
  65. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_filesystem.py +0 -0
  66. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_groups.py +0 -0
  67. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_hacs.py +0 -0
  68. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_history.py +0 -0
  69. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_integrations.py +0 -0
  70. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_labels.py +0 -0
  71. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_registry.py +0 -0
  72. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_resources.py +0 -0
  73. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_search.py +0 -0
  74. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_service.py +0 -0
  75. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_services.py +0 -0
  76. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_system.py +0 -0
  77. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_todo.py +0 -0
  78. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_traces.py +0 -0
  79. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_updates.py +0 -0
  80. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_utility.py +0 -0
  81. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
  82. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
  83. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_zones.py +0 -0
  84. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/util_helpers.py +0 -0
  85. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/transforms/__init__.py +0 -0
  86. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/transforms/categorized_search.py +0 -0
  87. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/utils/__init__.py +0 -0
  88. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/utils/domain_handlers.py +0 -0
  89. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/utils/fuzzy_search.py +0 -0
  90. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/utils/operation_manager.py +0 -0
  91. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/utils/python_sandbox.py +0 -0
  92. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/utils/usage_logger.py +0 -0
  93. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
  94. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
  95. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
  96. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
  97. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
  98. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/tests/__init__.py +0 -0
  99. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/tests/test_constants.py +0 -0
  100. {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/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.2.0.dev323
3
+ Version: 7.2.0.dev324
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
@@ -193,6 +193,38 @@ Spend less time configuring, more time enjoying your smart home.
193
193
 
194
194
  ---
195
195
 
196
+ ## 🔌 Custom Component (ha_mcp_tools)
197
+
198
+ Some tools require a companion custom component installed in Home Assistant. Standard HA APIs do not expose file system access or YAML config editing. This component provides both.
199
+
200
+ **Tools that require the component:**
201
+
202
+ | Tool | Description |
203
+ |------|-------------|
204
+ | `ha_config_set_yaml` | Safely add, replace, or remove top-level YAML keys in `configuration.yaml` and package files (automatic backup, validation, and config check) |
205
+ | `ha_list_files` | List files in allowed directories (www/, themes/, custom_templates/) |
206
+ | `ha_read_file` | Read files from allowed paths (config YAML, logs, www/, themes/, custom_templates/, custom_components/) |
207
+ | `ha_write_file` | Write files to allowed directories |
208
+ | `ha_delete_file` | Delete files from allowed directories |
209
+
210
+ All other tools work without the component. These five return an error with installation instructions if the component is missing.
211
+
212
+ These tools also require feature flags: `HAMCP_ENABLE_FILESYSTEM_TOOLS=true` (file tools) and `ENABLE_YAML_CONFIG_EDITING=true` (YAML editing). To enable the `ha_install_mcp_tools` installer tool, set `HAMCP_ENABLE_CUSTOM_COMPONENT_INTEGRATION=true`.
213
+
214
+ ### Install using HACS (recommended)
215
+
216
+ [![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=homeassistant-ai&repository=ha-mcp&category=integration)
217
+
218
+ To add manually: open **HACS** > **Integrations** > three-dot menu > **Custom repositories** > add `https://github.com/homeassistant-ai/ha-mcp` (category: Integration) > **Download**.
219
+
220
+ After installing, restart Home Assistant. Then open **Settings** > **Devices & Services** > **Add Integration** and search for **HA MCP Tools**.
221
+
222
+ ### Install manually
223
+
224
+ Copy `custom_components/ha_mcp_tools/` from this repository into your HA `config/custom_components/` directory. Restart Home Assistant, then add the integration as described above.
225
+
226
+ ---
227
+
196
228
  ## 🧠 Better Results with Agent Skills
197
229
 
198
230
  This server gives your AI agent tools to control Home Assistant. For better configurations, pair it with [Home Assistant Agent Skills](https://github.com/homeassistant-ai/skills) — domain knowledge that teaches the agent Home Assistant best practices.
@@ -164,6 +164,38 @@ Spend less time configuring, more time enjoying your smart home.
164
164
 
165
165
  ---
166
166
 
167
+ ## 🔌 Custom Component (ha_mcp_tools)
168
+
169
+ Some tools require a companion custom component installed in Home Assistant. Standard HA APIs do not expose file system access or YAML config editing. This component provides both.
170
+
171
+ **Tools that require the component:**
172
+
173
+ | Tool | Description |
174
+ |------|-------------|
175
+ | `ha_config_set_yaml` | Safely add, replace, or remove top-level YAML keys in `configuration.yaml` and package files (automatic backup, validation, and config check) |
176
+ | `ha_list_files` | List files in allowed directories (www/, themes/, custom_templates/) |
177
+ | `ha_read_file` | Read files from allowed paths (config YAML, logs, www/, themes/, custom_templates/, custom_components/) |
178
+ | `ha_write_file` | Write files to allowed directories |
179
+ | `ha_delete_file` | Delete files from allowed directories |
180
+
181
+ All other tools work without the component. These five return an error with installation instructions if the component is missing.
182
+
183
+ These tools also require feature flags: `HAMCP_ENABLE_FILESYSTEM_TOOLS=true` (file tools) and `ENABLE_YAML_CONFIG_EDITING=true` (YAML editing). To enable the `ha_install_mcp_tools` installer tool, set `HAMCP_ENABLE_CUSTOM_COMPONENT_INTEGRATION=true`.
184
+
185
+ ### Install using HACS (recommended)
186
+
187
+ [![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=homeassistant-ai&repository=ha-mcp&category=integration)
188
+
189
+ To add manually: open **HACS** > **Integrations** > three-dot menu > **Custom repositories** > add `https://github.com/homeassistant-ai/ha-mcp` (category: Integration) > **Download**.
190
+
191
+ After installing, restart Home Assistant. Then open **Settings** > **Devices & Services** > **Add Integration** and search for **HA MCP Tools**.
192
+
193
+ ### Install manually
194
+
195
+ Copy `custom_components/ha_mcp_tools/` from this repository into your HA `config/custom_components/` directory. Restart Home Assistant, then add the integration as described above.
196
+
197
+ ---
198
+
167
199
  ## 🧠 Better Results with Agent Skills
168
200
 
169
201
  This server gives your AI agent tools to control Home Assistant. For better configurations, pair it with [Home Assistant Agent Skills](https://github.com/homeassistant-ai/skills) — domain knowledge that teaches the agent Home Assistant best practices.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "ha-mcp-dev"
7
- version = "7.2.0.dev323"
7
+ version = "7.2.0.dev324"
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"
@@ -5,7 +5,7 @@ This module provides the ha_install_mcp_tools tool which installs the
5
5
  ha_mcp_tools custom component via HACS. This enables additional services
6
6
  that are not available through standard Home Assistant APIs.
7
7
 
8
- Feature Flag: Set HAMCP_ENABLE_MCP_TOOLS_INSTALLER=true to enable this tool.
8
+ Feature Flag: Set HAMCP_ENABLE_CUSTOM_COMPONENT_INTEGRATION=true to enable this tool.
9
9
  """
10
10
 
11
11
  import logging
@@ -32,8 +32,7 @@ def is_custom_component_integration_enabled() -> bool:
32
32
 
33
33
 
34
34
  # Constants for ha_mcp_tools custom component
35
- # TODO: Switch to "homeassistant-ai/ha-mcp" after hacs.json is on default branch
36
- MCP_TOOLS_REPO = "julienld/ha-mcp-test-custom-component"
35
+ MCP_TOOLS_REPO = "homeassistant-ai/ha-mcp"
37
36
  MCP_TOOLS_DOMAIN = "ha_mcp_tools"
38
37
 
39
38
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ha-mcp-dev
3
- Version: 7.2.0.dev323
3
+ Version: 7.2.0.dev324
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
@@ -193,6 +193,38 @@ Spend less time configuring, more time enjoying your smart home.
193
193
 
194
194
  ---
195
195
 
196
+ ## 🔌 Custom Component (ha_mcp_tools)
197
+
198
+ Some tools require a companion custom component installed in Home Assistant. Standard HA APIs do not expose file system access or YAML config editing. This component provides both.
199
+
200
+ **Tools that require the component:**
201
+
202
+ | Tool | Description |
203
+ |------|-------------|
204
+ | `ha_config_set_yaml` | Safely add, replace, or remove top-level YAML keys in `configuration.yaml` and package files (automatic backup, validation, and config check) |
205
+ | `ha_list_files` | List files in allowed directories (www/, themes/, custom_templates/) |
206
+ | `ha_read_file` | Read files from allowed paths (config YAML, logs, www/, themes/, custom_templates/, custom_components/) |
207
+ | `ha_write_file` | Write files to allowed directories |
208
+ | `ha_delete_file` | Delete files from allowed directories |
209
+
210
+ All other tools work without the component. These five return an error with installation instructions if the component is missing.
211
+
212
+ These tools also require feature flags: `HAMCP_ENABLE_FILESYSTEM_TOOLS=true` (file tools) and `ENABLE_YAML_CONFIG_EDITING=true` (YAML editing). To enable the `ha_install_mcp_tools` installer tool, set `HAMCP_ENABLE_CUSTOM_COMPONENT_INTEGRATION=true`.
213
+
214
+ ### Install using HACS (recommended)
215
+
216
+ [![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=homeassistant-ai&repository=ha-mcp&category=integration)
217
+
218
+ To add manually: open **HACS** > **Integrations** > three-dot menu > **Custom repositories** > add `https://github.com/homeassistant-ai/ha-mcp` (category: Integration) > **Download**.
219
+
220
+ After installing, restart Home Assistant. Then open **Settings** > **Devices & Services** > **Add Integration** and search for **HA MCP Tools**.
221
+
222
+ ### Install manually
223
+
224
+ Copy `custom_components/ha_mcp_tools/` from this repository into your HA `config/custom_components/` directory. Restart Home Assistant, then add the integration as described above.
225
+
226
+ ---
227
+
196
228
  ## 🧠 Better Results with Agent Skills
197
229
 
198
230
  This server gives your AI agent tools to control Home Assistant. For better configurations, pair it with [Home Assistant Agent Skills](https://github.com/homeassistant-ai/skills) — domain knowledge that teaches the agent Home Assistant best practices.