Skip to main content
Glama

Install a HACS repository

hacs_install_hacs_repository
Idempotent

Install a known HACS repository to add integrations, plugins, or themes, with optional version pinning. Downloads the release from its source and requires a component restart.

Instructions

Install a HACS repository, optionally pinning a version.

Calls the hacs/repository/download WebSocket command (HACS has no separate "install" command — download installs when not yet installed, or re-downloads in place when it is), which fetches the repository's release from its source (typically GitHub) — an outbound fetch beyond this HA instance and its host.

Use when: adding a HACS-managed integration/plugin/theme that is already known to HACS (via the default store or hacs_add_custom_repository). Not for: adding a repository HACS does not know about yet — use hacs_add_custom_repository first. Returns: HACS's install result, or {"error": ..., "hint": ...} if the WebSocket call fails. Errors: {"error": str(exception), "hint": "HACS may not be installed, or the WS command name has changed"} when repo_id/version is invalid or the WebSocket command fails. Limits: downloads the release over the network; requires a restart of the affected component for most categories.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
repo_idYesHACS repository id to install, e.g. from `hacs_list_hacs_repositories`.
versionNoSpecific version/tag to pin. Omit to install the latest available version.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.25.1
    • addedInput schema / properties / repo_id / description
      Added value: +"HACS repository id to install, e.g. from `hacs_list_hacs_repositories`."
    • addedInput schema / properties / version / description
      Added value: +"Specific version/tag to pin. Omit to install the latest available version."
  2. First observedv0.3.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=false, idempotentHint=true, and openWorldHint=true, but the description adds substantial extra context: it explains the WebSocket command used, that it re-downloads in place when already installed, that it performs an outbound fetch beyond the HA instance, and that a restart is typically required. It also documents error shapes and network limits, going well beyond what the annotations provide.

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

Conciseness5/5

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

The description is front-loaded with the action, then structured into 'Use when', 'Not for', 'Returns', 'Errors', and 'Limits' sections. Despite its technical depth, every sentence adds useful information, and there is no redundant filler.

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?

Given the presence of an output schema, the description needn't explain return values, but it still provides useful return and error shape details plus operational limits (network fetch, restart requirement). This is complete enough for an agent to select and invoke the tool correctly.

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 the schema already documents both repo_id and version with examples and default behavior. The description only restates that a version can be pinned ('optionally pinning a version') without adding format or edge-case detail beyond the schema, so the baseline of 3 is appropriate.

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 ('Install a HACS repository') and immediately distinguishes the underlying mechanism from a separate install command. The 'Use when' and 'Not for' sentences make the scope unambiguous and separate it from sibling tools like hacs_add_custom_repository.

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?

Explicitly states when to use the tool (adding a HACS-managed integration/plugin/theme already known to HACS) and when not to use it (adding an unknown repository, which requires hacs_add_custom_repository first). The alternative is named directly, leaving no inference needed.

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