Skip to main content
Glama
Home Assistant MCP Server

Home Assistant MCP Server

by rilhia

Get the structured system log

get_system_log
Read-onlyIdempotent

Retrieve grouped Home Assistant error and warning logs with occurrence counts, source, and last message to identify recurring issues without scanning raw logs.

Instructions

Errors and warnings Home Assistant has logged, grouped with occurrence counts, source and the last message. Easier to scan than the raw error log.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "get_system_log"
  }
}

Input Schema

NameRequiredDescriptionDefault
levelNo
limitNo
queryNoText matched against logger name and message.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.1

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds genuinely new context by disclosing the result shape (grouped entries with occurrence counts, source, last message), which matters since there is no output schema. It does not address ordering, whether the limit applies to groups or raw entries, or truncation of the 'last message'.

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?

Two compact sentences with no filler, and the content description is front-loaded ahead of the comparative note. Every clause carries information about what comes back.

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

Completeness3/5

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

For a simple three-parameter read tool with strong annotations, the description covers the return content well but omits any guidance on the level filter or the limit cap, which are the only levers an agent can pull. Adding one clause on filtering by severity would make it complete.

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

Parameters2/5

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

Schema description coverage is only 33% — only 'query' is documented in the schema, while 'level' (enum CRITICAL/ERROR/WARNING) and 'limit' (default 25, max 100) have no descriptions. The description mentions no parameters at all, so it fails to compensate for the coverage gap on filtering and result-size behavior.

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

Purpose4/5

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

The description states the resource precisely: logged errors and warnings, grouped with occurrence counts, source, and last message. It implicitly distinguishes itself from the sibling get_error_log ('Easier to scan than the raw error log'), so an agent can tell the two apart, though the verb ('retrieves') is left implicit in the noun-phrase framing.

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

Usage Guidelines3/5

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

'Easier to scan than the raw error log' hints that this is the preferred tool for reviewing log problems, which is useful implied routing to/from get_error_log. However, it never states an explicit when-to-use condition, when to prefer get_error_log instead, or how to use the level filter to narrow scope, leaving the agent to infer usage.

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