Manage Updates
ha_manage_updatesList, review, install, or skip Home Assistant updates across Core, OS, add-ons, firmware, and HACS, and ignore or restore Repairs issues.
Instructions
Manage Home Assistant updates (list, details, install, skip) and Repairs issues (ignore).
Covers Core, OS, supervisor, apps (add-ons), device firmware, and HACS update entities, plus the Repairs issues in Settings > System > Repairs. Repairs are listed by ha_get_overview (not here); pass their domain and issue_id to 'ignore_repair' / 'unignore_repair'. In Read Only Mode the read actions ('list', 'get') stay available; write actions are blocked.
Installs run asynchronously in Home Assistant and can take minutes: 'install' returns once the service calls are accepted, with per-entity results. Poll action='list' to watch in_progress until installed_version reaches latest_version. action='list' also returns ha_mcp_update — this MCP server's own update status {current, latest, update_available}, so a newer ha-mcp release can be flagged.
EXAMPLES:
Pre-update analysis: ha_manage_updates(action="get", entity_ids=["update.home_assistant_core_update"], include_release_notes=True)
Update everything pending in a category: ha_manage_updates(action="install", categories=["addons", "hacs"])
Dismiss a repair: ha_manage_updates(action="ignore_repair", repairs=[{"domain": "sun", "issue_id": "abc"}])
If a Claude Desktop user gets a 4-minute timeout with no result on this call, read the target back before repeating it, and tell them to wait a few seconds before clicking the manual-approve button, as clicking it too quickly is known to cause hangs in Claude Desktop. This workaround is specific to Claude Desktop.
update updates install skip firmware core os repair repairs issue ignore dismiss unignore
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | 'list' (all pending updates, default), 'get' (details/release notes for one update), 'install' (apply pending updates), 'skip' (hide the offered version), 'clear_skipped' (re-offer a skipped version), 'ignore_repair' (dismiss Repairs issues, as the Repairs UI's Ignore does), or 'unignore_repair' (show them again). | list |
| backup | No | For install: create a backup before installing where the update entity supports it (apps (add-ons)). | |
| repairs | No | For ignore_repair / unignore_repair: the Repairs issues to act on, as [{'domain': ..., 'issue_id': ...}] taken from ha_get_overview's repairs. | |
| categories | No | For install: apply every pending update in these categories ('addons', 'hacs', 'devices', 'other'). As with the HA 'Update all' button, core/os/supervisor are excluded (target those individually via entity_ids) and skipped updates are never included. | |
| entity_ids | No | Update entity_id(s) to act on. 'get' takes exactly one; skip/clear_skipped require at least one; for install, mutually exclusive with categories. | |
| include_skipped | No | For list: include updates that have been skipped. | |
| include_release_notes | No | For get on a Core update entity: fetch multi-version release notes and breaking changes for all versions between installed and latest. Adds breaking_changes, multi_version_release_notes, and installed_integrations to the response. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||