Skip to main content
Glama

zont-mcp

MCP-сервер для API ZONT — позволяет любому MCP-клиенту (Claude, и т.п.) читать состояние устройств ZONT / Mega SX и управлять ими: охрана, сирена, блокировка двигателя, автозапуск, термостат, история событий и данных, архивы.

Настройка

Сервер получает учётные данные ZONT из переменных окружения:

Переменная

Обязательна

Описание

ZONT_CLIENT

да

Ваш e-mail или контакт — отправляется в заголовке X-ZONT-Client

ZONT_TOKEN

нет*

Аутентификационный токен ZONT (предпочтительный способ)

ZONT_LOGIN

нет*

Логин ZONT (если токена нет)

ZONT_PASSWORD

нет*

Пароль 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

Описание

zont_get_authtoken

get_authtoken

Получить токен по логину/паролю

zont_list_devices

devices

Список устройств и их настроек/состояний

zont_add_device

add_device

Добавить устройство

zont_delete_device

delete_device

Удалить устройство / передать другому пользователю

zont_update_device

update_device

Изменить настройки устройства

zont_set_io_port

set_io_port

Управление охраной/сиреной/блокировкой/автозапуском

zont_send_custom_command

send_custom_command

Отправить пользовательскую команду

zont_load_data

load_data

История датчиков, термостата, GPS, событий и т.д.

zont_raw_events

raw_events

История событий устройства

zont_generate_archive

generate_archive

Запросить создание архива данных

zont_download_archive

download_generated_archive

Скачать готовый архив на диск

Разработка

uv sync            # установить зависимости
uv run zont-mcp     # запустить сервер напрямую

Available Tools

12 tools
zont_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: модель котла.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
notesNo
serialYes
devtypeYes
timezoneYes
boiler_modelNo
tel_passwordNo
boiler_vendorNo
wifi_credentialsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden. It does not state whether this requires specific permissions, what happens on duplicate serial numbers or errors, or any rate limits. The parameter hints (e.g., 'tel_password: only digits') add minor context, but overall behavioral disclosure is thin for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear purpose sentence followed by parameter explanations. It is appropriately sized for a 9-parameter tool, though it slightly lacks front-loading of critical usage constraints. Each line earns its place by clarifying a parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, with no annotations and 0% schema description coverage, the description leaves gaps in behavioral aspects like authentication requirements, error conditions, and whether the device is immediately usable. It is adequate but not complete for a creation tool with nine parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does so by providing human-readable explanations for all nine parameters, including examples for devtype (T100, T102, L1000, etc.), format for wifi_credentials, and constraints like 'tel_password: only digits'. This significantly improves parameter understanding beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Добавить новое устройство в аккаунт пользователя ZONT' (Add a new device to the ZONT user account). It clearly distinguishes from siblings like zont_delete_device and zont_update_device, which perform different operations on devices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by stating it adds a device to a user account, but offers no explicit when-to-use vs alternatives, no prerequisites, and no exclusions. For a creation tool, guidance on needing an authenticated account or conflicts with existing serial numbers would be valuable but is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zont_delete_deviceA

Удалить устройство из аккаунта пользователя ZONT (или передать другому пользователю).

device_id: ID устройства. transfer: передать устройство другому пользователю вместо удаления. transfer_username: логин пользователя-получателя (только если transfer=true). clear_access: отозвать доступ других пользователей к устройству. clear_data: удалить все накопленные данные устройства.

