Skip to main content
Glama

Get system health checks

system_get_system_health
Read-onlyIdempotent

Retrieve Home Assistant's system health across core subsystems, merging WebSocket events into one report for checking recorder, cloud, network, and version info.

Instructions

Get Home Assistant's system-health report across its core subsystems.

Runs the system_health/info WebSocket subscription to completion and merges its initial/update/finish events into one dict, since HA exposes system health only as a WebSocket stream, not over HTTP.

Use when: checking recorder/websocket/cloud/network-style health checks and basic system info (version, dev mode, virtualenv) in one call. Not for: a plain liveness check — use system_ping_ha; for HA version/location/config use history_get_ha_config. Returns: dict keyed by integration domain, each with an info dict mapping check name to value (or {"error": ...} for a failed check). Errors: raises RuntimeError on WebSocket auth failure or a WS-level error from system_health/info. Limits: waits up to an internal 15-second timeout for the stream's finish event; on timeout it returns whatever partial data arrived instead of raising.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.18.1

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses that the tool must run a WebSocket subscription to completion, that it merges initial/update/finish events, that it raises RuntimeError on auth or WS-level failure, and that a 15-second internal timeout yields partial data rather than an error. That partial-result behavior is exactly the kind of trait annotations cannot express.

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 core action, then cleanly segmented into Use when / Not for / Returns / Errors / Limits. The WebSocket-implementation sentence is slightly more background than an agent strictly needs, but every labeled section carries actionable content and nothing is 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?

Even though an output schema exists, the description usefully characterizes the return shape (dict keyed by integration domain with per-check info or error entries) and closes the remaining gaps an agent would face: failure modes and the timeout/partial-data limit. Nothing material is left unspecified.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline for a no-parameter tool is 4. The description correctly adds no parameter prose, which is appropriate here.

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 (Get) and resource (Home Assistant's system-health report across core subsystems), plus the mechanism (the `system_health/info` WebSocket subscription merged into one dict). This is clearly distinguishable from siblings like `system_ping_ha` and `history_get_ha_config`, both of which it names.

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?

Has explicit 'Use when' (recorder/websocket/cloud/network health checks plus version/dev-mode/virtualenv info) and 'Not for' clauses that route the agent to named alternatives (`system_ping_ha` for liveness, `history_get_ha_config` for version/location/config). Both the positive and negative selection criteria are spelled out.

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