---
name: automater-house
description: Operate an automater.house home-automation instance over MCP — list and control device groups, read rules and the live activity log, and run local device discovery. Use when the user asks to turn lights or plugs on/off, dim a room, check what's happening in the house, or find new devices.
---

# automater.house

automater.house is a self-hosted, LAN-only control plane for a home. It owns the
**groups** (a named set of devices, usually a room), the **rules** (trigger →
optional condition → action → optional timer) and an **activity log** of
everything that happens. Voice assistants are only sync targets; automater is
the source of truth.

You reach it through its MCP server at `http://localhost:8800/mcp` with the
bearer token the user copied from **Settings → AI agent** (or the setup
wizard). Nothing leaves the user's network.

## Tools

| Tool | Use it to |
|---|---|
| `list_groups` | See every group: `id`, `name`, member count, last-known `on` state. Always call this first to map a room name to its `id`. |
| `control_group` | Turn a group on/off. Args: `group_id`, `on` (bool), optional `brightness` 1–100 (only applied when turning on). |
| `list_rules` | Read the automations: trigger, action, enabled. Read-only. |
| `list_devices` | Discovered devices with driver (`hue`, `kasa`, `hap`, `matter`), IP and kind. |
| `get_activity` | Recent log lines (`limit`, default 40): sensor events, rule fires, device commands, errors. |
| `run_discovery` | Scan the LAN (~6 s) for Hue, Kasa, HomeKit and Matter devices. Slow — only when the user asks to find devices. |

## How to work

1. **Resolve names first.** "Turn off the kitchen" → `list_groups`, match
   `name` case-insensitively ("Kitchen"), then `control_group` with its `id`.
   If two groups match or none do, ask; never guess an id.
2. **Confirm by reading back.** After `control_group`, call `get_activity`
   (limit 5) and tell the user what the log shows — e.g. "Kitchen → off".
   If the log shows `failed` or `not paired`, say so plainly; don't claim it worked.
3. **Brightness** is a percentage. "Dim the office" with no number → 30.
   "Bright" → 100. Brightness only applies when turning **on**.
4. **Whole house.** "Turn everything off" means one `control_group` per group
   from `list_groups`. State the count you changed.
5. **Rules are read-only here.** Explain them in plain words
   ("When the hallway sensor sees motion, the Hallway turns on at 80% and
   back off after 3 minutes"). To create or edit rules, send the user to the
   automater.house UI.
6. **Diagnose with the log.** "Why did the porch light come on?" →
   `get_activity` and look for the `rule` line that fired just before the
   `action` line.

## Drivers and their limits

- **Hue** — full local control of rooms (grouped lights). Needs the bridge
  paired in the app.
- **Kasa** — on/off for plugs, plus brightness for dimmers (e.g. KP405).
  Newer KLAP-firmware units need TP-Link credentials and aren't controllable yet.
- **HomeKit / Matter** — discovered and listed, but not controllable from
  automater yet. Say that instead of trying.

## Safety

- Only act on what the user asked. Don't turn devices on or off "to test".
- Never print the MCP token or any other key back to the user.