ParametersJSON Schema
NameRequiredDescriptionDefault
transferNo
device_idYes
clear_dataNo
clear_accessNo
transfer_usernameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It usefully discloses that clear_data removes accumulated data and clear_access revokes other users' access, clarifying destructive side effects, but it omits irreversibility, required permissions/ownership, and whether the action can be undone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The one-sentence purpose is front-loaded, followed by a compact per-parameter glossary with no filler. Slightly terse on behavioral context, but every line earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter, annotation-free mutation tool with an output schema (so return values need not be described), the definition covers purpose and all parameters adequately. It stops short of the permission/irreversibility context an agent should know before deleting a device.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: every one of the five parameters is explained, including the conditional rule that transfer_username applies only when transfer=true. This adds genuine meaning beyond bare parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('Удалить устройство из аккаунта пользователя ZONT') and immediately names the alternative behavior (transfer to another user), making its scope unambiguous. An agent can easily distinguish it from siblings like zont_add_device and zont_update_device.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains that transfer is an alternative to deletion, but never states when to choose deletion over the sibling tools zont_update_device or zont_add_device, nor any prerequisites or confirmation requirements for this destructive operation. Usage is implied by the tool name rather than explicitly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zont_download_archiveA

Скачать zip-архив, ранее созданный zont_generate_archive, и сохранить на диск.

archive_id: идентификатор архива, полученный от zont_generate_archive. output_path: путь к файлу, куда сохранить скачанный zip-архив.

ParametersJSON Schema
NameRequiredDescriptionDefault
archive_idYes
output_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full behavioral burden. It discloses that it writes a file to disk and depends on a prior generate step, but says nothing about overwrite behavior, permissions, size limits, or failure modes for a local-write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded one-line purpose followed by two tight parameter notes; every sentence carries information and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and both parameters plus the upstream dependency are covered. Only minor behavioral details about the local file write are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: it explains archive_id comes from zont_generate_archive and that output_path is the destination file for the zip. Both parameters gain meaning beyond the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (download), a specific resource (the zip archive previously created by zont_generate_archive), and the effect (save to disk). It also clearly distinguishes itself from its sibling zont_generate_archive by naming it as the prerequisite producer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes the key precondition: the archive must have already been created by zont_generate_archive, which sequences the workflow correctly. It does not, however, state exclusions or alternatives beyond that dependency.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zont_generate_archiveA

Запросить создание архива со всеми данными устройства за период времени.

Возвращает archive_id, который затем нужно передать в zont_download_archive.

device_id: ID устройства. mintime: начало диапазона (unix time, включительно). maxtime: конец диапазона (unix time, включительно). split_by: разбиение файлов внутри архива — по дням ("days") или по месяцам ("months").

ParametersJSON Schema
NameRequiredDescriptionDefault
maxtimeYes
mintimeYes
split_byYes
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It usefully discloses the creation-then-download handoff and the archive_id artifact, but says nothing about whether the job is async/long-running, permission requirements, or behavior for very large ranges.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose, then the workflow handoff, then a compact per-parameter glossary. Every block earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-required-param generation tool with an output schema, the description covers purpose, workflow, and all parameters adequately. The only gap is operational context (async nature, limits), which is minor given the output schema handles return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate and it does: it defines all four parameters, gives units and inclusivity for mintime/maxtime (unix time, включительно), and explains split_by as per-day vs per-month file splitting with the literal enum values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource with scope: 'Запросить создание архива со всеми данными устройства за период времени'. It also names the downstream sibling (zont_download_archive), making the tool trivially distinguishable from it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent what to do next: the returned archive_id must be passed to zont_download_archive, establishing the two-step workflow. It does not state when not to use it or any preconditions, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zont_get_authtokenA

Получить долгоживущий аутентификационный токен ZONT по логину/паролю.

Требует, чтобы сервер был запущен с ZONT_LOGIN и ZONT_PASSWORD. Полученный токен можно передать в переменную окружения ZONT_TOKEN для последующих запусков.

client_name: человекопонятное название приложения, запрашивающего токен.

