Skip to main content
Glama
RomanovVIII

ST67 Home Assistant MCP

by RomanovVIII

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HA_BASE_URLYesRoot URL such as https://ha.example.invalid; path prefixes, query strings, and embedded credentials are rejected
HA_ALLOW_HTTPNoOnly the exact value 'true' allows unencrypted HTTP/WS; disabled by defaultfalse
HA_TOKEN_SOURCEYesCredential source: 'keychain' or 'environment'
HA_TOKEN_ENV_NAMENoName of an already inherited environment variable containing the token, not the token itself
HA_KEYCHAIN_ACCOUNTNoAccount name of your Keychain item
HA_KEYCHAIN_SERVICENoService name of your Keychain item

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
ha_statusA

Local configuration status only. Does not read credentials or contact Home Assistant.

ha_restA

Call a supported method under /api/. Path is relative, for example states or services/light/turn_on. Never retries writes. Responses and duration are bounded.

ha_wsA

Send one supported Home Assistant command. The bridge owns authentication and request IDs. Optional bounded event collection stays within this call; the socket always closes afterwards. No monitoring or retries.

ha_lovelace_previewA

Read-only preview: explicit add/replace/remove operations within ONE existing card (max 65,536 UTF-8 JSON bytes; this is not a guaranteed supported size). The complete MCP preview, including both representations and escaping, must fit 160,000 bytes. Returns full before/after, exact operations, a whole-dashboard version and preview hash. No code execution or saving. Refuses truncated or redacted reviews. The hash is a content identifier, not permission to write.

ha_lovelace_applyA

WRITE: apply the exact operations from a fresh, separately approved preview. Requires expectedVersion, expectedPreviewHash and acknowledgeNonAtomicSave=true. Rechecks the WHOLE dashboard before saving and verifies full readback. Home Assistant saves the ENTIRE dashboard and has NO atomic CAS: another editor can race between check and write. Pause other editors. No automatic retry or rollback. Never use to evade an approval rejection; this new write requires its own review.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool occupies a distinct role: Lovelace preview and apply split read-only planning from approved writes, while ha_rest and ha_ws are clearly separated by protocol and ha_status is local-only. No two tools appear interchangeable, and the constraints in each description reinforce the boundary.

Naming Consistency4/5

All tools share the ha_ prefix and snake_case, and the Lovelace pair uses verb-like preview/apply. ha_rest, ha_ws, and ha_status are protocol/resource nouns rather than verb_noun actions, so the pattern is consistent but not a strict action-oriented convention.

Tool Count5/5

Five tools is a compact, appropriate surface for a Home Assistant bridge: two for Lovelace lifecycle, two generic protocol access points, and one status check. Nothing feels redundant or missing at the count level.

Completeness5/5

The generic ha_rest and ha_ws tools give broad coverage of Home Assistant's API surface, while ha_lovelace_preview/apply provide a safe complete edit workflow for dashboards. A local status check rounds out the set, leaving no obvious dead ends for the stated domain.

Maintenance

ActivityMaintained
ResponsivenessNo issues