This is the minimum surface that makes a smart home addressable from a chat window, and the smallness is the point — there is no device model to learn, only entity ids and states. What it does not give you is anything Home Assistant does beyond entities and automations: no scenes, no scripts, no history, no service calls with arbitrary payloads.
A small MCP server that talks to a Home Assistant instance over its REST API using a long-lived access token. It covers the four operations a household assistant actually needs: look up an entity's state, turn something on or off, run an automation, and enumerate the entities available.
- The current state of one entity by its entity id, such as a light or a sensor — `get_state`
- An entity switched on or off by id — `toggle_entity`
- An existing Home Assistant automation fired by its automation id — `trigger_automation`
- The entities on the instance listed, optionally narrowed to one domain such as lights — `list_entities`
A running Home Assistant instance and a long-lived access token from it: `HA_URL` points at the instance, `HA_TOKEN` carries the token. The npm package name is `homeassistant-server` (0.1.0) and it is marked private, so the install path is a clone plus `npm install` and `npm run build`, then pointing your client at the built `index.js` — or the Smithery installer, which wires the Claude Desktop entry for you. Serve Home Assistant over HTTPS before handing the token to anything, since the token grants whatever your account can do.
One command plus a key — npx -y @smithery/cli install @hekmon8/Homeassistant-server-mcp --client claude, then supply credentials
