ha-mcp-dev 7.5.0.dev578__tar.gz → 7.5.0.dev580__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.5.0.dev578/src/ha_mcp_dev.egg-info → ha_mcp_dev-7.5.0.dev580}/PKG-INFO +4 -4
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/README.md +3 -3
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/pyproject.toml +1 -1
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_calendar.py +43 -14
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580/src/ha_mcp_dev.egg-info}/PKG-INFO +4 -4
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/LICENSE +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/MANIFEST.in +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/setup.cfg +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/__main__.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/_pypi_marker +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/_version.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/auth/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/auth/consent_form.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/auth/provider.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/backup_manager.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/client/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/client/rest_client.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/client/supervisor_client.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/client/websocket_client.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/client/websocket_listener.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/config.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/errors.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/py.typed +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/.claude/settings.json +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/.claude-plugin/marketplace.json +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/.claude-plugin/plugin.json +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/.github/ISSUE_TEMPLATE/skill-rca.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/.github/pull_request_template.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/AGENTS.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/CLAUDE.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/CONTRIBUTING.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/LICENSE +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/README.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/SKILL.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/evals/evals.json +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/automation-patterns.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-cards.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/dashboard-guide.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/device-control.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/domain-docs.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/examples.yaml +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/helper-selection.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/safe-refactoring.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/template-guidelines.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/skills/home-assistant-best-practices/references/yaml-only-integrations.md +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/server.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/settings_ui.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/smoke_test.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/stdio_settings_sidecar.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/auto_backup.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/backup.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/best_practice_checker.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/device_control.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/enhanced.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/helpers.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/reference_validator.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/registry.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/smart_search.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_addons.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_areas.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_blueprints.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_bug_report.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_camera.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_categories.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_code.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_config_automations.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_config_dashboards.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_config_entry_flow.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_config_helpers.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_config_scenes.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_config_scripts.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_energy.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_entities.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_filesystem.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_groups.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_hacs.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_history.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_integrations.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_labels.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_mcp_component.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_registry.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_resources.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_search.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_service.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_services.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_system.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_todo.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_traces.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_updates.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_utility.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_voice_assistant.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_yaml_config.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_zones.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/util_helpers.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/transforms/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/transforms/categorized_search.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/transforms/lite_docstrings.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/utils/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/utils/config_hash.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/utils/data_paths.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/utils/domain_handlers.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/utils/fuzzy_search.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/utils/kill_signal_diagnostics.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/utils/operation_manager.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/utils/python_sandbox.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/utils/usage_logger.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp_dev.egg-info/SOURCES.txt +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp_dev.egg-info/dependency_links.txt +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp_dev.egg-info/entry_points.txt +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp_dev.egg-info/requires.txt +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp_dev.egg-info/top_level.txt +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/tests/__init__.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/tests/test_constants.py +0 -0
- {ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/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.5.0.
|
|
3
|
+
Version: 7.5.0.dev580
|
|
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
|
|
@@ -38,7 +38,7 @@ Dynamic: license-file
|
|
|
38
38
|
<!-- mcp-name: io.github.homeassistant-ai/ha-mcp -->
|
|
39
39
|
|
|
40
40
|
<p align="center">
|
|
41
|
-
<img src="https://img.shields.io/badge/tools-
|
|
41
|
+
<img src="https://img.shields.io/badge/tools-88-blue" alt="95+ Tools">
|
|
42
42
|
<a href="https://github.com/homeassistant-ai/ha-mcp/releases"><img src="https://img.shields.io/github/v/release/homeassistant-ai/ha-mcp" alt="Release"></a>
|
|
43
43
|
<a href="https://github.com/homeassistant-ai/ha-mcp/actions/workflows/e2e-tests.yml"><img src="https://img.shields.io/github/actions/workflow/status/homeassistant-ai/ha-mcp/e2e-tests.yml?branch=master&label=E2E%20Tests" alt="E2E Tests"></a>
|
|
44
44
|
<a href="LICENSE.md"><img src="https://img.shields.io/github/license/homeassistant-ai/ha-mcp.svg" alt="License"></a>
|
|
@@ -181,7 +181,7 @@ Spend less time configuring, more time enjoying your smart home.
|
|
|
181
181
|
<details>
|
|
182
182
|
<!-- TOOLS_TABLE_START -->
|
|
183
183
|
|
|
184
|
-
<summary><b>Complete Tool List (
|
|
184
|
+
<summary><b>Complete Tool List (88 tools)</b></summary>
|
|
185
185
|
|
|
186
186
|
| Category | Tools |
|
|
187
187
|
|----------|-------|
|
|
@@ -207,7 +207,7 @@ Spend less time configuring, more time enjoying your smart home.
|
|
|
207
207
|
| **Scripts** | `ha_config_get_script`, `ha_config_remove_script`, `ha_config_set_script` |
|
|
208
208
|
| **Search & Discovery** | `ha_deep_search`, `ha_get_overview`, `ha_get_state`, `ha_search_entities` |
|
|
209
209
|
| **Service & Device Control** | `ha_bulk_control`, `ha_call_event`, `ha_call_service`, `ha_get_operation_status`, `ha_list_services` |
|
|
210
|
-
| **System** | `
|
|
210
|
+
| **System** | `ha_check_config`, `ha_config_set_yaml` *(beta)*, `ha_get_updates`, `ha_manage_backup`, `ha_manage_custom_tool` *(beta)*, `ha_reload_core`, `ha_restart` |
|
|
211
211
|
| **Todo Lists** | `ha_get_todo`, `ha_remove_todo_item`, `ha_set_todo_item` |
|
|
212
212
|
| **Utilities** | `ha_eval_template`, `ha_install_mcp_tools` *(beta)*, `ha_report_issue` |
|
|
213
213
|
| **Zones** | `ha_get_zone`, `ha_remove_zone`, `ha_set_zone` |
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<!-- mcp-name: io.github.homeassistant-ai/ha-mcp -->
|
|
9
9
|
|
|
10
10
|
<p align="center">
|
|
11
|
-
<img src="https://img.shields.io/badge/tools-
|
|
11
|
+
<img src="https://img.shields.io/badge/tools-88-blue" alt="95+ Tools">
|
|
12
12
|
<a href="https://github.com/homeassistant-ai/ha-mcp/releases"><img src="https://img.shields.io/github/v/release/homeassistant-ai/ha-mcp" alt="Release"></a>
|
|
13
13
|
<a href="https://github.com/homeassistant-ai/ha-mcp/actions/workflows/e2e-tests.yml"><img src="https://img.shields.io/github/actions/workflow/status/homeassistant-ai/ha-mcp/e2e-tests.yml?branch=master&label=E2E%20Tests" alt="E2E Tests"></a>
|
|
14
14
|
<a href="LICENSE.md"><img src="https://img.shields.io/github/license/homeassistant-ai/ha-mcp.svg" alt="License"></a>
|
|
@@ -151,7 +151,7 @@ Spend less time configuring, more time enjoying your smart home.
|
|
|
151
151
|
<details>
|
|
152
152
|
<!-- TOOLS_TABLE_START -->
|
|
153
153
|
|
|
154
|
-
<summary><b>Complete Tool List (
|
|
154
|
+
<summary><b>Complete Tool List (88 tools)</b></summary>
|
|
155
155
|
|
|
156
156
|
| Category | Tools |
|
|
157
157
|
|----------|-------|
|
|
@@ -177,7 +177,7 @@ Spend less time configuring, more time enjoying your smart home.
|
|
|
177
177
|
| **Scripts** | `ha_config_get_script`, `ha_config_remove_script`, `ha_config_set_script` |
|
|
178
178
|
| **Search & Discovery** | `ha_deep_search`, `ha_get_overview`, `ha_get_state`, `ha_search_entities` |
|
|
179
179
|
| **Service & Device Control** | `ha_bulk_control`, `ha_call_event`, `ha_call_service`, `ha_get_operation_status`, `ha_list_services` |
|
|
180
|
-
| **System** | `
|
|
180
|
+
| **System** | `ha_check_config`, `ha_config_set_yaml` *(beta)*, `ha_get_updates`, `ha_manage_backup`, `ha_manage_custom_tool` *(beta)*, `ha_reload_core`, `ha_restart` |
|
|
181
181
|
| **Todo Lists** | `ha_get_todo`, `ha_remove_todo_item`, `ha_set_todo_item` |
|
|
182
182
|
| **Utilities** | `ha_eval_template`, `ha_install_mcp_tools` *(beta)*, `ha_report_issue` |
|
|
183
183
|
| **Zones** | `ha_get_zone`, `ha_remove_zone`, `ha_set_zone` |
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ha-mcp-dev"
|
|
7
|
-
version = "7.5.0.
|
|
7
|
+
version = "7.5.0.dev580"
|
|
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"
|
|
@@ -19,6 +19,7 @@ from ..errors import ErrorCode, create_error_response
|
|
|
19
19
|
from .auto_backup import with_auto_backup
|
|
20
20
|
from .helpers import (
|
|
21
21
|
exception_to_structured_error,
|
|
22
|
+
get_connected_ws_client,
|
|
22
23
|
log_tool_usage,
|
|
23
24
|
raise_tool_error,
|
|
24
25
|
register_tool_methods,
|
|
@@ -354,7 +355,10 @@ class CalendarTools:
|
|
|
354
355
|
"""
|
|
355
356
|
Delete an event from a calendar.
|
|
356
357
|
|
|
357
|
-
Deletes a calendar event
|
|
358
|
+
Deletes a calendar event via the WebSocket ``calendar/event/delete``
|
|
359
|
+
command. HA's calendar component only registers ``create_event`` and
|
|
360
|
+
``get_events`` as REST services — delete and update live on the
|
|
361
|
+
WebSocket API only.
|
|
358
362
|
|
|
359
363
|
**Parameters:**
|
|
360
364
|
- entity_id: Calendar entity ID (e.g., 'calendar.family')
|
|
@@ -402,8 +406,8 @@ class CalendarTools:
|
|
|
402
406
|
)
|
|
403
407
|
|
|
404
408
|
# entity_id format-check above does not cover the ``uid`` parameter.
|
|
405
|
-
# Empty/whitespace uid would flow through to
|
|
406
|
-
#
|
|
409
|
+
# Empty/whitespace uid would flow through to the WS command and HA
|
|
410
|
+
# returns a misleading "event not found".
|
|
407
411
|
validate_identifier_not_empty(
|
|
408
412
|
uid,
|
|
409
413
|
"uid",
|
|
@@ -413,21 +417,46 @@ class CalendarTools:
|
|
|
413
417
|
context={"entity_id": entity_id},
|
|
414
418
|
)
|
|
415
419
|
|
|
416
|
-
#
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
420
|
+
# ``calendar.delete_event`` is NOT a REST service — HA only
|
|
421
|
+
# registers ``calendar.create_event`` and ``calendar.get_events``.
|
|
422
|
+
# Delete is exposed exclusively via the WebSocket command
|
|
423
|
+
# ``calendar/event/delete`` (see HA Core
|
|
424
|
+
# ``homeassistant/components/calendar/__init__.py``).
|
|
425
|
+
ws_kwargs: dict[str, Any] = {"entity_id": entity_id, "uid": uid}
|
|
422
426
|
if recurrence_id:
|
|
423
|
-
|
|
427
|
+
ws_kwargs["recurrence_id"] = recurrence_id
|
|
424
428
|
if recurrence_range:
|
|
425
|
-
|
|
429
|
+
ws_kwargs["recurrence_range"] = recurrence_range
|
|
426
430
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
431
|
+
ws_client, conn_error = await get_connected_ws_client(
|
|
432
|
+
self._client.base_url,
|
|
433
|
+
self._client.token,
|
|
434
|
+
verify_ssl=self._client.verify_ssl,
|
|
430
435
|
)
|
|
436
|
+
if conn_error or ws_client is None:
|
|
437
|
+
raise_tool_error(
|
|
438
|
+
conn_error
|
|
439
|
+
or create_error_response(
|
|
440
|
+
ErrorCode.CONNECTION_FAILED,
|
|
441
|
+
"Failed to connect to Home Assistant WebSocket",
|
|
442
|
+
context={"entity_id": entity_id, "uid": uid},
|
|
443
|
+
)
|
|
444
|
+
)
|
|
445
|
+
|
|
446
|
+
try:
|
|
447
|
+
result = await ws_client.send_command(
|
|
448
|
+
"calendar/event/delete", **ws_kwargs
|
|
449
|
+
)
|
|
450
|
+
finally:
|
|
451
|
+
# Guard disconnect: a transport-teardown error here would
|
|
452
|
+
# otherwise replace the original send_command exception.
|
|
453
|
+
try:
|
|
454
|
+
await ws_client.disconnect()
|
|
455
|
+
except Exception as disconnect_error:
|
|
456
|
+
logger.debug(
|
|
457
|
+
f"WebSocket disconnect after delete_event for "
|
|
458
|
+
f"{entity_id} uid={uid}: {disconnect_error}"
|
|
459
|
+
)
|
|
431
460
|
|
|
432
461
|
return {
|
|
433
462
|
"success": True,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ha-mcp-dev
|
|
3
|
-
Version: 7.5.0.
|
|
3
|
+
Version: 7.5.0.dev580
|
|
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
|
|
@@ -38,7 +38,7 @@ Dynamic: license-file
|
|
|
38
38
|
<!-- mcp-name: io.github.homeassistant-ai/ha-mcp -->
|
|
39
39
|
|
|
40
40
|
<p align="center">
|
|
41
|
-
<img src="https://img.shields.io/badge/tools-
|
|
41
|
+
<img src="https://img.shields.io/badge/tools-88-blue" alt="95+ Tools">
|
|
42
42
|
<a href="https://github.com/homeassistant-ai/ha-mcp/releases"><img src="https://img.shields.io/github/v/release/homeassistant-ai/ha-mcp" alt="Release"></a>
|
|
43
43
|
<a href="https://github.com/homeassistant-ai/ha-mcp/actions/workflows/e2e-tests.yml"><img src="https://img.shields.io/github/actions/workflow/status/homeassistant-ai/ha-mcp/e2e-tests.yml?branch=master&label=E2E%20Tests" alt="E2E Tests"></a>
|
|
44
44
|
<a href="LICENSE.md"><img src="https://img.shields.io/github/license/homeassistant-ai/ha-mcp.svg" alt="License"></a>
|
|
@@ -181,7 +181,7 @@ Spend less time configuring, more time enjoying your smart home.
|
|
|
181
181
|
<details>
|
|
182
182
|
<!-- TOOLS_TABLE_START -->
|
|
183
183
|
|
|
184
|
-
<summary><b>Complete Tool List (
|
|
184
|
+
<summary><b>Complete Tool List (88 tools)</b></summary>
|
|
185
185
|
|
|
186
186
|
| Category | Tools |
|
|
187
187
|
|----------|-------|
|
|
@@ -207,7 +207,7 @@ Spend less time configuring, more time enjoying your smart home.
|
|
|
207
207
|
| **Scripts** | `ha_config_get_script`, `ha_config_remove_script`, `ha_config_set_script` |
|
|
208
208
|
| **Search & Discovery** | `ha_deep_search`, `ha_get_overview`, `ha_get_state`, `ha_search_entities` |
|
|
209
209
|
| **Service & Device Control** | `ha_bulk_control`, `ha_call_event`, `ha_call_service`, `ha_get_operation_status`, `ha_list_services` |
|
|
210
|
-
| **System** | `
|
|
210
|
+
| **System** | `ha_check_config`, `ha_config_set_yaml` *(beta)*, `ha_get_updates`, `ha_manage_backup`, `ha_manage_custom_tool` *(beta)*, `ha_reload_core`, `ha_restart` |
|
|
211
211
|
| **Todo Lists** | `ha_get_todo`, `ha_remove_todo_item`, `ha_set_todo_item` |
|
|
212
212
|
| **Utilities** | `ha_eval_template`, `ha_install_mcp_tools` *(beta)*, `ha_report_issue` |
|
|
213
213
|
| **Zones** | `ha_get_zone`, `ha_remove_zone`, `ha_set_zone` |
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/AGENTS.md
RENAMED
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/CLAUDE.md
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/resources/skills-vendor/LICENSE
RENAMED
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/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
|
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_config_automations.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_config_dashboards.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_config_entry_flow.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/tools/tools_config_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/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
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/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.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/transforms/categorized_search.py
RENAMED
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/transforms/lite_docstrings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp/utils/kill_signal_diagnostics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/src/ha_mcp_dev.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ha_mcp_dev-7.5.0.dev578 → ha_mcp_dev-7.5.0.dev580}/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
|