zont-mcp
Summary: ZONT MCP server lets MCP clients (Claude, etc.) read and control ZONT/Mega SX devices through the ZONT API.
Capabilities:
Obtain a reusable authentication token using zont_get_authtoken.
List devices and their current states/settings with zont_list_devices.
Add, update, or delete/transfer devices with zont_add_device, zont_update_device, zont_delete_device.
Control security/guard, siren, engine block, Webasto heater, and auto-ignition via zont_set_io_port.
Send custom device commands with zont_send_custom_command.
Send undocumented z3k commands, e.g. setting heating target temperature, with zont_send_z3k_command.
Load historical data: temperature, thermostat, GPS, events, controller state, and more using zont_load_data.
Fetch raw event history for a device with zont_raw_events.
Generate and download compressed data archives with zont_generate_archive and zont_download_archive.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@zont-mcp arm the security on my ZONT device and show its current state"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
zont-mcp
MCP-сервер для API ZONT — позволяет любому MCP-клиенту (Claude, и т.п.) читать состояние устройств ZONT / Mega SX и управлять ими: охрана, сирена, блокировка двигателя, автозапуск, термостат, история событий и данных, архивы.
Настройка
Сервер получает учётные данные ZONT из переменных окружения:
Переменная | Обязательна | Описание |
| да | Ваш e-mail или контакт — отправляется в заголовке |
| нет* | Аутентификационный токен ZONT (предпочтительный способ) |
| нет* | Логин ZONT (если токена нет) |
| нет* | Пароль ZONT (если токена нет) |
* нужно задать либо ZONT_TOKEN, либо пару ZONT_LOGIN/ZONT_PASSWORD.
Токен можно получить один раз через инструмент zont_get_authtoken (запустив сервер с
логином/паролем), а затем использовать его вместо пароля.
Пример конфигурации для Claude Code / Claude Desktop
{
"mcpServers": {
"zont": {
"command": "uvx",
"args": ["zont-mcp"],
"env": {
"ZONT_CLIENT": "you@example.com",
"ZONT_TOKEN": "xxxxxxxxxxxxxxxxxx"
}
}
}
}Пакет пока не опубликован в PyPI — до публикации запускайте из исходников:
uvx --from /absolute/path/to/zont-mcp zont-mcp, либо напрямую из git:
uvx --from git+https://github.com/danilmolkov/zont-mcp zont-mcp.
Related MCP server: StarLine MCP
Инструменты
Инструмент | Метод ZONT API | Описание |
|
| Получить токен по логину/паролю |
|
| Список устройств и их настроек/состояний |
|
| Добавить устройство |
|
| Удалить устройство / передать другому пользователю |
|
| Изменить настройки устройства |
|
| Управление охраной/сиреной/блокировкой/автозапуском |
|
| Отправить пользовательскую команду |
|
| Команды для z3k-устройств (например, целевая температура контура отопления) — см. docs/z3k-api.md |
|
| История датчиков, термостата, GPS, событий и т.д. |
|
| История событий устройства |
|
| Запросить создание архива данных |
|
| Скачать готовый архив на диск |
Разработка
uv sync # установить зависимости
uv run zont-mcp # запустить сервер напрямуюAvailable Tools
12 toolszont_add_deviceA
Добавить новое устройство в аккаунт пользователя ZONT.
devtype: идентификатор типа устройства, например T100, T102, L1000, ZTC-700, SX250 и т.д. name: название устройства для пользователя. serial: серийный номер устройства. timezone: часовой пояс устройства. tel_password: телефонный пароль для GSM-устройств (только цифры). notes: произвольные заметки об устройстве. wifi_credentials: параметры Wi-Fi сетей вида [{"ssid": ..., "password": ...}] (только для устройств с Wi-Fi). boiler_vendor: производитель котла. boiler_model: модель котла.
Inputs: name (required), serial (required), devtype (required), timezone (required), +5 more. Returns: object
zont_delete_deviceA
Удалить устройство из аккаунта пользователя ZONT (или передать другому пользователю).
device_id: ID устройства. transfer: передать устройство другому пользователю вместо удаления. transfer_username: логин пользователя-получателя (только если transfer=true). clear_access: отозвать доступ других пользователей к устройству. clear_data: удалить все накопленные данные устройства.
Inputs: device_id (required), transfer, clear_data, clear_access, +1 more. Returns: object
zont_download_archiveA
Скачать zip-архив, ранее созданный zont_generate_archive, и сохранить на диск.
archive_id: идентификатор архива, полученный от zont_generate_archive. output_path: путь к файлу, куда сохранить скачанный zip-архив.
Inputs: archive_id (required), output_path (required). Returns: object
zont_generate_archiveA
Запросить создание архива со всеми данными устройства за период времени.
Возвращает archive_id, который затем нужно передать в zont_download_archive.
device_id: ID устройства. mintime: начало диапазона (unix time, включительно). maxtime: конец диапазона (unix time, включительно). split_by: разбиение файлов внутри архива — по дням ("days") или по месяцам ("months").
Inputs: maxtime (required), mintime (required), split_by (required), device_id (required). Returns: object
zont_get_authtokenA
Получить долгоживущий аутентификационный токен ZONT по логину/паролю.
Требует, чтобы сервер был запущен с ZONT_LOGIN и ZONT_PASSWORD. Полученный токен можно передать в переменную окружения ZONT_TOKEN для последующих запусков.
client_name: человекопонятное название приложения, запрашивающего токен.
Inputs: client_name (required). Returns: object
zont_list_devicesB
Получить список всех устройств пользователя ZONT и их настроек.
load_io: возвращать ли в поле io текущие состояния каждого устройства.
Inputs: load_io. Returns: object
zont_load_dataA
Загрузить историю данных устройств.
Показания температурных датчиков, работа термостата, GPS-треки, события, состояние контроллера и т.д. Можно запросить несколько устройств и типов данных за один вызов. Временные метки — unix time (секунды с 1970-01-01 UTC).
requests: список запросов вида {"device_id": int, "data_types": [str, ...], "mintime"?: int, "maxtime"?: int}. data_types, например: temperature, thermostat_work, gps, events, custom_controls, z3k_temperature, z3k_boiler_adapter, ztc_state.
Inputs: requests (required). Returns: object
zont_raw_eventsA
Получить историю событий устройства за заданный промежуток времени.
Постановка/снятие с охраны, тревоги, GPS/GSM, автозапуск и т.д.
device_id: ID устройства. mintime: начало диапазона (unix time, включительно). maxtime: конец диапазона (unix time, включительно). only: возвращать только события этих типов. except_: не возвращать события этих типов (соответствует полю "except" в API).
Inputs: maxtime (required), mintime (required), device_id (required), only, +1 more. Returns: object
zont_send_custom_commandB
Отправить устройству (ZTC-7xx, Mega SX) пользовательскую команду.
Команды заданы в настроечной утилите. Идентификатор команды берётся из настройки custom_controls устройства (см. zont_list_devices).
device_id: ID устройства. command_id: ID команды.
Inputs: device_id (required), command_id (required). Returns: object
zont_send_z3k_commandA
Отправить недокументированную z3k-команду устройству (H-2000+/H1V/Climatic и т.п.).
ВНИМАНИЕ: метод send_z3k_command отсутствует в официальной документации ZONT API. Формат восстановлен вручную перехватом сетевых запросов веб-интерфейса ZONT (my.zont.online) — используй осторожно и проверяй результат через zont_list_devices.
Известный пример: изменение целевой температуры контура отопления — command_name="TargetTemperature", object_id=<id контура из z3k_config.heating_circuits или z3k_config.boiler_adapters>, command_args={"value": <новая температура>}.
device_id: ID устройства. object_id: ID объекта z3k (например, id отопительного контура). command_name: имя команды (например "TargetTemperature"). command_args: аргументы команды, например {"value": 19}. firmware_version: версия прошивки устройства (из devices[].firmware_version[0]); если не передать, будет опущена в запросе. is_guaranteed: требовать ли гарантированную доставку команды (по умолчанию true).
Inputs: device_id (required), object_id (required), command_args (required), command_name (required), +2 more. Returns: object
zont_set_io_portA
Отправить устройству команду на изменение состояния.
Управляет охраной (guard-state), сиреной (siren), блокировкой двигателя (engine-block), подогревателем (webasto) или автозапуском (auto-ignition). Команда доставляется, только когда устройство на связи.
portname: имя состояния, которым нужно управлять. type: тип значения — "string" для guard-state, "auto-ignition" для auto-ignition, "bool" для остальных. value: требуемое значение — true/false для bool; "enabled"/"disabled" для guard-state; объект {"state": ..., "time"?: ...} для auto-ignition.
Inputs: type (required), value (required), portname (required), device_id (required). Returns: object
zont_update_deviceA
Изменить настройки устройства ZONT.
Например режим термостата, целевые температуры, доверенные номера и т.д. Передайте только те поля настроек, которые нужно изменить — остальные сохранят прежние значения. Полный список возможных настроек описан в разделе «Параметры устройств» документации ZONT API (общие, беспроводная сеть, автомобиль, отопление).
device_id: ID устройства. settings: объект настроек устройства, которые нужно изменить, например {"thermostat_mode_temps": {"comfort": 21}}.
Inputs: settings (required), device_id (required). Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Several tools overlap in purpose: zont_load_data can fetch events while zont_raw_events is dedicated to events, and zont_update_device can change temperatures that zont_send_z3k_command also controls. The command-sending trio (set_io_port, send_custom_command, send_z3k_command) is differentiated by device type and command source, but an agent may still struggle to pick the right one without careful reading.
All tools use the zont_ prefix and snake_case, with a mostly consistent verb_noun pattern (get, list, add, delete, update, generate, download, set, send, load). The one deviation is zont_raw_events, which uses an adjective rather than a verb, but this is a minor inconsistency.
12 tools are well-scoped for a device management server covering authentication, CRUD, commands, data retrieval, and archives. Each tool earns its place without excessive granularity or missing functionality.
The surface covers the full device lifecycle: authenticate, list/add/update/delete devices, send various commands, retrieve history and events, and generate/download archives. No obvious dead ends for typical ZONT API workflows.
Maintenance
Related MCP Connectors
Managed MCP gateway with OAuth, per-agent permissions, shared accounts and activity logs.
MCP server wrapping the Tesla Fleet API and TeslaMate API
An authenticated remote MCP server for user-owned devices and one-shot capability invocation.
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAn MCP server that connects AI assistants to the ZONT heating system via the official REST API. It enables users to monitor device states, control heating modes, and perform diagnostics using natural language.1MIT
- AlicenseAqualityDmaintenanceMCP server for controlling StarLine car alarms via AI agents like Claude, providing read-only tools and command tools with human confirmation.8MIT
- AlicenseAqualityBmaintenanceEnables controlling Home Assistant from an MCP client, allowing users to read device states, call services, and run configuration commands via REST and WebSocket.5MIT
- AlicenseAqualityBmaintenanceEnables control and monitoring of an ADT Control / Alarm.com security system from MCP-compatible hosts, including checking system and device state, reviewing activity, and safely arming, disarming, locking, or adjusting devices through confirmation-gated actions and a local audit trail.11MIT