ParametersJSON Schema
NameRequiredDescriptionDefault
client_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does well: it discloses the credential precondition, that the token is long-lived, and how the result is meant to be reused (ZONT_TOKEN). It stops short of describing failure modes or error behavior when credentials are missing/invalid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, followed by the precondition and the token-reuse note; the trailing client_name line reads slightly like an appended schema note rather than integrated prose but wastes no words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is unnecessary. For a one-parameter auth tool the description covers purpose, prerequisites, and downstream usage adequately; only error/permission edge cases are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required parameter, so the description must compensate — and it does, defining client_name as the human-readable name of the requesting application. Only minor ambiguity remains (format/length expectations).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Получить долгоживущий аутентификационный токен ZONT') and is clearly distinct from every sibling, which are all device/command/archive operations rather than authentication. An agent can recognize this as the auth/bootstrap tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives the decisive precondition (the server must be launched with ZONT_LOGIN and ZONT_PASSWORD) and explains the follow-up use of the token via ZONT_TOKEN for subsequent runs. It does not enumerate alternatives or when-not-to-use, but no sibling overlaps this purpose, so the context is effectively complete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zont_list_devicesB

Получить список всех устройств пользователя ZONT и их настроек.

load_io: возвращать ли в поле io текущие состояния каждого устройства.

ParametersJSON Schema
NameRequiredDescriptionDefault
load_ioNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose that results include device settings and that io carries per-device current states when requested, but says nothing about authentication needs, scope limits, or result size/pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short lines, front-loaded with the main action; the parameter note is separated and terse. No filler, though the load_io line is slightly clipped rather than fully formed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value detail is not required here, and a read-only listing tool with one optional boolean has modest demands. The only real gap is the absence of any guidance about when this enumeration is preferable to the other list/event tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% — the schema only offers the bare title 'Load Io'. The description rescues that gap by explaining load_io controls whether current per-device states are returned in the io field, which the schema alone would not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: retrieving the list of the user's ZONT devices along with their settings. This clearly separates it from the write-oriented siblings (zont_add_device, zont_delete_device, zont_update_device), though it never names a sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus zont_load_data, zont_raw_events, or the per-device tools; the agent must infer that this is the enumeration entry point. The load_io note explains a parameter, not a usage condition or prerequisite.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose meaningful traits: multi-device batching, the timestamp convention (unix seconds since 1970-01-01 UTC), and the valid data_types vocabulary. It is silent on authentication requirements, rate limits, result size/pagination, and whether the call is read-only, leaving real gaps for a data-fetch tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose sentence followed by the request format and accepted values. The data_types enumeration is long but earns its place as the only source of that vocabulary; otherwise there is little waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the input format is fully documented despite zero schema coverage. What remains missing is operational context: auth needs, limits on how many devices/time ranges can be batched, and how it differs from the archive siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the nested item schema is opaque (additionalProperties: true with no properties), so the description is the only documentation. It compensates well by spelling out the request object shape (device_id, data_types, optional mintime/maxtime) and enumerating valid data_types values, adding substantial meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource (load device data history) and enumerates the concrete content it covers: temperature sensor readings, thermostat operation, GPS tracks, events, controller state. An agent immediately knows what it retrieves, though it does not explicitly contrast itself with the archive siblings (zont_generate_archive/zont_download_archive) or zont_raw_events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: it notes that multiple devices and data types can be requested in a single call, which hints at batching behavior. However there is no explicit when-to-use versus when-to-use-alternatives guidance, nor any exclusion of the archive or raw_events siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zont_raw_eventsA

Получить историю событий устройства за заданный промежуток времени.

Постановка/снятие с охраны, тревоги, GPS/GSM, автозапуск и т.д.

device_id: ID устройства. mintime: начало диапазона (unix time, включительно). maxtime: конец диапазона (unix time, включительно). only: возвращать только события этих типов. except_: не возвращать события этих типов (соответствует полю "except" в API).

ParametersJSON Schema
NameRequiredDescriptionDefault
onlyNo
except_No
maxtimeYes
mintimeYes
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. 'Получить историю' makes the read-only nature obvious and the parameter notes add context (unix time, inclusive bounds), but there is no mention of authentication, result-size limits, or pagination behavior for potentially large event histories.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, followed by a scannable parameter list. Every line earns its place; the only mild redundancy is the short event-type illustration line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no prose. With all five parameters documented and the time-range semantics pinned down, an agent has enough to invoke it correctly; only the vocabulary of event types remains unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it largely does: all five parameters are explained, with mintime/maxtime specified as inclusive unix timestamps and except_ linked to the API's 'except' field. The one gap is that valid event-type strings for only/except_ are never characterized.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource+scope: retrieve a device's event history for a given time interval, and enumerates representative event kinds (arm/disarm, alarms, GPS/GSM, autostart). It is clear what the tool returns. It does not distinguish itself from plausible siblings such as zont_load_data or the archive tools, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The event-type examples imply when the tool is useful, but there is no explicit when-to-use vs. alternatives (e.g. archive generation/loading) and no exclusions or prerequisites. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zont_send_custom_commandB

Отправить устройству (ZTC-7xx, Mega SX) пользовательскую команду.

Команды заданы в настроечной утилите. Идентификатор команды берётся из настройки custom_controls устройства (см. zont_list_devices).

device_id: ID устройства. command_id: ID команды.

ParametersJSON Schema
NameRequiredDescriptionDefault
device_idYes
command_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It implies a mutating action on a physical device but never states whether the command is reversible, what authorization is needed, or whether the command must be pre-configured before this call will succeed beyond a passing mention.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose sentence, then supplies prerequisite context, then the parameter notes — no filler. The per-parameter lines are slightly redundant given the schema but keep the block readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is not needed, and the description does cover purpose plus the origin of command_id. For an unannotated mutation tool targeting physical hardware, it is still thin on side effects and failure conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does document both parameters. However, 'device_id: ID устройства' merely restates the field name; only command_id adds real meaning by pointing to custom_controls as its source.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('send a custom command to a device') and names the supported device families (ZTC-7xx, Mega SX), which is more than a restatement of the name. It does not explicitly contrast itself with the sibling zont_send_z3k_command, but 'custom command defined in the configuration utility' provides enough specificity to distinguish intent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete prerequisite and discovery path: commands come from the device's custom_controls setting, and points the agent at zont_list_devices to obtain the ID. It stops short of stating when to prefer this over zont_send_z3k_command, so no exclusions or alternatives are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
device_idYes
object_idYes
command_argsYes
command_nameYes
is_guaranteedNo
firmware_versionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that the method is absent from official ZONT API docs, was reconstructed by intercepting web-interface traffic, that it should be used cautiously, and that results should be verified with zont_list_devices. It omits what happens on delivery failure or whether commands are reversible, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the caution and example, then a clean per-parameter list. Slightly redundant in restating parameter meanings already shown in the inline example, but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter, reverse-engineered mutation tool with nested command_args and an output schema present, the description covers purpose, risk, sourcing of IDs, and a worked example. It does not address error/failure semantics, but the output schema covers return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: every one of the 6 parameters is explained, including where to source object_id (z3k_config.heating_circuits / boiler_adapters), where firmware_version comes from and that omitting it drops the field, and is_guaranteed's meaning and default. This adds real meaning the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (send) and resource (undocumented z3k command) with the target device families named, so the agent knows exactly what the tool does. However, it never distinguishes itself from the sibling zont_send_custom_command, which an agent could easily confuse with this one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a concrete usage example (changing heating-circuit target temperature) and a caution plus a verification step via zont_list_devices, which is genuinely useful context. It stops short of stating when to prefer this over zont_send_custom_command or any when-not conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
valueYes
portnameYes
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Нет аннотаций, поэтому описание несёт полную нагрузку. Оно сообщает, что команда доставляется только при наличии связи с устройством, и что это изменяющая состояние операция. Однако не описаны права доступа, возможные побочные эффекты (например, что произойдёт при отключении охраны), или формат ответа. Для мутирующего инструмента без аннотаций этого недостаточно.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Описание состоит из четырёх предложений, каждое из которых несёт информацию. Оно структурировано, но незначительно избыточно в перечислении значений. В целом эффективно и сфокусировано.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Для инструмента с 4 параметрами, без аннотаций, но с выходной схемой, описание заполняет большинство пробелов: объясняет назначение, условие доставки и семантику параметров. Не хватает информации о правах доступа и возможных ошибках, но в целом достаточно для корректного вызова.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Схема не содержит описаний параметров (0% coverage), но описание подробно объясняет семантику каждого параметра: portname — имя состояния, type — тип значения, value — конкретные значения в зависимости от type. Это значительно превосходит базовый уровень и компенсирует отсутствие описаний в схеме.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Статья указывает конкретный глагол и ресурс: «Отправить устройству команду на изменение состояния», и перечисляет управляемые состояния (guard-state, siren, engine-block, webasto, auto-ignition). Это отличает инструмент от других командных инструментов (send_custom_command, send_z3k_command), хотя не уточняет, чем именно он отличается от них.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Указано условие «Команда доставляется, только когда устройство на связи», что является важным контекстом использования, но нет явных указаний, когда использовать этот инструмент вместо send_custom_command или send_z3k_command. Также отсутствуют предупреждения о необратимости команд.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zont_update_deviceA

Изменить настройки устройства ZONT.

Например режим термостата, целевые температуры, доверенные номера и т.д. Передайте только те поля настроек, которые нужно изменить — остальные сохранят прежние значения. Полный список возможных настроек описан в разделе «Параметры устройств» документации ZONT API (общие, беспроводная сеть, автомобиль, отопление).

device_id: ID устройства. settings: объект настроек устройства, которые нужно изменить, например {"thermostat_mode_temps": {"comfort": 21}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
settingsYes
device_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose a meaningful behavioral trait — the merge/partial-update semantics where unspecified fields retain their previous values — but says nothing about authentication requirements, reversibility, validation failures, or any rate limits on a clearly mutating call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and the sentences are short and functional, with the behavioral note about partial updates placed before the parameter documentation. The sentence deferring the full settings list to external documentation is somewhat loose but still earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and the description covers how to call the tool, what happens to unspecified fields, and where to find the full settings catalog. The main remaining gap is the absence of any permission/error context for an un-annotated mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it largely does: it identifies device_id as the device ID and explains settings as a changeable-settings object with a concrete nested example {"thermostat_mode_temps": {"comfort": 21}} plus a pointer to the API's device-parameters section. It doesn't enumerate the full settings catalog, but it adds real meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific verb (Изменить) and resource (настройки устройства ZONT), and the examples (thermostat mode, target temperatures, trusted numbers) make the scope concrete. It does not explicitly distinguish itself from siblings like zont_set_io_port or zont_send_custom_command, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives useful invocation guidance — pass only the fields to change and the rest keep prior values — which implicitly tells the agent this is a partial-update tool, not a full overwrite. However, it never says when to choose this tool over alternatives such as zont_send_custom_command, so selection guidance remains implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv0.1.0
    • First observedzont_add_device
    • First observedzont_delete_device
    • First observedzont_download_archive
    • First observedzont_generate_archive
    • First observedzont_get_authtoken
    • First observedzont_list_devices
    • First observedzont_load_data
    • First observedzont_raw_events
    • First observedzont_send_custom_command
    • First observedzont_send_z3k_command
    • First observedzont_set_io_port
    • First observedzont_update_device

TDQS

A3.8/5.0

Scored across 12 tools

Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    An 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.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables secure remote control of Home Assistant and Life Dashboard/DSH via MCP, supporting entity state queries, whitelisted entity/scene control, lifecycle overview reading, DSH workspace summaries, and follow-up sending.
    1
    GNU Lesser General Public v2.1 only
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables control of Mijia (Xiaomi) smart home devices through MCP, including querying homes, devices, scenes, and specs, setting properties, running actions and scenes, and issuing speaker commands.
    GPL 3.0