# Larnitech [Health: Active]

**Category:** 🏠 Home Automation  
**Repository:** https://github.com/mpopovych-thinkhome/larnitech-mcp  
**GitHub Stars:** 1  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/larnitech

## Description
Read, watch and safely control Larnitech smart-home controllers over the API2 protocol.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `uvx` (confidence: high):

```json
"mcpServers": {
  "larnitech": {
    "command": "uvx",
    "args": ["larnitech-mcp"]
  }
}
```

## Documentation

## What Larnitech MCP server does

The Larnitech MCP server exposes an AI agent to Larnitech installations managed through the API2 protocol. It can inspect configured controllers, test connectivity, list devices, retrieve one device by address, and filter snapshots by area, type, or name. Supported installation data includes lights, climate devices, blinds, sensors, and meters.

The server also provides type-specific reference material. Agents can look up documented status fields, enumerations, XML attributes, script layouts, protocol details, and confirmed vendor issues instead of interpreting device keys without context. Returned data identifies conditions such as opaque hexadecimal values, malfunction responses, offline devices reporting `undefined`, and meter payloads containing `null` because a poll produced no data.

## How it works

The Larnitech MCP server runs as a Python MCP process over stdio, started with `python -m larnitech_mcp serve`. It can connect to a controller through the Larnitech cloud or directly over a local network. Consecutive read requests reuse an authorized connection for up to four minutes. A watch maintains its own connection, allowing an agent to start a watch, continue other work, and later read changes with per-key `from` and `to` values.

Control operations use a two-stage flow. `set_device` validates the requested payload, reads current state, and returns a preview with a single-use token; it does not change the controller. `confirm_set` performs the operation, waits for the device to settle, and reports the resulting state, including changes made by the controller that were not requested. The server can reject unsafe combined writes and require ordered sequences for device types whose channels override one another.

## Setup and configuration

Python 3.11 or newer and an administrated Larnitech controller are required. Install the package with `pip install larnitech-mcp`, preferably in a virtual environment. Register a controller with its cloud serial number or local host, then store its API key using the `auth` command. API keys come from LT_Setup under Security, while serial numbers, LAN addresses, and WebSocket settings are found under the installation’s general or API settings.

Configuration data, keys, preferences, snapshots, and recorded device notes are stored outside the installed package in `~/.larnitech-mcp/`. Snapshots normally use a controller-specific data directory, though an existing project directory can be selected for a site’s files. The server can be added to an MCP client using the absolute Python interpreter path and the `serve` module command.

Write access must be enabled from a terminal for each controller with `allow-write`; an agent cannot enable it through a tool. Treat the API key as a password. The key is stored through the authentication command rather than passed through the chat transcript.

## Tools and capabilities

- Inspect controllers and connection status with `list_objects` and `check_connection`.
- List devices or retrieve one device using `list_devices` and `get_device`.
- Read device-type, protocol, and known-bug documentation with `get_docs`.
- Start, read, stop, and list non-blocking watches.
- Preview and confirm controlled writes with `set_device` and `confirm_set`.
- Save, list, and parse structured controller snapshots.
- Persist device notes and agent preferences with `add_docs_note` and `add_preference`.
- Prepare a sanitized repository bug report link without posting the issue.

## Limitations and notes

API2 behavior is not uniform across device types, and some devices require ordered write sequences. A successful controller response does not necessarily mean every requested value was applied, so confirmation results and documented quirks matter. Snapshot files preserve numeric values and `null` values distinctly, which is important when differentiating missing meter data from zero readings.

The server does not return API keys and masks them in errors. The bug-report tool removes identifiers such as keys, serial numbers, hostnames, and site names, but submission remains a manual step through the generated link.

_Full upstream README: https://allmcps.com/mcp/larnitech/readme_

