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.
- {ha_mcp_dev-7.2.0.dev323/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.2.0.dev324}/PKG-INFO +33 -1
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/README.md +32 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/pyproject.toml +1 -1
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_mcp_component.py +2 -3
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324/src/ha_mcp_dev.egg-info}/PKG-INFO +33 -1
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/LICENSE +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/setup.cfg +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/py.typed +0 -0
- {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
- {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
- {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
- {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
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/enhanced.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/smart_search.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_calendar.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {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
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {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
- {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
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {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
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/tests/test_constants.py +0 -0
- {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.
|
|
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
|
+
[](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
|
+
[](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.
|
|
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
|
|
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
|
-
|
|
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.
|
|
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
|
+
[](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.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/resources/skills-vendor/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/best_practice_checker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_entry_flow.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_config_scripts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/tools/tools_voice_assistant.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.2.0.dev323 → ha_mcp_dev-7.2.0.dev324}/src/ha_mcp_dev.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|