Skip to main content
Glama

Update a HACS repository

hacs_update_hacs_repository
Destructive

Update an installed HACS repository when a pending upgrade exists: refresh repository data, read the available version, then download and install it over WebSocket.

Instructions

Update an installed HACS repository to its latest available version.

HACS has no single "update" WebSocket command. This performs the three calls HACS's own frontend makes for an update: hacs/repository/refresh (re-fetches repository data; always returns {}, no version info), then hacs/repository/info (reads the resulting available_version), then hacs/repository/download with that version — which downloads and installs the newest release over the network; the previous version is only recoverable from a backup taken beforehand.

Use when: pending_upgrade is set for the repository (see hacs_list_hacs_critical_updates) and the new version should be applied. Not for: pinning a specific version instead of the latest — use hacs_install_hacs_repository with version set. Returns: HACS's download result, or {"error": ..., "hint": ...} if any of the three WebSocket calls fails. Errors: {"error": str(exception), "hint": "HACS may not be installed, or the WS command name has changed"} when the refresh or info call fails (the download call is then never made); {"error": "HACS did not report an available_version for this repository", "raw": ...} when info succeeds but has nothing to update to. Limits: downloads the new release over the network; no automatic rollback on failure; three sequential WebSocket round-trips instead of one.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
repo_idYesHACS repository id to update, e.g. from `hacs_list_hacs_repositories`.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.25.1
    • addedInput schema / properties / repo_id / description
      Added value: +"HACS repository id to update, e.g. from `hacs_list_hacs_repositories`."
  2. First observedv0.3.0

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive/not-idempotent/openWorld, and the description adds substantially beyond them: the three underlying WebSocket calls, that refresh returns no version info, that the new release is downloaded over the network, that the previous version is only recoverable from a prior backup, that there is no automatic rollback, and the exact error shapes and when the download step is skipped.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the action, then structured with labeled Use when / Not for / Returns / Errors / Limits sections. Every section carries real information, though it is on the verbose end for a one-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, multi-step, non-idempotent tool, the description covers prerequisites, alternatives, failure modes, side effects, and recovery constraints. Despite having both an output schema and annotations, it adds error-shape detail those structured fields do not carry.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and there is a single parameter, so the schema already documents repo_id fully. The description adds no syntax, format, or source guidance beyond what the schema's description ('e.g. from hacs_list_hacs_repositories') already provides. Baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Update an installed HACS repository to its latest available version') and immediately distinguishes itself from hacs_install_hacs_repository for version pinning. The agent knows exactly what this does without reading anything else.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'Use when: `pending_upgrade` is set ... (see hacs_list_hacs_critical_updates)' and 'Not for: pinning a specific version instead of the latest — use hacs_install_hacs_repository with `version` set.' Both the trigger condition and the alternative tool with its selecting argument are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools