Skip to main content
Glama

Hostkey MCP Server (RU)

MCP-сервер для Hostkey (портал .ru, InvAPI invapi.hostkey.ru). Клиент подключается по URL или локально по stdio (Cursor, VS Code и др.). Hosted: https://mcp.hostkey.ru/mcp (для .com — https://mcp.hostkey.com/mcp).

Endpoint

https://invapi.hostkey.ru (зашит в код)

Авторизация

HOSTKEY_API_KEY

Инструменты

132 типизированных + call_api_raw

Сервер даёт модели доступ к аккаунту Hostkey: серверы, каталог и заказ, питание, переустановка ОС, сеть, DNS, снапшоты, IPMI/консоль, ISO, S3, Remote Hands, биллинг и API-ключи.

Для портала .com — отдельный пакет hostkey-mcp-server.

1. Получите API-ключ

InvAPI → управление API-ключами → выпустите ключ.

Лучше отдельный ключ для MCP. Ключ на один сервер ограничивает доступ этим сервером. Для записи DNS нужны права pdns/edit.

Related MCP server: hostman-mcp-server

2. Установка

Cursor (hosted URL — рекомендуется)

В .cursor/mcp.json (один или оба портала):

{
  "mcpServers": {
    "hostkey-com": {
      "url": "https://mcp.hostkey.com/mcp",
      "headers": {
        "Authorization": "Bearer key-from-invapi.hostkey.com"
      }
    },
    "hostkey-ru": {
      "url": "https://mcp.hostkey.ru/mcp",
      "headers": {
        "Authorization": "Bearer key-from-invapi.hostkey.ru"
      }
    }
  }
}

Подставь свои InvAPI-ключи. Локальный Node/npx не нужен.

Cursor (локальный npx / stdio)

Install in Cursor

{
  "mcpServers": {
    "hostkey-com": {
      "command": "npx",
      "args": ["-y", "hostkey-mcp-server"],
      "env": {
        "HOSTKEY_API_KEY": "key-from-invapi.hostkey.com"
      }
    },
    "hostkey-ru": {
      "command": "npx",
      "args": ["-y", "hostkey-mcp-server-ru"],
      "env": {
        "HOSTKEY_API_KEY": "key-from-invapi.hostkey.ru"
      }
    }
  }
}

VS Code

.vscode/mcp.json — те же варианты (url + headers или command / args / env).

Опционально для stdio: HOSTKEY_TOKEN_TTL, HOSTKEY_HTTP_TIMEOUT, HOSTKEY_ALLOW_DESTRUCTIVE (см. .env.example).

Из исходников (Node.js ≥ 22.18): npm install && npm run build.

3. Подтверждение опасных операций

Все write-вызовы требуют confirm=true. Без него сервер ничего не меняет.

Дополнительно:

  • заказ сервера по умолчанию в dry_run — реальный заказ только после явного согласия;

  • переустановка ОС, PXE и отмена услуг — только при HOSTKEY_ALLOW_DESTRUCTIVE=1;

  • пароли и токены в ответах маскируются.

Долгие операции (деплой, переустановка) возвращают callback-ключ — статус через check_task.

4. Инструменты

Группы (полный список виден клиенту в tools/list):

Группа

Примеры

Серверы

get_servers, get_server, get_power_status

Каталог

list_presets, list_os, list_traffic_plans

Питание и заказ

power_on, power_off, order_server, reinstall_server

PXE

create_reinstall_task → … → clear_pxe_config

Сеть / DNS

порты, PTR, зоны и записи

Снапшоты, ISO, S3

ВМ-снапшоты, образы, бакеты

Remote Hands

тикеты дежурной смене (request_rh_*, rhr_*)

Биллинг

счета, платежи, контакты

Прочее

check_task, call_api_raw

Промпты

Промпт

Зачем

order_server_prompt

заказ сервера по шагам

reinstall_server_prompt

переустановка ОС

troubleshoot_server_prompt

диагностика

Или просто напишите: «покажи мои серверы» / «закажи VPS в NL» — модель выберет нужные инструменты.

Available Tools

132 tools
add_contactAInspect

Добавить дополнительный контакт в аккаунт (whmcs/add_contact). ВНИМАНИЕ: контакт создаётся со случайным email — его нужно поменять в Invapi.

NameRequiredDescriptionDefault
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior4/5

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

Annotations only indicate a mutating, non-destructive operation. The description adds a non-obvious behavioral detail: the contact is created with a random email that must be changed afterward in Invapi. This goes beyond the annotations, though it could say more about side effects.

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?

The description is two short sentences with no filler. The main purpose comes first, followed by a critical warning, and every sentence 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 tool with one boolean parameter and no output schema, the description is largely sufficient. It highlights the essential post-creation caveat about the random email. A small gap is that it does not explicitly point to update_contact as the follow-up tool.

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 coverage is 100%; the only parameter, confirm, is already described as 'Must be true to run the operation.' The description does not add extra meaning to the parameter, so the baseline score of 3 applies.

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 states a specific action ('add an additional contact'), the target resource ('account'), and even the underlying endpoint (whmcs/add_contact). This clearly distinguishes it from sibling tools like update_contact, delete_contact, and get_contacts.

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 usage context is implied: it adds a contact, and the warning about the random email signals when this tool may need follow-up. However, it does not explicitly say when to prefer this over update_contact or mention any exclusions.

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

add_dns_domainAInspect

Создать DNS-зону и добавить домен в таблицу доменов (pdns/add_domain). Требует права pdns/edit.

NameRequiredDescriptionDefault
nameYesИмя домена, например example.com
confirmYesMust be true to run the operation.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the write nature is covered. The description adds the required authorization scope (pdns/edit), which is not derivable from annotations or schema and is exactly the kind of extra context that matters for a 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?

Two tight sentences with the action first and the permission requirement second; nothing is wasted. The only structural flaw is that the text is delivered as mojibake, which harms legibility even though the underlying content is well organized.

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 two-parameter mutation tool with no output schema, the description covers the action, the endpoint and the required permission, which is enough for correct invocation. It would be complete at 5 if it clarified the relationship to add_dns_zone and the failure mode when the domain already exists.

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 100% — both 'name' (with an example.com example) and 'confirm' (must be true to run) are documented in the schema itself. The description adds nothing beyond that, so the baseline 3 applies.

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 ('Создать DNS-зону и добавить домен в таблицу доменов') and even names the underlying endpoint (pdns/add_domain), so the agent knows exactly what is created. However, it does not differentiate from the sibling add_dns_zone, and the dual phrasing ('create a DNS zone' + 'add a domain') creates ambiguity about which sibling to pick.

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 supplies a concrete precondition — the caller needs the pdns/edit permission — which is genuine usage guidance. It stops short of saying when to use this versus add_dns_zone, add_dns_record, or add_dns_subdomain, so the agent must infer the boundary from the name alone.

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

add_dns_recordAInspect

Добавить или изменить DNS-запись в зоне (pdns/add_dns). Требует права pdns/edit. Для SRV-записей заполните proto/priority/weight/port/target. Поля mname/rname в документации отмечены как обязательные для SOA-проверок — при ошибке заполните их.

NameRequiredDescriptionDefault
ttlNoTTL в секундах, по умолчанию 3600
nameNoИмя записи, например www
portNoПорт для SRV
typeYesТип записи: A, AAAA, CNAME, MX, TXT, SRV…
zoneYesИмя зоны
mnameNoPrimary NS в SOA-записи
protoNoПротокол для SRV, например tcp
rnameNoEmail администратора в SOA-записи
targetNoЦелевой домен для SRV
weightNoВес для SRV
confirmYesMust be true to run the operation.
contentYesЗначение записи, например 10.56.121.5
old_nameNoПрежнее имя записи — для переименования
priorityNoПриоритет для SRV/MX
increase_soa_serialNoАвтоинкремент SOA-сериала (по умолчанию true)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-destructive, open-world behavior, so the bar is lower. The description adds real context beyond that: the required pdns/edit permission, the upsert nature ('add or modify'), and conditional handling for SRV and SOA validation errors. It still does not say what happens on conflict or whether an existing record is overwritten, but it is well above minimum.

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?

Four short, front-loaded sentences: purpose first, then permission, then the two field-specific caveats. No filler, though the SRV/SOA guidance is somewhat terse and would benefit from a little more connective structure.

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 15-parameter mutation tool with no output schema, the description covers the essentials: what it does, the permission gate, and how to handle the non-obvious SRV and SOA fields. The mandatory confirm flag is adequately documented in the schema, so its absence from the prose is not a gap.

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 100%, so 3 is the baseline. The description goes further by grouping the SRV fields (proto/priority/weight/port/target) and explaining that mname/rname only need filling when SOA checks fail, which is not evident from the per-parameter schema text.

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 ('Add or modify a DNS record in a zone') and even names the underlying API endpoint (pdns/add_dns). It does not explicitly distinguish itself from similar siblings such as add_dns_domain, add_dns_subdomain, or add_dns_zone, so an agent must infer the record-vs-zone/domain boundary.

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 a prerequisite ('requires pdns/edit permission') and conditional field guidance for SRV and SOA cases, which is genuinely useful. However, there is no explicit statement of when to pick this tool over delete_dns_record, update_ptr_record, or the zone/domain/subdomain adders; usage is only implied.

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

add_dns_subdomainBInspect

Добавить сабдомен в таблицу сабдоменов (pdns/add_subdomain). Требует права pdns/edit.

NameRequiredDescriptionDefault
nameYesИмя сабдомена
confirmYesMust be true to run the operation.
domain_idYesID домена из list_dns_domains
server_idYesID сервера

TDQS

B3.4/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, so the mutation and external visibility are already known. The description adds a permission requirement (pdns/edit), which is useful added context, but does not disclose side effects like propagation or whether the operation is idempotent.

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?

A single short sentence with an API hint and permission note; concise and front-loaded with the action. No wasted words, though it could be slightly clearer in structure.

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?

For a 4-parameter mutation tool with no output schema, the description covers the basic purpose and permission requirement, but lacks details on return values, failure modes, or interaction with related tools. It is minimally adequate but has clear gaps.

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 coverage is 100%, so parameters are already documented in the schema. The description adds no extra parameter meaning beyond what is in the schema (e.g., no format or constraints for 'name' or 'confirm'). Baseline 3 is appropriate when the schema does the heavy lifting.

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 clear verb+resource: adding a subdomain to the subdomains table, with an API path hint (pdns/add_subdomain). It distinguishes from siblings like add_dns_domain/add_dns_zone by specifying subdomain, but does not explicitly name the sibling edit_dns_subdomain or others.

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 implies usage by stating required permissions (pdns/edit), which gives a precondition, but does not say when to use this tool vs alternatives such as add_dns_record or edit_dns_subdomain. No explicit when/when-not guidance.

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

add_dns_zoneBInspect

Создать DNS-зону на авторитетном сервере PowerDNS (pdns/add_zone). Требует права pdns/edit.

NameRequiredDescriptionDefault
dnsNoSOA-параметры зоны; при пропуске применяются дефолты Hostkey
kindNoТип зоны, по умолчанию Master
nameYesИмя зоны, например example.com
dnssecNoВключить DNSSEC (по умолчанию false)
rrsetsNoИспользовать RRset вместо records (по умолчанию true)
confirmYesMust be true to run the operation.
mastersNoСписок master-серверов (для Slave)
nameserversNoNS-серверы зоны, по умолчанию ns1.hostkey.ru/ns2.hostkey.ru

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already disclose that this is a non-read-only, non-destructive operation on an open-world target, so the safety profile is covered. The description adds a concrete authorization requirement (pdns/edit) that the annotations do not convey, which is valuable, but it says nothing about idempotency, what happens on an existing zone, or error 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?

Two short sentences with the action and the precondition front-loaded and no filler. Efficient, though it is arguably too terse to exploit the space available.

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?

For an 8-parameter mutation with a nested SOA object and the required confirm flag, the description is thin. Annotations and the fully-covered schema carry most of the load, but details like idempotency or behavior when the zone already exists are absent, leaving it only adequate.

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 100% and every parameter, including the nested SOA object and its fields, is documented in the schema. The description adds no parameter-level detail beyond the schema, so the baseline 3 applies.

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 (create a DNS zone on the authoritative PowerDNS server) and even names the underlying API call (pdns/add_zone). It is clearly distinguishable in kind from reads like get_dns_zone, but it never contrasts itself with the adjacent writers add_dns_domain or add_dns_subdomain, so a 4 rather than 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 a useful precondition (requires pdns/edit rights), which is real when-to-use context. However, it offers no guidance on when to choose this over add_dns_domain/add_dns_subdomain or what to do if the zone already exists, so usage is only implied.

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

add_ipmi_userAInspect

Создать временного IPMI-пользователя для веб-доступа к IPMI (eq/add_ipmi_user).

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already convey that this is a write operation (readOnlyHint: false) and non-destructive (destructiveHint: false). The description adds useful context that the created user is temporary and intended for web access, but it does not disclose lifecycle details such as expiration, permissions, or how the temporary user relates to an existing IPMI user.

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 a single, front-loaded sentence that states the action and purpose clearly. The parenthetical '(eq/add_ipmi_user)' is redundant and does not earn its place, but the overall description is concise and easy to parse.

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 low-complexity tool with only two required parameters and no output schema, the description plus the schema is mostly complete. It explains what the tool does and why it is used, though it could be more complete by noting that the confirm parameter must be true and by mentioning the temporary nature in operational terms.

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 100%, so the schema already documents both parameters clearly. The description adds no parameter-specific detail beyond the general purpose, which is acceptable given the high schema coverage but does not go above the baseline.

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 uses a specific verb ('Создать' / create), a specific resource ('временного IPMI-пользователя'), and a clear purpose ('для веб-доступа к IPMI'). This clearly distinguishes it from related siblings like remove_ipmi_user and reset_ipmi, so an agent can identify what the tool does 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 Guidelines3/5

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

The description implies when to use the tool: when temporary web access to IPMI is needed. However, it does not explicitly mention alternatives, exclusions, or related cleanup actions such as remove_ipmi_user, nor does it explain when this option should be preferred over other IPMI/VNC/KVM access tools.

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

add_iso_imageAInspect

Добавить новый ISO-образ или обновить существующий по имени (iso/add). Требует специального права 'add'.

NameRequiredDescriptionDefault
urlNoURL образа, если требуется
nameYesИмя образа
confirmYesMust be true to run the operation.

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations, the description discloses that the operation is an upsert by name and that the 'add' permission is required. This adds useful behavioral and authorization context, though it does not explain what happens to an existing image when it is updated.

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?

The description is a single two-clause sentence that leads with the action, includes the endpoint and permission requirement, and contains no filler. Every element contributes useful information.

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 simple three-parameter mutation with full schema coverage and no output schema, the description plus input schema is largely sufficient. The main gap is not explicitly distinguishing this tool from upload_iso, but the 'by name' add/update wording narrows the ambiguity.

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 100%, and the input schema already documents name, url, and confirm. The description adds only the 'by name' matching detail, but with full schema coverage the baseline of 3 applies.

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 action ('add a new ISO image or update an existing one by name') and names the endpoint (iso/add), clearly identifying the resource and operation. It does not explicitly contrast with sibling tools like upload_iso or mount_iso, so differentiation is mostly implicit.

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 gives a clear prerequisite — the special 'add' permission — but provides no explicit when-to-use vs alternatives or when-not-to-use guidance. The intended use case is implied by the verb and resource, so an agent can infer it, but it is not spelled out.

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

add_rhr_commentAInspect

Добавить видимое клиенту сообщение в историю заявки (rhr/chat).

NameRequiredDescriptionDefault
idYesID заявки из list_rhr_requests
confirmYesMust be true to run the operation.
messageYesТекст сообщения

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the annotations (mutating, non-destructive), the description adds the important fact that the message is visible to the client, which materially affects how an agent should use the tool. It does not cover auth or rate limits, but the safety profile is already established by annotations.

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?

A single compact sentence with no redundancy. It front-loads the key behavior and uses a parenthetical to anchor the feature area without adding unnecessary words.

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

Completeness5/5

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

For a mutation tool with three required parameters and no output schema, the description plus schema is sufficient: it states what to do, where, and that the message is client-visible. Nothing needed for a correct invocation is missing.

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 100%, and each parameter already has a clear description: id comes from list_rhr_requests, confirm gates execution, and message is the text. The tool description adds no further parameter-level meaning, so the baseline score of 3 applies.

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 the action ('Добавить' / add), the object (message visible to the client), and the location (request history rhr/chat). This clearly distinguishes it from sibling tools like create_rhr_request or discard_rhr_request and makes the operation immediately understandable.

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 intended use is implied: adding a client-visible message to a request's history. However, there is no explicit guidance about when to prefer this tool over sibling RHR tools or when it should not be used. For a simple append-style operation this is acceptable, but not fully explicit.

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

add_static_natAInspect

Создать статический DNAT до IPMI сервера (nat/add_static_nat): публичный IP для классического IPMI. Это не Secure IPMI Proxy в ЛК — Active Proxy сам по себе может не удовлетворять вызов. Асинхронно; статус через check_task. При server_ipmi_acl_required передайте ip_acl.

NameRequiredDescriptionDefault
idYesID сервера
ttlNoВремя жизни NAT в секундах, если поддерживается
ip_aclNoIP клиента(ов), с которых разрешён доступ к IPMI через NAT (InvAPI ip_acl). Нужен на части аккаунтов, если ACL Proxy из ЛК недостаточно.
confirmYesMust be true to run the operation.
securedNoФлаг secured NAT, если поддерживается InvAPI

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the write profile is covered; the description adds the important behavioral fact that the operation is asynchronous and status must be polled via check_task. It also warns that this is a distinct product path from Secure IPMI Proxy and flags the conditional ip_acl requirement. It does not say what happens if a NAT already exists or how the create interacts with existing entries.

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 verb and resource, then the distinguishing note, then the async behavior, then the parameter condition — each sentence carries information. Slightly dense with the Secure IPMI Proxy aside, but nothing is wasted.

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 five-parameter mutation with no output schema, the description covers the key gaps: asynchronous execution with check_task polling and the conditional ip_acl. Missing is what the tool returns (task id? NAT address?) and re-run/idempotency behavior, but the agent can call it correctly from what is given.

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 100%, so the schema already documents all five parameters and the baseline would be 3. The description adds a conditional rule not in the schema: when server_ipmi_acl_required applies, pass ip_acl. That is genuine semantic value beyond the schema, though the other parameters (ttl, secured) get no additional treatment.

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 (create a static DNAT to the server's IPMI) and anchors it to the API endpoint nat/add_static_nat. It also distinguishes the result from Secure IPMI Proxy in the control panel, so the agent understands this yields a public IP for classic IPMI. It does not name sibling tools like remove_static_nat or clear_static_nat, so differentiation is by concept rather than by tool.

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 clear condition for use: you need a public IP for classic IPMI (as opposed to Secure IPMI Proxy, which the Active Proxy may not satisfy). It also states the conditional case for ip_acl via server_ipmi_acl_required. It stops short of pointing at the removal/cleanup siblings (remove_static_nat, clear_static_nat, drop_nat).

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

apply_creditAInspect

Оплатить инвойс полностью или частично с кредитного баланса (whmcs/apply_credit). ДЕНЬГИ: списывает средства со счёта.

NameRequiredDescriptionDefault
amountYesСумма оплаты в валюте аккаунта
confirmYesMust be true to run the operation.
invoice_idYesНомер инвойса

TDQS

A4/5.0
Behavior4/5

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

The description adds a critical behavioral disclosure—'списывает средства со счёта' (debits funds from the account)—which goes beyond the annotations (readOnlyHint=false, openWorldHint=true). It also clarifies that partial or full payment is possible. However, it does not mention irreversibility or refunds, though destructiveHint=false suggests no destructive deletion. The added context is valuable.

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?

The description is two short sentences, front-loading the main action and then adding the financial impact. Every word serves a purpose, with no redundancy or filler. It is concise and well-structured for quick comprehension.

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 financial operation, the description covers the core behavior (payment from credit) and the money debiting, which are the most important contextual elements. It does not mention return values or failure modes, but given the simplicity of the operation and the schema covering all parameters, the description is sufficiently complete for an agent to call it correctly.

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 coverage is 100%, meaning all three parameters have descriptions in the schema. The description does not add extra meaning to any parameter; it only repeats the general purpose. Since the schema already documents the confirm, amount, and invoice_id fields, the description adds no additional parameter-specific insight.

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 clearly states the action (pay an invoice) and the source (credit balance), using a specific verb and resource. It distinguishes itself from siblings like get_invoice, mass_pay, and create_addfunds_invoice by focusing on applying credit. The mention of 'полностью или частично' adds nuance, making the tool's scope unambiguous.

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 the use case (paying an invoice from credit balance) but does not explicitly contrast it with alternative payment tools or state when not to use it. There is no mention of alternatives or exclusions, so the agent must infer the appropriate context from the description alone.

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

block_ipBInspect

Заблокировать IP-адрес на сервере на уровне сети Hostkey (net/block_ip). Полезно для abuse-запросов.

NameRequiredDescriptionDefault
idYesID сервера
ipYesIP-адрес
confirmYesMust be true to run the operation.
four_hoursNotrue — блокировка автоматически снимется через 4 часа
descriptionYesПричина блокировки

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a mutating operation. The description adds that the block happens at the Hostkey network level and mentions the optional four_hours auto-unblock behavior in the schema, but the description itself does not disclose side effects, reversibility, or confirmation requirements beyond the schema.

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 a single, efficient sentence that front-loads the action and resource, then adds a practical use case. No wasted words.

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?

For a mutating tool with no output schema, the description is adequate but minimal. It does not explain the effect of 'confirm', the four_hours option, or what happens after blocking (e.g., whether unblocking requires a separate call). The sibling 'unblock_ip' exists, but the description does not reference it.

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 100%, so the schema already documents all parameters. The description adds no extra meaning beyond the schema, but the baseline of 3 applies because the schema carries the full burden.

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 ('Заблокировать' = block), a resource (IP-address on server at Hostkey network level), and a use case (abuse requests). It is clear enough to distinguish from the sibling 'unblock_ip', though it does not explicitly name that sibling.

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 gives a clear context ('Полезно для abuse-запросов' = useful for abuse requests), which implies when to use it. However, it does not explicitly state when not to use it or mention alternatives like 'unblock_ip' or firewall-level blocking.

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

call_api_rawA
Destructive
Inspect

Универсальный прямой вызов InvAPI по ресурсу и action, для ресурсов без типизированных инструментов (например: iso — библиотека ISO-образов, s3 — S3 Object Storage, rhr — Remote Hands новой версии; список действий смотрите в документации: https://hostkey.ru/documentation/apidocs/). ВСЕГДА требует confirm=true; деструктивные/платные действия дополнительно требуют HOSTKEY_ALLOW_DESTRUCTIVE=1. Предпочитайте типизированные инструменты, если они есть для нужной операции.

NameRequiredDescriptionDefault
authNoПодставлять сессионный токен (по умолчанию true)
actionYesДействие ресурса, например: list
paramsNoПараметры вызова объектом; вложенные объекты превращаются в params[...]
confirmYesОбязательное подтверждение. Без confirm=true вызов отклоняется.
resourceYesРесурс InvAPI без .php, например: iso, s3, rhr, eq, net, whmcs

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, openWorldHint=true, and the description is consistent with them while adding real operational detail: confirm=true is mandatory on every call, and destructive or paid actions additionally require the HOSTKEY_ALLOW_DESTRUCTIVE=1 environment gate. That is genuinely non-obvious invocation context. It stops short of describing the response shape or failure modes, which keeps it off 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?

Three dense sentences, each carrying a distinct point (what it is, what it covers, how to gate it), with the safety constraint not buried. It loses a point because the text is stored in a broken single-byte encoding, which makes the prose hard to read as delivered even though the underlying content is well-structured.

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 generic escape-hatch tool with 5 documented parameters, no output schema, and a free-form params object, the description supplies the missing pieces an agent needs: scope, the safety gate, and an external reference for the action list. It does not explain how the params object is serialized or what the raw response looks like, and the nested-params behavior is left to the schema.

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 100%, so the schema already documents resource, action, params, confirm and auth. The description reinforces the confirm requirement and gives resource-value examples (iso, s3, rhr) that partially overlap the schema's own examples. Baseline 3 is appropriate; the description does not add much beyond the schema here.

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?

Decoded, the description states a specific mechanism: a universal direct InvAPI call taking a resource + action pair, explicitly scoped to resources that lack typed tools, with concrete examples (iso, s3, rhr). It distinguishes itself from the large family of typed siblings by naming itself the fallback path, which is exactly the contrast an agent needs.

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

Usage Guidelines5/5

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

Gives an explicit when-not rule ('prefer typed tools if they exist for the desired operation') plus a pointer to the external action catalogue, and names the resource families it covers. An agent can decide between this tool and, say, list_iso_images or s3_get_buckets without guessing.

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

check_taskA
Read-only
Inspect

Проверка статуса асинхронной операции по callback-ключу (eq_callback/check). Многие операции InvAPI (вкл/выкл питания, заказ, переустановка, снапшоты) возвращают {"result":"OK","callback":"<ключ>"}. Передайте этот ключ сюда, чтобы узнать статус: result="Not ready" — операция ещё идёт; result="OK" — завершена успешно (после этого ключ сгорает). Деплой сервера может занимать 10–30 минут. Если клиент передал progressToken, шлёт notifications/progress.

NameRequiredDescriptionDefault
keyYesCallback-ключ из ответа асинхронной операции

TDQS

A4.6/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: the two status values ("Not ready" vs "OK"), the fact that the key is consumed/expires after success ("ключ сгорает"), realistic timing (deploy can take 10–30 min), and progress-notification behavior when a progressToken is present. None of this is inferable from readOnlyHint/openWorldHint.

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 in the first clause, followed by the workflow, status meanings, and timing. Dense but each sentence earns its place; only the progressToken note is somewhat tangential to invocation.

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

Completeness5/5

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

For a single-parameter polling tool with no output schema, the description fully covers what an agent needs: how to obtain the key, how to interpret result values, how long to wait, and notification behavior. Annotations already cover the safety profile.

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 100% and the single parameter is already described, setting a baseline of 3. The description adds value by clarifying the key's origin (returned in async operation responses) and its one-shot/expiring nature, which is meaningful semantics for how the parameter behaves.

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 (проверка статуса) plus resource (асинхронной операции) and even names the underlying endpoint (eq_callback/check). It clearly distinguishes itself from the mutation siblings (power_on, order_server, reinstall_server) by framing itself as the status-polling tool for their callback keys.

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 explains the trigger condition: many InvAPI operations return {"result":"OK","callback":"<key>"}, and that key must be passed here. This is clear usage context, though it does not name an explicit alternative tool or state when NOT to use it.

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

clear_pxe_configA
Destructive
Inspect

Шаг 7 PXE-переустановки: удалить PXE-конфиг (eq/clear_pxe). ОБЯЗАТЕЛЬНО после завершения — иначе возможна внезапная переустановка при следующей перезагрузке.

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.
hostnameYesИмя хоста сервера

TDQS

A4.5/5.0
Behavior5/5

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

The annotation destructiveHint=true is reinforced and expanded with a concrete consequence: failing to run this tool may cause an unexpected reinstallation at the next reboot. This adds meaningful behavioral context beyond the annotation.

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?

The description is extremely concise: two short sentences that pack the action, step context, endpoint hint, and a critical safety warning. Every part earns its place.

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

Completeness5/5

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

Given the simple parameter set, fully documented schema, and destructive annotation, the description provides all necessary operational context. It explains why this step is mandatory and what happens if skipped; no return value is needed since there is no output schema.

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 100%, with each parameter already documented (id, hostname, confirm). The tool description does not add parameter-level details, so the baseline score of 3 is appropriate.

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 clearly states the action ('удалить PXE-конфиг') and the specific resource (PXE config), plus the internal endpoint reference 'eq/clear_pxe'. It distinguishes itself from sibling tools like create_pxe_config by framing it as Step 7 of the PXE reinstallation flow.

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 explicitly states when to use the tool: after PXE reinstallation completion. The strong warning ('ОБЯЗАТЕЛЬНО после завершения') makes the usage context clear, though it does not explicitly name sibling alternatives or state when not to use it.

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

clear_static_natBInspect

Удалить застывшие правила статического NAT-проброса по внутреннему IP (nat/clear_static_nat).

NameRequiredDescriptionDefault
ipYesВнутренний IP-адрес
confirmYesMust be true to run the operation.

TDQS

B3.3/5.0
Behavior3/5

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

Annotations exist (readOnlyHint=false, destructiveHint=false), so the description does not need to restate safety basics. It adds the useful qualifier that only 'stuck' rules are affected and that filtering is by internal IP. However, it does not clarify side effects, whether all such rules are removed at once, or what happens if no stuck rules exist.

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?

The description is a single compact sentence that includes the core action, the resource, the filtering key, and the API path. There is no filler or redundant restatement of the tool name.

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?

For a simple two-parameter operation with complete schema coverage and annotations, the description is mostly adequate. Still, it lacks context about when the operation is needed, what 'stuck' means in practice, and what result to expect, so it is only minimally complete.

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 100%, with both ip and confirm already documented. The description itself adds no extra parameter-level detail beyond saying the operation targets rules by internal IP. Baseline 3 is appropriate because the schema carries the parameter meaning.

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 clear action ('Удалить' / delete) on a specific resource ('застывшие правила статического NAT-проброса по внутреннему IP'). It also includes the API path, which helps identify the operation. However, it does not explicitly differentiate itself from similar siblings like remove_static_nat or drop_nat, so it misses the top score.

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?

The description implies this is used for stuck/stale static NAT rules but gives no explicit guidance on when to choose this tool over remove_static_nat, drop_nat, or add_static_nat. There is no mention of prerequisites, conditions, or exclusions.

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

create_addfunds_invoiceAInspect

Создать инвойс на пополнение кредитного баланса (whmcs/create_addfunds). ДЕНЬГИ: создаёт реальный инвойс на указанную сумму.

NameRequiredDescriptionDefault
amountYesСумма пополнения в валюте аккаунта
confirmYesMust be true to run the operation.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already show readOnlyHint=false and openWorldHint=true, so the description's 'ДЕНЬГИ: создаёт реальный инвойс' adds meaningful context about the real financial impact. It warns that this is not a dry run or estimate, which is valuable beyond the structured annotations.

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?

The description is two short, purposeful sentences. The first states the action and endpoint, and the second provides a clear financial warning. No filler or redundant detail is present.

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 two-parameter tool with full schema documentation, the description supplies the key missing context: this action creates a real money invoice. It does not explain the post-invoice flow, but that is not necessary given the simple input schema and no output schema requirement.

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 coverage is 100%, so the schema already documents both amount and confirm. The description only loosely references the amount ('на указанную сумму') and does not add meaning about the confirm flag or amount formatting 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 clearly states the action ('Создать инвойс') and the specific purpose (replenishment of credit balance), and explicitly says it creates a real invoice. It does not explicitly differentiate from sibling billing tools like generate_due_invoice, but the 'addfunds' scope makes the purpose clear.

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 when a credit balance top-up invoice is needed, but gives no guidance about when to prefer this over related tools such as generate_due_invoice, apply_credit, or mass_pay. There is no exclusionary or alternative routing information.

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

create_api_keyAInspect

Создать новый API-ключ для аккаунта или конкретного сервера (api_keys/add). Значение ключа будет показано один раз в ответе — сохраните его.

NameRequiredDescriptionDefault
ipNoБелый список IP, например 10.0.0.2, 10.4.6.3/24
nameYesИмя ключа
activeYestrue — ключ активен
confirmYesMust be true to run the operation.
server_idNoID сервера; если не указан — ключ на весь аккаунт
login_notify_methodYesУведомления о входах по ключу; для per-server ключа используйте none
login_notify_addressNoEmail или webhook URL для уведомлений

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a mutating but non-destructive operation. The description adds critical behavioral context: the key value is shown only once in the response and must be saved. This is exactly the kind of beyond-annotations disclosure that matters for a create 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?

Two sentences, front-loaded with the action and scope, and the one-time-display warning is placed at the end where it's memorable. No wasted 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?

For a create operation with 100% schema coverage and no output schema, the description covers the essential behavioral warning (key shown once) and the scope distinction. It doesn't mention response format, but the absence of an output schema and the one-time warning partially compensate. The description is complete enough for an agent to invoke correctly.

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 100%, so the schema already documents all 7 parameters. The description adds the semantic distinction that server_id omitted means account-wide key, and that login_notify_method should be 'none' for per-server keys. This adds value beyond the schema, but the schema already carries most of the parameter meaning, so a baseline 3 is appropriate.

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 states a specific verb ('Создать') and resource ('новый API-ключ'), and clarifies the two scopes: account-wide or per-server. It also includes the endpoint path (api_keys/add), which disambiguates it from sibling tools like list_server_api_keys, get_api_key, update_api_key, and delete_api_key.

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 implies when to use it: when creating a new API key, and it distinguishes account-level vs server-level keys via server_id. It doesn't explicitly name alternatives or exclusions, but the context of creation vs listing/updating/deleting is clear from the sibling names and the description's scope statement.

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

create_pxe_configA
Destructive
Inspect

Шаг 2 PXE-переустановки: создать PXE-конфиг для установки ОС (eq/create_pxe). ДЕСТРУКТИВНО.

NameRequiredDescriptionDefault
idYesID сервера
os_idYesID ОС из list_os
confirmYesMust be true to run the operation.
ssh_keyNoПубличный SSH-ключ
hostnameYesИмя хоста
root_passYesПароль root (мин. 8 символов, заглавная буква, цифра)
reinstall_keyNoМастер-ключ из create_reinstall_task
post_install_scriptNoСкрипт после установки
post_install_callbackNoURL callback после установки

TDQS

A3.8/5.0
Behavior3/5

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

The description repeats and emphasizes the destructive nature with 'ДЕСТРУКТИВНО', which is consistent with destructiveHint=true. It adds the step context but does not disclose what specifically gets overwritten or destroyed, nor does it mention the required 'confirm' flag or side effects on existing PXE configuration.

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?

The description is extremely compact: one sentence plus a destructive warning. Every element carries purpose or caution, with the key action front-loaded. There is no filler or unnecessary detail.

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

Completeness2/5

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

Despite being a destructive 9-parameter operation with no output schema, the description only supplies a workflow step and a warning. It omits prerequisites, what the operation affects, expected results, and how it relates to companion tools like create_reinstall_task or clear_pxe_config. This is incomplete for safe invocation.

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?

Input schema description coverage is 100%, so the schema already documents all 9 parameters. The description adds no parameter-level meaning beyond the schema, so it stays at the baseline 3 rather than compensating or enriching parameter semantics.

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 gives a specific verb ('создать') and resource ('PXE-конфиг') plus the purpose ('для установки ОС'), and labels it as 'Шаг 2 PXE-переустановки'. This clearly distinguishes it from related concepts like clear_pxe_config by stating it creates, not clears, a PXE config.

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?

'Шаг 2 PXE-переустановки' provides clear contextual guidance: this tool is the second step in a PXE reinstall workflow. It does not explicitly exclude alternatives or list prerequisites, but the step placement is a useful usage signal beyond just naming the action.

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

create_reinstall_taskA
Destructive
Inspect

Шаг 1 PXE-переустановки: создать мастер-ключ переустановки ОС (eq/reinstall). Возвращает reinstall_key, по которому check_task отслеживает стадии установки. ДЕСТРУКТИВНО: часть процесса, затирающего диски сервера.

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true, so the agent knows it's destructive. The description adds a critical warning: 'ДЕСТРУКТИВНО: часть процесса, затирающего диски сервера' (destructive: part of the process that wipes server disks), which provides context beyond the annotation. However, it doesn't disclose other behavioral aspects like the need for confirmation (implicit in 'confirm' parameter) or any side effects beyond disk wiping. Given the annotation already flags destructiveness, the addition is modest, hence a 3.

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?

The description is concise: three sentences, with the key information front-loaded ('Шаг 1 PXE-переустановки...'). The destructive warning is clearly separated, and every sentence adds value. No filler or 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?

For a simple two-parameter tool with a clear workflow context, the description is quite complete: it explains what it returns ('reinstall_key'), how it fits into the reinstall process, and warns of destructiveness. It lacks details on prerequisites (e.g., server must be powered off?) or the full reinstall flow, but given the simplicity and schema richness, it's nearly sufficient. A 4 is warranted.

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 100%, so both parameters ('id' and 'confirm') are already documented in the schema. The description does not add any new information about the parameters themselves; it only implies via the destructive note why 'confirm' might be needed, but that's not explicit. Since the schema covers everything, baseline 3 applies.

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 clearly states the specific verb ('create'), the resource ('master key for reinstall'), and the context ('Step 1 of PXE reinstall'), and distinguishes it from sibling tools like 'reinstall_server' and 'check_task'. The key generated ('reinstall_key') is identified, and the relation to 'check_task' is explicit, making its purpose unambiguous.

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 implies usage as part of a reinstall workflow: it is the first step, and the key is used by 'check_task' to track stages. However, it does not explicitly state when not to use it or mention alternatives (e.g., 'reinstall_server'), leaving some room for an agent to confuse it with the higher-level reinstall operation. That said, the workflow context is clear enough for a competent agent.

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

create_rhr_requestAInspect

Создать заявку на удалённые работы (rhr/add): работы дежурной смены в дата-центре, которые нельзя выполнить удалённо. Опишите работы максимально подробно в comment. Использовать, только если модуль удалённого управления сервером недоступен/не работает.

NameRequiredDescriptionDefault
idYesID сервера
commentYesПодробное описание требуемых работ
confirmYesMust be true to run the operation.
request_typeNoТип работ, если задаётся справочником

TDQS

A4.6/5.0
Behavior4/5

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

The description reveals a key behavioral trait beyond the annotations: invoking this tool triggers physical work by a data-center duty shift, which has real-world implications. It also instructs to describe the work in maximum detail in comment. Although it doesn't detail post-creation steps, annotations already cover read/write and destructive nature.

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?

The description is three concise sentences, each serving a distinct purpose: what the tool does, how to fill the critical comment field, and when to use it. It is front-loaded with purpose and contains no redundant information.

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?

The description provides enough context for correct invocation: purpose, usage condition, and key parameter detail. It doesn't explicitly describe the full consequence of creating the request (e.g., human dispatch, expected response), but combined with the schema and annotations, an agent can correctly select and use the 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 100%, so all parameters are documented in the schema. The description adds meaningful guidance for the comment parameter, explicitly requiring maximum detail, which goes beyond the schema's 'Подробное описание требуемых работ'. This represents a small but valuable increment.

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 uses a specific verb ('Создать' - create), a specific resource ('заявку на удалённые работы'), and the endpoint (rhr/add). It clearly distinguishes this tool from sibling RHR tools by stating it is for physical data-center shift work that cannot be done remotely.

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

Usage Guidelines5/5

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

It explicitly states when to use the tool: 'Использовать, только если модуль удалённого управления сервером недоступен/не работает'. This gives a clear condition and implies the alternative is the remote server management module, leaving no ambiguity.

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

create_snapshotAInspect

Создать снапшот виртуальной машины (vm/create_snapshot). Асинхронная операция — статус через check_task.

NameRequiredDescriptionDefault
idYesID виртуальной машины
nameYesИмя снапшота
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=false and destructiveHint=false. The description adds value by disclosing that the operation is asynchronous and that status must be tracked via check_task. It does not cover the confirmation requirement in prose, but that is present in the schema with a clear description.

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?

The description is two short sentences with no filler. It front-loads the core purpose and immediately adds the critical async/check_task detail. Every word 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 three-parameter tool with full schema descriptions and annotations, the description is nearly sufficient. It gives the essential async follow-up behavior and clear purpose. A small gap is the lack of any pointer to sibling snapshot operations, but that is not critical for correct invocation.

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 coverage is 100%, with every parameter (id, name, confirm) already described in the input schema. The tool description adds no parameter-specific detail beyond the operation itself, so the schema carries the semantic burden and the baseline of 3 applies.

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 states a specific verb and resource: 'Создать снапшот виртуальной машины' (create a VM snapshot) and even includes the API endpoint 'vm/create_snapshot'. This clearly distinguishes it from sibling tools like get_snapshots, restore_snapshot, and remove_snapshot.

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 async operation note and 'status via check_task' give some post-invocation guidance. However, it never explicitly says when to use this tool versus restore_snapshot or remove_snapshot, nor does it state any exclusions or prerequisites. Usage is largely implied by the name and purpose rather than made explicit.

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

delete_api_keyA
Destructive
Inspect

Удалить API-ключ (api_keys/delete). ДЕСТРУКТИВНО: приложения, использующие ключ, потеряют доступ.

NameRequiredDescriptionDefault
idYesID ключа
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior4/5

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

Annotations already set destructiveHint: true and readOnlyHint: false, so the destructive nature is known. The description adds specific consequence: applications using the key will lose access. This goes beyond the annotation by explaining the impact, which is valuable context. No contradiction with annotations.

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?

The description is extremely concise: two short sentences that state the action, the endpoint, and the critical destructive consequence. It front-loads the essential information and contains no filler. Every word 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 simple delete operation with two parameters fully documented in the schema, the description covers the key behavioral aspect (destructive impact on applications). It does not describe the return value or post-deletion state, but for a delete call this is minor. Combined with annotations and schema, it is nearly complete.

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?

The input schema fully describes both parameters: id (integer, 'ID ключа') and confirm (boolean, 'Must be true to run the operation.'). Schema coverage is 100%, so the description does not need to explain them further. The description adds no additional parameter semantics beyond the schema, warranting the baseline of 3.

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 clearly states the action (Удалить/delete) and the resource (API-ключ/API key), and even includes the endpoint path (api_keys/delete). This is specific and differentiates it from siblings like create_api_key, update_api_key, and list_api_keys. The destructive warning further reinforces its purpose.

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 when to use it (when you intend to revoke an API key and accept that dependent applications will lose access) but does not explicitly mention alternatives or conditions for choosing this over update_api_key (e.g., to disable rather than delete). The destructive note provides some guidance but not full exclusions.

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

delete_cancellation_requestBInspect

Отозвать заявку на отмену услуги (whmcs/delete_cancellation_request).

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already convey that this is a non-read-only but non-destructive operation. The description adds no behavioral traits beyond what the tool name states; it does not mention effects on the service, the confirm guard, or any lifecycle restrictions.

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 a single concise sentence that front-loads the action and resource. The parenthetical API name repeats the tool name, which is mildly redundant but does not significantly hurt clarity.

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?

For a simple two-parameter tool, the schema and annotations cover parameter semantics and safety profile. However, the description lacks usage context and behavioral detail, leaving some gaps around when withdrawal is appropriate and what actually happens.

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 100%, and both parameters already have clear descriptions. The tool description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.

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 states a specific action, 'отозвать' (withdraw), and a clear resource, 'заявку на отмену услуги' (cancellation request). This distinguishes it from related siblings like request_cancellation and get_cancellation_requests without needing to open schemas.

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?

There is no explicit when-to-use or when-not-to-use guidance. The verb and resource imply this is the inverse of request_cancellation, and the sibling list provides context, but the agent must infer the usage rather than being told.

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

delete_contactA
Destructive
Inspect

Удалить дополнительный контакт аккаунта (whmcs/delete_contact). ДЕСТРУКТИВНО.

NameRequiredDescriptionDefault
confirmYesMust be true to run the operation.
contact_idYesID контакта

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description reinforces this with 'ДЕСТРУКТИВНО'. It does identify the specific object being deleted, but it adds no additional behavioral context beyond what the annotations and the word 'delete' already convey. There is no contradiction with the annotations.

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?

The description is a short, front-loaded phrase that states the action and resource in the first clause and warns about destructiveness in the second. There is no filler or unnecessary elaboration, making it efficiently scannable for an agent.

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 simple delete operation with two fully documented required parameters and destructive annotations, the description plus schema is sufficient to invoke the tool correctly. It clearly identifies the target and warns about destructiveness; however, it does not describe any postconditions or side effects, which keeps it from being completely thorough.

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 100%: contact_id is described as 'ID контакта' and confirm is described as 'Must be true to run the operation.' The description itself adds no parameter-level meaning beyond the schema, so the baseline score of 3 applies.

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 uses a specific verb, 'Удалить' (delete), and a specific resource, 'дополнительный контакт аккаунта' (additional account contact), and even names the underlying method whmcs/delete_contact. This clearly distinguishes it from sibling contact tools like add_contact, update_contact, and get_contacts.

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?

The description provides no when-to-use or when-not-to-use guidance and does not mention alternatives such as update_contact or get_contacts. The usage is only implied by the verb 'delete' and the tool name, with no explicit context or prerequisites.

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

delete_dns_domainA
Destructive
Inspect

Удалить домен по ID: DNS-зону, сам домен и все его сабдомены (pdns/delete_domain). ДЕСТРУКТИВНО. Требует права pdns/edit.

NameRequiredDescriptionDefault
confirmYesMust be true to run the operation.
domain_idYesID домена из list_dns_domains
server_idYesID сервера

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is covered. The description still adds genuine value beyond them: the cascade deletion of all subdomains and the required pdns/edit privilege, both of which the annotations do not convey.

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?

A single compact line: what is deleted, how destructive it is, and what permission it needs, in that order. No filler and nothing buried.

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 3-parameter destructive tool with no output schema, the description covers scope, cascade effect, and the auth requirement, which is what an agent needs before calling. The main defect is presentation rather than substance: the text is mojibake-corrupted Cyrillic, which reduces readability for downstream consumers.

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 100% (server_id, domain_id, and the confirm flag are all documented in-schema), so the baseline is 3. The description adds the 'by ID' framing and the note that domain_id comes from list_dns_domains, but no syntax or format detail beyond what the schema already provides.

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 states a concrete verb and resource (delete domain by ID) and spells out the exact blast radius: the DNS zone, the domain itself, and all its subdomains. That scope statement lets an agent distinguish it from siblings like delete_dns_subdomain or delete_dns_zone without opening any schema.

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 names a prerequisite (requires pdns/edit permission) and the underlying API path, but never says when to choose this over the adjacent delete_dns_zone / delete_dns_subdomain tools, nor any when-not condition. Usage is implied by the cascade scope rather than explicitly stated.

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

delete_dns_recordA
Destructive
Inspect

Удалить DNS-запись из зоны (pdns/delete_dns). ДЕСТРУКТИВНО. Требует права pdns/edit.

NameRequiredDescriptionDefault
nameYesИмя записи
typeYesТип записи
zoneYesИмя зоны
confirmYesMust be true to run the operation.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already carry destructiveHint=true, openWorldHint=true and readOnlyHint=false, so the safety profile is partly covered. The description nonetheless adds real value beyond them: the required 'pdns/edit' privilege and the backend endpoint, both of which the annotations do not convey. It stops short of saying whether the deletion is recoverable or how an empty/ambiguous zone is handled.

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?

Three terse segments: action, destructiveness flag, permission requirement. Front-loaded and free of filler, though the internal-endpoint parenthetical is somewhat administrative. No wasted sentences.

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 destructive mutation with no output schema, the description covers the two critical things an agent needs beyond the schema: that it is destructive and that elevated pdns/edit rights are required. Irreversibility and post-delete state are left unstated, a minor gap given annotations already flag destructiveness.

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 100% with all four parameters documented (including the English note that confirm must be true), so the schema does the heavy lifting. The description adds no syntax or disambiguation for zone/name/type beyond what the schema already supplies, making the baseline 3 appropriate.

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 ('Delete a DNS record from a zone') and even names the underlying endpoint (pdns/delete_dns), which pins down exactly which record-level delete this is. It does not explicitly distinguish itself from siblings like delete_dns_zone or delete_dns_subdomain, but the 'record from a zone' phrasing makes the target scope inferable.

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 names a hard precondition ('Requires pdns/edit rights'), which is genuine usage context, but it gives no when-to-use vs when-to-use-something-else guidance and never routes the agent to an alternative (e.g. update/edit for partial changes). Usage is implied by the destructive nature rather than stated.

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

delete_dns_subdomainA
Destructive
Inspect

Удалить сабдомен из таблицы сабдоменов (pdns/delete_subdomain). ДЕСТРУКТИВНО. Требует права pdns/edit.

NameRequiredDescriptionDefault
idYesID сабдомена
confirmYesMust be true to run the operation.
server_idYesID сервера

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description's 'ДЕСТРУКТИВНО' is reinforcing rather than new. However, the required permission (pdns/edit) is genuinely additional behavioral context not present in the structured fields, and it tells the agent what authorization is needed before calling.

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?

Three short sentences, front-loaded with the action, with zero wasted prose. The destructive warning slightly duplicates the annotation, but the sizing is otherwise tight.

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 destructive tool with full schema coverage, annotations covering the safety profile, and no output schema, the description supplies what the agent still needs: the target scope and the required permission. Only the absence of sibling routing keeps it from a 5.

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 coverage is 100% with descriptions for id, server_id, and confirm (including 'Must be true to run the operation.'). The description adds no parameter-level meaning beyond the schema, so baseline 3 is appropriate.

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 (Cyrillic, mojibake-encoded) description states a specific verb+resource: delete a subdomain from the subdomain table, and even names the underlying API endpoint (pdns/delete_subdomain). It is distinguishable from delete_dns_domain by scoping to 'subdomains', though it does not explicitly contrast with that sibling.

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 states the prerequisite permission (pdns/edit), which is useful context for deciding whether the call will succeed, but it gives no explicit when-to-use/when-not guidance or routing to alternatives such as edit_dns_subdomain.

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

delete_dns_zoneA
Destructive
Inspect

Удалить DNS-зону по имени вместе со всеми записями и метаданными (pdns/delete_zone). ДЕСТРУКТИВНО. Требует права pdns/edit.

NameRequiredDescriptionDefault
zoneYesИмя зоны
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, so the description's 'ДЕСТРУКТИВНО' is partly redundant. What it adds beyond the annotations is genuinely useful: the cascade behavior (all records and metadata are removed with the zone) and the exact authorization requirement (pdns/edit), neither of which is expressed in structured fields.

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?

Three compact sentences, front-loaded with the action and scope, then the risk flag, then the permission prerequisite. Every clause carries information; nothing is padding.

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 destructive tool with no output schema and full annotation coverage, the description covers action, cascade scope, risk, and authorization. The only thing an agent might still want is whether the deletion is recoverable, but the destructive annotations plus the cascade statement make the call safe enough in practice.

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 100% and the confirm parameter already carries its own instruction ('Must be true to run the operation'), so the schema does the heavy lifting. The description adds no syntax, format, or validation detail for 'zone', which is the correct baseline when the schema is fully documented.

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 and resource ('delete DNS zone by name') plus the blast radius ('along with all records and metadata'), and cites the underlying API operation (pdns/delete_zone). An agent can distinguish it from delete_dns_record and delete_dns_domain, which operate on narrower scopes.

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 flags the operation as destructive and names the required privilege (pdns/edit), which implicitly tells the agent when it is and isn't appropriate to call. However, it never names an alternative or explicitly contrasts deleting a whole zone versus deleting individual records, leaving that routing to inference from sibling names.

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

delete_iso_imageA
Destructive
Inspect

Удалить ISO-образ по ID (iso/delete). ДЕСТРУКТИВНО. По документации доступно только сотрудникам Hostkey — у клиентов, скорее всего, вернёт ошибку прав.

NameRequiredDescriptionDefault
idYesID ISO-образа
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description adds value by naming the endpoint, explicitly restating destructiveness, and disclosing the authorization restriction for non-staff users. This goes beyond the structured annotations without contradicting them.

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?

The description is three short, purposeful sentences: the action with endpoint, the destructive warning, and the access caveat. It is front-loaded and contains no filler or redundant restating.

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 low-complexity tool with two required parameters, no output schema, and strong annotations, the description is nearly sufficient. It covers the operation, ID-based targeting, confirmation requirement via schema, and access restriction; a minor gap is not pointing the agent to a sibling like list_iso_images for obtaining a valid ISO ID, though that is inferable.

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 100%, with both id and confirm already documented. The description adds no new parameter-level meaning beyond the 'by ID' phrasing, so the baseline of 3 is appropriate.

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 states the exact action (Удалить/delete), the target resource (ISO-образ), and the required identifier (by ID), plus the endpoint iso/delete. This clearly distinguishes it from sibling tools like list_iso_images, mount_iso, unmount_iso, and add_iso_image.

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 provides useful access context by warning that the operation is staff-only and that clients will likely receive a permission error, but it does not explicitly compare against alternatives or state when-not-to-use conditions. Usage is implied rather than fully guided.

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

discard_rhr_requestA
Destructive
Inspect

Отменить/закрыть заявку на удалённые работы (rhr/discard). ДЕСТРУКТИВНО: заявка будет отменена.

NameRequiredDescriptionDefault
idYesID заявки
confirmYesMust be true to run the operation.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false; the description reinforces this with 'ДЕСТРУКТИВНО' and names the object that will be canceled, which is useful. It does not add other behavioral context such as irreversibility, authorization requirements, or side effects, so it remains at a middle score.

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 very short and front-loads the action, with the destructive warning placed immediately after. Minor redundancy ('Отменить/закрыть' and the parenthetical 'rhr/discard') prevents a perfect conciseness score.

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 simple two-parameter destructive tool with full schema coverage and relevant annotations, the description is mostly sufficient: it states the operation, the target, and the destructive nature. It could be more complete by clarifying the expected state after cancellation or explicitly requiring confirm=true in prose, though the schema already covers the confirm flag.

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 100%, with both id and confirm documented in the input schema. The description adds no additional meaning about parameter values, formats, or relationships beyond the schema, so the baseline score of 3 applies.

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 action (cancel/close) and a clear resource (заявка на удалённые работы, rhr/discard), so an agent can tell this is the cancellation counterpart to create/list/add-comment rhr tools. It does not explicitly name a sibling to differentiate, 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 verb 'Отменить/закрыть' implies this tool is for canceling an existing remote-work request, but the description gives no explicit when-to-use guidance, prerequisites, or alternatives. Sibling tools like create_rhr_request and list_rhr_requests are not referenced, so an agent must infer the appropriate context.

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

download_invoiceA
Read-only
Inspect

Скачать инвойс в PDF (whmcs/download_invoice). InvAPI отдаёт бинарный PDF; MCP возвращает JSON с encoding=base64 и data — декодируйте в .pdf.

NameRequiredDescriptionDefault
invoice_idYesНомер инвойса

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations by disclosing a non-obvious runtime trait: the upstream API returns binary PDF but MCP wraps it as JSON with base64 'data' that must be decoded. With no output schema, this is exactly the behavioral detail an agent needs. Annotations already cover the safety profile, and the description adds the payload-handling quirk.

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?

Two tightly packed sentences, front-loaded with what the tool does and followed by the essential handling instruction. Nothing is redundant and every clause earns its place.

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

Completeness5/5

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

For a single-parameter read tool with no output schema, the description supplies the missing return-value information (JSON with encoding=base64 and data, decode to .pdf), which is the main gap the structured fields leave. Nothing needed to invoke it correctly is absent.

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 coverage is 100% with a single documented parameter ('invoice_id: Номер инвойса'), so the schema already carries the semantics. The description adds no further parameter detail (no format, range, or where to obtain the ID). Baseline 3 is appropriate.

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 and resource ('Скачать инвойс в PDF') plus the output format, which implicitly separates it from the metadata-oriented siblings get_invoice/get_invoices. The parenthetical WHMCS method name ('whmcs/download_invoice') anchors it to a concrete operation. An agent can tell what it does 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 Guidelines3/5

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

The PDF output format implies when to use it (when the actual file is needed rather than invoice data), but no alternative such as get_invoice is named and no when-not condition is given. Usage is only implied, which is the definition of a 3.

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

drop_natB
Destructive
Inspect

Удалить запись о NAT из базы данных (nat/drop_nat). ДЕСТРУКТИВНО, служебная операция.

NameRequiredDescriptionDefault
idNoID записи NAT
ipNoIP-адрес записи
confirmYesMust be true to run the operation.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, and the description redundantly repeats 'ДЕСТРУКТИВНО' (DESTRUCTIVE). It adds the context 'служебная операция' (service operation), which suggests an internal administrative function. However, it does not disclose side effects, confirmation requirements, or irreversibility beyond what annotations provide, so it adds limited value.

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 very brief—two clauses—and front-loads the primary action. It is concise with no filler. However, it could have included a hint about the required confirm parameter or a caution about permanence, but for its length it is efficient.

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?

Given the simple 3-parameter schema, full schema coverage, and annotations (readOnlyHint=false, destructiveHint=true), the description is adequate but not complete. It does not mention the confirmation requirement (confirm=true) or any return behavior, though these are partially covered by the schema. For a destructive operation, an explicit statement that confirmation is mandatory would improve completeness.

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 100%: all three parameters (id, ip, confirm) have descriptions. The description itself does not mention or elaborate on any parameters, so it adds no additional meaning beyond the schema. Baseline 3 is appropriate.

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?

Description states a clear verb and resource: 'Удалить запись о NAT из базы данных' (delete NAT record from database), which is specific and unambiguous. However, it does not explicitly differentiate from sibling tools like remove_static_nat or clear_static_nat, which also deal with NAT, so it lacks explicit sibling differentiation.

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?

The description gives no guidance on when to use this tool versus alternatives. It only labels it as a 'служебная операция' (service operation), implying internal use, but does not specify conditions, prerequisites, or scenarios where this tool is preferred over similar NAT-related operations.

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

edit_dns_subdomainBInspect

Обновить сабдомен (pdns/edit_subdomain). Требует права pdns/edit.

NameRequiredDescriptionDefault
idYesID сабдомена
confirmYesMust be true to run the operation.
server_idNoID сервера

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds the pdns/edit permission requirement, useful auth context, but says nothing about partial vs full update semantics, reversibility, or what the required 'confirm' flag guards against.

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 sentences, front-loading the action and then the permission prerequisite; nothing is wasted. The garbled character encoding hurts readability but not structure.

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?

For a mutation tool with no output schema, the description covers the action and the auth requirement, and the schema carries all parameters. It omits what an edit actually changes (full replacement vs patch) and any confirmation behavior, so it is adequate but not complete.

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 100%, so the three parameters are already documented at the schema level and the description correctly needn't repeat them. It adds no syntax or constraint detail beyond the schema, so baseline 3 applies. (Descriptions are mojibake-encoded, which limits their real usability, but that is a schema issue, not a description gap.)

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 ('Обновить сабдомен' = update subdomain) and even names the backing endpoint (pdns/edit_subdomain), so the agent can distinguish it from add_dns_subdomain/delete_dns_subdomain. It does not explicitly name those siblings or state which fields are editable, so it falls 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?

'Требует права pdns/edit' gives a real precondition (required permission), which is more than nothing. However there is no when-to-use vs when-not guidance and no mention of the sibling subdomain tools, so usage is only implied.

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

generate_due_invoiceCInspect

Создать следующий инвойс для сервера (whmcs/generate_due_invoice).

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the write nature is expected. The description adds no behavioral context beyond the bare action—no mention of side effects, irreversibility, authorization requirements, or the openWorldHint implication that external billing systems are affected.

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 a single, front-loaded sentence with no filler. It is appropriately concise, though its brevity verges on under-specification rather than being a model of efficiency.

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

Completeness2/5

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

For a mutation tool with no output schema and an ambiguous term ('next'), the description is incomplete. It does not explain what 'next invoice' means operationally, what the result will be, or what the agent should expect or verify after calling it.

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 100%, with clear descriptions for id and confirm. The tool description adds no extra meaning to these parameters, so the baseline of 3 is appropriate; it neither compensates nor improves on 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 ('create') and resource ('invoice for the server'), which distinguishes it from read-only sibling tools like get_invoice or get_server_invoices. However, the term 'next' is ambiguous and the description does not clarify whether it means the next due invoice, the next period, or the next in sequence, keeping it from 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 Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives like create_addfunds_invoice or get_invoice. There is no mention of prerequisites, exclusions, or context that would help an agent decide between billing-related tools.

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

get_account_infoA
Read-only
Inspect

Информация о текущем API-токене и аккаунте (auth/info): доступные вызовы, тип и роль аккаунта, ID привязанных серверов. Полезно для проверки подключения.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds useful non-obvious context beyond that: it reports account type/role, available calls, and attached server IDs, and frames the tool as a connection check. No contradiction with the annotations.

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?

Two short sentences, with the core resource and returned content front-loaded and no redundant filler. The connection-check note earns its place as practical guidance.

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

Completeness5/5

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

For a zero-parameter, read-only introspection tool with annotations already covering safety, this description is complete: it states the endpoint, what data can be expected, and a common use case. No output schema exists, but the listed fields sufficiently set expectations.

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?

The tool has zero parameters and the schema has no properties, so the baseline is 4. There is no parameter information to add, and the description correctly focuses on the returned account/token information.

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 operation (get current API token and account info) and a resource (auth/info), and it lists concrete contents: available calls, account type/role, attached server IDs. This is distinguishable from sibling key-management tools like get_api_key/list_api_keys because it is explicitly about the current token's account context.

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 provides a clear use case: 'useful for checking the connection'. However, it does not explicitly mention alternatives or exclusions, so it scores below a fully explicit routing description.

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

get_api_keyB
Read-only
Inspect

Информация о конкретном API-ключе (api_keys/view).

NameRequiredDescriptionDefault
idYesID ключа из list_api_keys

TDQS

B3.2/5.0
Behavior2/5

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

The description adds little beyond the readOnlyHint annotation; it only restates that the operation returns information. It does not disclose what fields are returned, whether the key secret is exposed, or any other behavioral nuance.

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?

The description is a single compact sentence with no filler. It front-loads the core purpose and appends the endpoint reference, making it easy to parse.

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 simple get-by-id tool with one fully documented parameter and readOnly annotations, the description is largely sufficient. The main gap is not describing the returned key information, but the absence of an output schema lowers the burden on the description.

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 coverage is 100% and the id parameter is already documented as the key ID from list_api_keys. The description does not add parameter-level meaning, so the baseline 3 applies.

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 that the tool returns information about one specific API key, which distinguishes it from list-oriented siblings like list_api_keys and list_server_api_keys. It lacks an explicit verb but 'information about' clearly conveys a read/retrieve operation.

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?

No guidance is given on when to use this tool versus alternatives such as list_api_keys or get_api_key_history. The word 'specific' weakly implies retrieving a single key, but there is no explicit context or exclusion.

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

get_api_key_historyB
Read-only
Inspect

История использования API-ключа за период (api_keys/history).

NameRequiredDescriptionDefault
idYesID ключа
period_toNoКонец периода, YYYY-MM-DD
period_fromNoНачало периода, YYYY-MM-DD

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that the result is period-scoped history, but it does not disclose details like pagination, record limits, or what constitutes 'usage'. This is acceptable but not rich.

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 a single compact sentence with no redundant words. It is appropriately sized for a simple read-only tool, though it could be slightly more informative about output or defaults.

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?

For a read-only history tool, the required id and optional period fields are documented in the schema, and annotations cover safety. However, the description does not mention what happens when period_from or period_to are omitted, nor what the response contains, and there is no output schema to fill that gap.

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?

The input schema already provides 100% coverage with descriptions for all three parameters: id, period_to, and period_from. The description adds no additional semantic value beyond what the schema provides, so the baseline of 3 is appropriate.

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 operation: retrieving API key usage history over a period, and even includes the endpoint 'api_keys/history'. It clearly identifies the resource and action, though it does not explicitly differentiate from sibling tools like get_api_key or list_api_keys.

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?

No guidance is provided about when to use this tool versus alternatives such as list_api_keys, get_api_key, or list_server_api_keys. The description only explains what the tool does, leaving usage context to be inferred.

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

get_billing_clientA
Read-only
Inspect

Данные клиента из биллинга (whmcs/get_client): контакты, валюта, статус аккаунта.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=trueestern and openWorldHint=true, so the safety profile is covered. The description adds value by listing the kind of data returned (contacts, currency, status), but it does not disclose any additional behavioral traits such as data freshness, authentication requirements, or how open-world changes might affect results.

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?

A single concise sentence that leads with the resource and action, then immediately lists the returned fields. No filler or redundancy.

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

Completeness5/5

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

For a parameterless read-only getter, the description is complete: it identifies the data source, the returned fields, and the scope. There is no output schema, but the description's enumeration of returned content sufficiently informs the agent of what to expect.

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?

The tool has zero parameters, so the schema covers everything. The description does not need to explain parameters, and the baseline of 4 applies. No additional parameter information is required.

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 states a specific verb-resource pair ('get client data from billing') and enumerates the returned content (contacts, currency, account status), referencing the underlying whmcs/get_client endpoint. This clearly distinguishes it from siblings like get_account_info, which focuses on account-level information rather than billing client data.

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: call it when you need billing client details such as contacts, currency, or account status. However, it does not explicitly compare against alternatives like get_account_info or update_billing_client, nor does it state when not to use it.

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

get_cancellation_requestsB
Read-only
Inspect

Список активных заявок на отмену услуг (whmcs/get_cancellation_requests).

NameRequiredDescriptionDefault
idNoID сервера (фильтр)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the 'active' filter as a behavioral scope, which is useful, but it does not disclose whether results are paginated, sorted, or limited to a particular status beyond 'active'.

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?

A single, front-loaded sentence communicates the operation, resource, and scope without filler. The parenthetical endpoint reference is minor but does not hurt conciseness.

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 read-only list operation with one optional documented parameter and no output schema, the description is largely sufficient. The only gap is a slightly ambiguous definition of 'active' and no mention of how the optional id changes the result set, but annotations and schema cover most operational context.

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 100%: the single optional id parameter is already documented as 'ID сервера (фильтр)'. The description does not add extra meaning about how id interacts with the 'active' filter, but the baseline of 3 applies because the schema fully documents the parameter.

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 names a specific resource ('активных заявок на отмену услуг') and a clear operation ('Список'), so an agent knows this retrieves active cancellation requests. It does not explicitly contrast with siblings like request_cancellation or delete_cancellation_request, but the word 'активных' adds scope and makes the purpose immediately distinguishable.

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?

The description gives no guidance about when to use this tool versus related tools such as request_cancellation or delete_cancellation_request. It does not state that this is for viewing existing cancellation requests before acting on them, nor does it mention any conditions or alternatives.

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

get_contactsA
Read-only
Inspect

Список дополнительных контактов аккаунта (whmcs/get_contacts).

NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

The readOnlyHint and openWorldHint annotations already cover the read-only and externally-changing nature of the data. The description adds the 'account contacts' context and the exact endpoint name, but does not describe response format, ordering, or any other behavioral details. There is no contradiction with the annotations.

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?

The description is a single short sentence that front-loads the purpose and adds only the relevant endpoint identifier. There is no filler or redundant explanation.

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

Completeness5/5

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

For a no-parameter, read-only list operation, the description gives enough information for an agent to invoke it correctly: call it and get the account's additional contacts. No input setup, prerequisites, or complex return handling are needed, and annotations cover the safety profile.

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?

The tool has zero parameters, so schema coverage is trivially 100% and the description has nothing to add. Per the baseline for zero-parameter tools, this is adequate.

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 uses a clear action ('list') and a specific resource ('additional contacts of the account'), and the parenthetical endpoint 'whmcs/get_contacts' pins down the exact API. Among siblings like add_contact, update_contact, and delete_contact, it unambiguously identifies this as the read-only list tool.

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 verb 'list' implies the tool is for retrieving contact data, which gives basic usage context. However, it does not explicitly say when to prefer this over sibling contact tools or state that mutations should use add_contact/update_contact/delete_contact.

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

get_credit_historyB
Read-only
Inspect

Движение средств по лицевому счёту: начисления и списания кредитов (whmcs/getcredits).

NameRequiredDescriptionDefault
idYesID сервера

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds the useful context that the history covers credit accruals and debits and references the backend operation (whmcs/getcredits), but it does not disclose filtering, ordering, pagination, or account-scoping 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?

The description is a single concise sentence that front-loads the core resource and includes the backend identifier. It is efficient, though it omits some context that would make the definition more self-sufficient.

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?

For a one-parameter read-only getter with no output schema, the description gives a minimal but workable picture of what the tool returns. It is not fully complete because it leaves the relationship between the server id and the personal account implicit and offers no contrast with sibling billing tools.

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?

The schema fully documents the only parameter id as 'ID сервера' with type integer, so the baseline is 3. The description adds no parameter-level meaning; it also leaves a small ambiguity by describing the resource as a 'personal account' while the parameter points to a server ID.

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 ('Движение средств по лицевому счёту: начисления и списания кредитов') clearly identifies the resource as credit-related account movements and specifies the included data (accruals and debits). It does not use an explicit verb like 'retrieves', and it does not explicitly contrast itself with related billing tools such as get_transactions or get_invoices, so it falls 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 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 choose this tool over the many related billing tools in the sibling list (e.g., get_transactions, get_invoices, get_account_info). The description implies the tool returns credit history, but it provides no exclusions, prerequisites, or alternative-selection criteria.

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

get_dns_zoneB
Read-only
Inspect

Содержимое DNS-зоны: все записи (A, AAAA, CNAME, MX, TXT и т.д.) с авторитетного сервера (pdns/view_zone).

NameRequiredDescriptionDefault
zoneYesИмя зоны, например example.com

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the useful detail that data comes from the authoritative server via the pdns/view_zone call, but says nothing about auth requirements, rate limits, or result size.

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?

A single front-loaded sentence that identifies the resource and enumerates the record types returned, with no filler. It is efficient, though the mojibake encoding garbles the text and slightly impairs readability.

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 one-parameter read-only tool with no output schema, the description adequately conveys the shape of the return value by listing the record types. Missing only the return structure/ordering and any pagination behavior.

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 100% and the single zone parameter is documented with an example (example.com) in the schema itself. The description adds no syntax, format, or normalization detail beyond that, so the baseline 3 applies.

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 clear verb+resource: retrieving the contents of a DNS zone (all records of types A, AAAA, CNAME, MX, TXT, etc.). It implicitly separates itself from zone-listing siblings like list_dns_zones by emphasizing that it returns the records themselves, 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?

The text describes what is returned but gives no when-to-use guidance, no conditions distinguishing it from list_dns_zones, list_dns_domains, or get_ptr_record, and no prerequisites. Usage must be inferred entirely from the resource name.

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

get_invoiceB
Read-only
Inspect

Данные конкретного инвойса для оплаты (whmcs/get_invoice).

NameRequiredDescriptionDefault
invoice_idYesНомер инвойса

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds no behavioral detail beyond its purpose—no mention of response content, authentication needs, pagination, or edge cases. It neither contradicts nor meaningfully extends the annotation data.

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?

A single front-loaded sentence states the resource and operation without wasted words. The parenthetical endpoint name is compact and useful for traceability. The description is appropriately sized for such a simple tool.

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 read-only single-parameter tool with high schema coverage and no output schema, the description provides enough to understand the core purpose. It could be more complete by naming alternatives or indicating the shape of the returned invoice data, but these are minor gaps given the tool's simplicity.

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 100%: the only parameter invoice_id is documented as 'Номер инвойса'. The tool description does not add further parameter context, but with full schema coverage the baseline of 3 is appropriate.

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 clearly identifies the resource as 'конкретного инвойса' (a specific invoice) and the operation as retrieving its data, which distinguishes it from the sibling get_invoices. However, it lacks a strong imperative verb and the parenthetical 'whmcs/get_invoice' is useful but slightly cryptic.

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?

No guidance is given about when to use this tool versus get_invoices or download_invoice. The phrase 'для оплаты' hints at a payment context, but it does not explicitly state when this tool is preferred or how it differs from related invoice tools.

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

get_invoicesA
Read-only
Inspect

Полный список инвойсов аккаунта (whmcs/get_invoices).

NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

The readOnlyHint annotation already covers the safety profile, and the description adds the account scope and the 'full list' behavior. However, it does not disclose return shape, pagination, or sorting. With annotations present, this is adequate but not rich.

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?

A single, front-loaded sentence with no filler. The parenthetical whmcs/get_invoices endpoint adds useful context without bloating the description.

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 zero-parameter read-only list operation, the description is essentially complete. It does not describe the output schema, but the 'list of invoices' phrasing gives a reasonable expectation; no output schema exists anyway.

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?

The input schema has zero parameters, so there is nothing for the description to add. Per the baseline for zero-parameter tools, this is sufficient.

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 states a specific verb and resource: 'Полный список инвойсов аккаунта' (full list of account invoices). This clearly distinguishes it from sibling tools like get_invoice (singular) and get_server_invoices (server-scoped).

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?

No guidance is given about when to use this tool versus alternatives such as get_invoice, get_server_invoices, or download_invoice. The description only states what it does, leaving selection entirely to inference.

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

get_ip_infoC
Read-only
Inspect

Информация о сетевом интерфейсе по IP-адресу (ip/get_ip).

NameRequiredDescriptionDefault
ipYesIP-адрес

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the tool is known to be non-destructive. The description adds no additional behavioral context—no mention of side effects, permissions, rate limits, or response specifics. It simply restates the purpose, providing no value beyond the structured annotations.

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

Conciseness3/5

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

The description is a single short sentence, which is concise and well-structured. However, it is so terse that it leans toward under-specification rather than efficient communication. The sentence provides only bare purpose and even includes a redundant endpoint reference, so it lacks impactful content that would merit a higher score.

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

Completeness2/5

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

With no output schema, the description should clarify what information is actually returned or how the IP is used, but it does not. There is no mention of return fields, error behavior, or scope. The brevity leaves an agent guessing what 'information about the network interface' entails, which is insufficient for a complete definition.

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?

The schema fully describes the sole 'ip' parameter with a description ('IP-адрес'), giving 100% coverage, so the baseline is 3. The description does not add any extra meaning about IP format, validation, or interpretation, so it neither improves nor degrades the semantic clarity.

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 the tool provides information about a network interface given an IP address, which is a clear resource and action (getting info). However, it does not explicitly differentiate from sibling tools like get_network_status or get_ptr_record, so it falls 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 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 use this tool vs. alternatives, no scenario examples, and no mention of excluded cases. The description is purely a statement of purpose without usage context.

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

get_network_statusA
Read-only
Inspect

Состояние сетевых интерфейсов сервера (net/get_status): порт, свитч, VLAN, скорость, MAC, статус подключения. Опциональный port ограничивает запрос одним интерфейсом (если другой NIC без upstream_id ломает ответ).

NameRequiredDescriptionDefault
idYesID сервера
portNoОпциональный интерфейс/порт свитча (например eth0). Без параметра — все интерфейсы; при ошибке map switch на незамапленном NIC повторите с портом из get_server.

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark it read-only and open-world, so the safety profile is covered. The description adds genuine behavioral context beyond that: a NIC lacking upstream_id can make the whole response fail, which is a failure mode an agent could not infer from annotations or schema.

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 dense sentences, front-loaded with the resource and returned fields before the parameter caveat. No filler, though the parenthetical error note partially duplicates the schema description.

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

Completeness5/5

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

With no output schema, the description usefully enumerates the returned fields, and for a two-parameter read tool with full schema coverage that is everything an agent needs. Both the happy path and the known failure/retry path are covered.

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 coverage is 100% and the port parameter already documents the eth0 example and the unmapped-NIC retry in the schema itself. The description restates that same workaround rather than adding new semantics, so baseline 3 applies.

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 ('Состояние сетевых интерфейсов сервера') and enumerates the returned fields (port, switch, VLAN, speed, MAC, connection status), so an agent knows exactly what it gets. It is clearly distinct from siblings like get_server_sensors or get_power_status, though it never names those alternatives as contrasts.

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 concrete conditional guidance: the optional port narrows the request to one interface, and it should be used when another NIC without upstream_id breaks the response. That is a real when-to-use rule, but there is no explicit statement of when not to use it or which sibling to prefer for adjacent network data.

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

get_payment_gatewayA
Read-only
Inspect

Способы оплаты конкретного инвойса (whmcs/getpaymentgw).

NameRequiredDescriptionDefault
invoice_idYesНомер инвойса

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true and openWorldHint=true, which are consistent with the description's read-only nature. However, the description adds no additional behavioral details such as return format or potential side effects, relying on the annotations.

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?

The description is a single concise sentence in Russian, translating to 'Payment methods of a specific invoice (whmcs/getpaymentgw).' It is front-loaded with the purpose and contains no redundant 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?

For a simple read-only tool with one well-documented parameter and no output schema, the description is largely sufficient. It clearly indicates the input (invoice_id) and the purpose (payment methods). While it does not describe the return structure, this is a minor gap given the tool's simplicity.

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?

The only parameter invoice_id is fully documented in the schema with a description ('Invoice number'), achieving 100% schema coverage. The tool description does not add extra parameter context, but the schema already provides sufficient meaning.

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 states a clear purpose: retrieving payment methods for a specific invoice. The verb 'get' is implied by the name, and the resource 'payment methods' plus scope 'specific invoice' distinguishes it from sibling tools like get_invoice or download_invoice.

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?

No guidance is given on when to use this tool versus alternatives such as get_invoice or get_transactions. The description only mentions the underlying API call (whmcs/getpaymentgw) without providing context on selection criteria.

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

get_port_graphsB
Read-only
Inspect

Графики загрузки порта за период (net/show_cacti): день/месяц/год.

NameRequiredDescriptionDefault
idYesID сервера
portYesФизический порт свитча
graphYes1 — день, 2 — месяц, 3 — год

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=trueo, so the read-only nature is covered. The description adds the data source context ('net/show_cacti') and the time-period variants, but does not disclose what the returned graphs look like (e.g., image URLs, binary data, or a list). No contradiction with annotations.

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?

A single concise Russian phrase conveys the tool's purpose and period options with no filler words. It is appropriately sized for the tool's simplicity.

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?

For a simple read-only tool with fully documented parameters and a readOnlyHint, the description is mostly adequate. However, with no output schema, the description does not clarify the return format of the graphs, which is a meaningful gap for an agent deciding how to consume the response.

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 100%, so all three parameters are already documented. The description merely restates the graph parameter's day/month/year mapping without adding new semantic detail beyond the schema. Baseline 3 is appropriate.

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 clearly identifies the resource (port) and data type (load graphs over a period), and lists the day/month/year variants. It lacks an explicit verb, relying on the tool name for the action, but it is specific enough to distinguish from unrelated siblings like port_on/off or get_network_status.

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?

No guidance is given on when to use this tool versus alternatives, and no exclusions or sibling references are provided. The usage context is only implied: use it when port load graphs are needed. This is minimal viable information but lacks explicit routing.

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

get_power_statusA
Read-only
Inspect

Текущий статус питания сервера (включён/выключен).

NameRequiredDescriptionDefault
idYesID сервера

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and openWorldHint=true, covering side-effect freedom and non-deterministic output. The description adds 'current' and '(on/off)', reinforcing the live nature of the value. It does not discuss authentication or response format, but with annotations present, this is acceptable.

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?

The description is a single, front-loaded sentence that conveys the tool's purpose and expected values with no filler. It is appropriately sized for the tool's simplicity and earns its place entirely.

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 simple read-only status tool with one documented parameter and annotations covering side effects, the description is nearly complete. It does not state the exact response structure, but the '(on/off)' phrase gives the key value domain. Minor gaps around error cases are tolerable given the low complexity.

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 100%: the 'id' parameter is documented as 'Server ID'. The description adds no additional parameter meaning or context. The schema fully carries the semantic load, so the baseline score of 3 applies.

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 states a specific verb ('get') and resource ('power status') and clarifies the possible return values ('on/off'). It is easily distinguished from siblings like get_network_status or power_on/power_off by the resource it queries. The purpose is unambiguous.

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?

No explicit guidance is given on when to use this tool versus alternatives like get_server. However, the name and description make the intended use obvious: checking the current power state. The usage is implied but not elaborated with exclusions or alternative suggestions.

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

get_presetA
Read-only
Inspect

Информация о конкретном пресете или обо всех пресетах (presets/show). Может требовать авторизации в зависимости от прав.

NameRequiredDescriptionDefault
idNoID пресета; без него — список всех

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare readOnlyHint and openWorldHint, so the read-only safety profile is covered. The description adds the useful behavioral caveat that authorization may be required depending on rights, which is not present in the annotations.

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?

The description is only two short sentences, with the core behavior front-loaded and no filler, redundancy, or restatement of the tool name.

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 simple, optional-parameter read operation with a clear schema and read-only annotations, the description is adequate: it specifies that either a single preset or all presets can be returned and warns about authorization. It could mention the response shape, but the tool's low complexity makes this a minor gap.

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?

The schema already documents the sole parameter id with a description covering the optional-ID behavior ('без него — список всех'). Since schema description coverage is 100%, the description adds no meaningful parameter semantics beyond what the schema provides.

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 clearly identifies a specific resource (presets) and action (retrieve information), and clarifies the optional scope: a specific preset or all presets. It does not explicitly contrast with sibling tools like list_presets or search_presets, leaving differentiation implicit.

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 conveys the basic use case and notes that authorization may be required depending on permissions. However, it gives no explicit guidance about when to prefer get_preset over the closely related list_presets or search_presets tools, so usage context is implied rather than stated.

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

get_preset_pricingB
Read-only
Inspect

Цены на доступные пресеты в указанных валютах (presets/info). Токен не требуется.

NameRequiredDescriptionDefault
currenciesNoКоды валют через запятую, например EUR,USD. По умолчанию EUR

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds the fact that no token is required ('Токен не требуется'), which is useful behavioral context beyond annotations. However, it doesn't describe the response format or any other behavioral traits. With annotations covering the read-only nature, a 3 is appropriate – some added value but not rich context.

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 sentences with no wasted words. The purpose is front-loaded ('Цены на доступные пресеты...'), followed by the token requirement. It's appropriately concise for a simple tool, though it could arguably include a bit more context about usage.

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 simple read-only tool with one optional parameter and no output schema, the description covers the purpose and the token requirement adequately. Given the tool's low complexity, it's fairly complete. The lack of return-format description is a minor gap for such a simple query tool, but not critical.

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 100% – the single `currencies` parameter is fully documented in the schema with format examples (EUR,USD) and a default (EUR). The description adds nothing beyond the schema's parameter documentation, merely referencing 'specified currencies'. Baseline 3 is correct when the schema carries the full parameter meaning.

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: it returns prices (Цены) for available presets in specified currencies. This clearly distinguishes it from siblings like list_presets (which lists presets) and get_preset (which gets a single preset). The endpoint hint '(presets/info)' is somewhat cryptic for non-Russian speakers but doesn't obscure the purpose. It's clear but doesn't explicitly name its sibling differentiation.

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?

The description provides no explicit guidance on when to use this tool versus alternatives such as list_presets, search_presets, or get_preset. There are no stated conditions, exclusions, or alternative routing. An agent must infer the usage context purely from the purpose statement, which is a significant gap given the many sibling preset-related tools.

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

get_ptr_recordA
Read-only
Inspect

Текущая PTR-запись (reverse DNS) для IP-адреса (ip/get_ptr).

NameRequiredDescriptionDefault
idYesID сервера
ipYesIP-адрес

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds the specific resource (PTR record) but does not disclose additional behaviors such as error handling, authentication needs, or response format. Given the annotation coverage, this is adequate but not rich.

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?

A single concise sentence that conveys the purpose and includes the API path. There is zero fluff, and the essential information is front-loaded.

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 simple read-only tool with two well-described parameters, the description is sufficient. It does not specify the return structure, but given no output schema and the straightforward nature of the operation, this is a minor gap. The tool's complexity is low, so the description is adequately complete.

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?

The input schema has 100% description coverage, with each parameter (id, ip) fully documented. The description adds no extra meaning beyond what the schema provides, so the baseline of 3 applies.

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 states a specific verb (get) and resource (PTR record for an IP address), clearly identifying what the tool returns. The inclusion of the internal API path 'ip/get_ptr' adds specificity and distinguishes it from sibling update_ptr_record by its read-only nature.

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 (to fetch a PTR record) but does not explicitly state when to use this tool over alternatives like update_ptr_record. There is no guidance on exclusions or prerequisites, though the get/update distinction is inferable from the name.

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

get_serverB
Read-only
Inspect

Полная информация о сервере по его ID (eq/show): конфигурация, сеть, статус, расположение.

NameRequiredDescriptionDefault
idYesID сервера в InvAPI

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds that the tool returns full information including configuration, network, status, and location, which sets expectations for the content. However, it does not disclose any other behaviors like response format, pagination (unlikely for a single object), or potential performance characteristics. Given the annotations, this is adequate but not rich.

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?

A single, front-loaded sentence that states the purpose and key scope in a compact manner. No redundant words, and the information is organized logically (ID, then what is returned). Efficient for an agent to parse.

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 simple get-by-ID operation with one parameter and no output schema, the description is fairly complete. It lists the major categories of returned data, which helps the agent understand what to expect. It could be more explicit about the exact structure or any limitations, but given the tool's simplicity and annotation coverage, it is adequate.

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?

The input schema has one parameter (id) with a clear description ('ID сервера в InvAPI'), and schema coverage is 100%. The description repeats 'by its ID' but adds no extra semantic detail beyond the schema. Per the baseline for high schema coverage, this is a 3.

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 ('get') and resource ('server'), and clarifies scope by ID. It lists the categories of information returned (configuration, network, status, location), which distinguishes it from more specific siblings like get_server_sensors or get_server_billing_data. However, it does not explicitly contrast with get_servers (the plural listing tool), leaving some ambiguity about when to use this vs. the list.

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?

No explicit guidance on when to use this tool vs. alternatives. It is implied that you use it when you have a specific server ID and want full details, but the description does not mention exclusions or refer to sibling tools such as get_servers for listing. The agent must infer usage from the parameter and naming.

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

get_server_billing_dataB
Read-only
Inspect

Платёжная информация по аренде сервера (whmcs/get_billing_data).

NameRequiredDescriptionDefault
idYesID сервера

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the server-rental scope and WHMCS backend reference, but it does not describe response format, pagination, or any other behavioral traits; still, nothing contradicts the annotations.

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 a single short clause with no filler, and the core scope appears immediately. It is appropriately terse, though the brevity borders on under-specification because it omits usage and output context.

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?

For a one-parameter, read-only lookup, the core purpose is minimally clear. However, with no output schema and many adjacent billing tools in the sibling list, the description leaves the agent reliant on name-based inference rather than explicit guidance about what data is returned or when this tool is the right choice.

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 100%, and the single required id parameter is already documented as 'ID сервера'. The description adds no additional meaning about the parameter beyond what the input schema already provides, so the baseline of 3 applies.

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 identifies a specific resource ('payment information for server rental') and includes the internal endpoint whmcs/get_billing_data, so the tool's purpose is clear. However, it is phrased as a noun phrase rather than a verb action and does not distinguish itself from nearby billing siblings such as get_server_invoices or get_billing_client.

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 use this tool versus alternatives, nor any mention of when not to use it. The sibling list contains several billing-related tools, but the description gives the agent no routing information to select between them.

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

get_server_invoicesA
Read-only
Inspect

Инвойсы, относящиеся к конкретному серверу (whmcs/get_related_invoices).

NameRequiredDescriptionDefault
idYesID сервера

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint, covering the safety profile. The description adds minimal behavioral context via the plural 'invoices' and the internal WHMCS endpoint reference, but it does not describe output shape, pagination, ordering, or possible empty results. This is acceptable for a simple read-only lookup but adds little beyond annotations.

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?

The description is a single, front-loaded sentence with no redundant words. The parenthetical backend reference is useful and compact, making the definition appropriately sized for the tool's simplicity.

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 one-parameter read-only lookup, the description plus schema is sufficient for an agent to call it correctly: it knows the required server id and that the result is invoices related to that server. A minor gap is the lack of explicit output structure or differentiation from get_server_billing_data, but this is not blocking.

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?

The input schema has 100% description coverage for the only parameter, id, described as 'ID сервера'. The tool description itself adds no parameter-level detail, so the baseline score of 3 applies.

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 'Инвойсы, относящиеся к конкретному серверу' clearly identifies the resource (invoices) and the scope (a specific server), which aligns with the tool name. It does not use an explicit verb like 'list' or 'retrieve,' but the meaning is unambiguous and distinguishable from generic invoice tools by the server scoping.

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: call this tool when you need invoices tied to a particular server. However, it does not explicitly state when to prefer this over siblings like get_invoices, get_invoice, or get_server_billing_data, nor does it mention any exclusions or fallback conditions.

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

get_serversA
Read-only
Inspect

Список серверов аккаунта Hostkey с фильтрами. Перед первым вызовом автоматически обновляет инвентарь (eq/update_servers). Возвращает ID серверов и краткие данные; для полной карточки используйте get_server.

NameRequiredDescriptionDefault
ipNoНайти сервер по IP-адресу
macNoНайти сервер по MAC-адресу
groupNoГруппы через запятую: VPS,Gpu,1CPU,2CPU,AMD,Instances,Storage,Nodes,Micro,Mini,Dell
statusNoСтатус: rent (активный) или power_off (приостановлен)
locationNoКоды локаций через запятую: NL,US,FI,DE,IS,TR,UK,ES,IT,PL,CH

TDQS

A3.6/5.0
Behavior1/5

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

The description reveals an important side effect: before the first call it automatically updates inventory via eq/update_servers. This directly contradicts the readOnlyHint=true annotation, which signals no state modification. Per the contradiction rule, this dimension must be scored 1.

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?

The description is two crisp sentences with no filler. It packs in purpose, filter capability, a side effect, return summary, and sibling routing. It earns its length.

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 listing tool with schema-described optional filters, the description covers the essentials: what it returns, the auto-update behavior, and how to get full data. It does not describe pagination or filter combination semantics, but those are not critical for a simple list call.

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 100%, so the structured definitions of ip, mac, group, status, and location already carry the parameter semantics. The description only says 'with filters' and adds no meaning beyond the schema, so the baseline 3 applies.

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 clearly states the tool's job: list Hostkey account servers with filters. It also distinguishes itself from get_server by noting it returns IDs and brief data, while get_server provides the full card. An agent can immediately tell which tool to use for an overview versus a detailed server view.

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 a direct routing cue: use get_server for a full server card, implying get_servers is for filtered overview listing. It doesn't explicitly compare against other list/search siblings, but the most relevant alternative is named and differentiated.

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

get_server_sensorsA
Read-only
Inspect

Показания аппаратных сенсоров сервера (температуры, напряжения, вентиляторы). Только для bare-metal.

NameRequiredDescriptionDefault
idYesID сервера

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, and the description is consistent with that. The description adds useful behavioral and contextual information by scoping the tool to bare-metal servers and listing the sensor families covered, which the annotations do not convey. It stops short of describing error cases or units, but for a read-only sensor endpoint the added scope is meaningful.

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?

The description is a single compact sentence with a parenthetical list of sensor types and one important constraint. Every element earns its place, and there is no redundant restatement of the tool name or schema.

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 one-parameter read-only tool, the description sufficiently covers purpose, sensor categories, and hardware scope for selection and invocation. An output schema is absent, so result structure and units would have been welcome, but they are not essential for calling the tool correctly.

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?

The only parameter, 'id', is already fully documented in the schema as 'ID сервера', and schema description coverage is 100%. The tool description adds no additional meaning about the parameter, so the baseline of 3 applies.

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 identifies the resource (hardware sensors) and the contents (temperatures, voltages, fans), and clearly limits the operation to bare-metal servers. It lacks an explicit action verb, but 'readings' combined with the tool name makes the retrieval purpose clear. The bare-metal qualifier also helps distinguish it from VM-related siblings.

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 phrase 'Только для bare-metal' explicitly restricts usage to bare-metal hardware, giving the agent a clear selection criterion. It does not name a specific alternative for virtual servers, so the guidance is clear but not exhaustive.

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

get_server_tagsB
Read-only
Inspect

Все теги сервера (tags/list). Теги хранят произвольные пары ключ-значение.

NameRequiredDescriptionDefault
idYesID сервера

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering safety and open-world semantics. The description adds that tags are arbitrary key-value pairs, which is useful context, but does not disclose any further behavioral details such as output format or potential edge cases.

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?

The description is two concise sentences, front-loaded with the core purpose ('All server tags') and immediately clarifies the nature of the data. No unnecessary 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?

For a simple read-only tool with one well-documented parameter and no output schema, the description adequately covers the essential purpose and data type. It does not mention return format, but that is implied by 'all tags'. The tool is sufficiently complete for an agent to understand and invoke correctly.

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?

The only parameter 'id' is fully described in the schema with 'ID сервера'. The description does not add any additional meaning or constraints beyond the schema. With 100% schema coverage, a baseline of 3 is appropriate.

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?

Description clearly states the tool retrieves all server tags and specifies they are key-value pairs, which is a specific verb+resource. It does not explicitly distinguish from sibling tools like search_servers_by_tag, but the intent is clear from the name and description.

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?

No guidance is provided on when to use this tool versus alternatives. The description does not mention that it is for listing tags of a specific server, nor does it contrast with search_servers_by_tag or other related tools.

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

get_snapshotsA
Read-only
Inspect

Список снапшотов виртуальной машины (vm/get_snapshot): имя, snapshot_id, дата.

NameRequiredDescriptionDefault
idYesID виртуальной машины

TDQS

A4.1/5.0
Behavior3/5

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

The readOnlyHint=true annotation already communicates that this operation does not modify state, and the description is consistent with that. The description adds return-shape context (name, snapshot_id, date) and scopes the operation to a VM, which is useful. It does not disclose ordering, pagination, or behavior when no snapshots exist, but annotations carry the safety profile.

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?

The description is a single sentence, front-loaded with the action and resource, then compactly lists the output fields. There is no filler or repeated schema content, and the endpoint hint adds useful provenance without bloating the text.

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

Completeness5/5

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

With one fully documented parameter, read-only annotations, and no output schema, the description gives enough for correct invocation: what it lists, for which VM, and what fields to expect. It could mention ordering or empty-list behavior, but these are minor gaps for such a simple read-only tool.

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 100%, and the property description already documents id as 'ID виртуальной машины'. The tool description repeats the VM scoping but adds no new parameter format, constraints, or default information. Baseline 3 applies because the schema fully documents the only parameter.

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 uses a specific verb and resource: 'Список снапшотов виртуальной машины' (list of VM snapshots), and enumerates the returned fields: name, snapshot_id, date. This clearly distinguishes the read-only listing operation from mutation siblings like create_snapshot, remove_snapshot, and restore_snapshot. The parenthetical '(vm/get_snapshot)' does not obscure the meaning.

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 makes the use case clear: call this when you need the snapshot list for a specific VM identified by id. It does not explicitly name alternatives or exclusion conditions, so agents must infer the contrast with snapshot mutation tools from the verb. This is clear context without formal when-not guidance.

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

get_stock_serverA
Read-only
Inspect

Детальная информация о конкретном stock-сервере (stocks/show).

NameRequiredDescriptionDefault
idYesID stock-сервера из list_stock_servers

TDQS

A3.6/5.0
Behavior3/5

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

The description is consistent with the readOnlyHint=true and openWorldHint=true annotations, confirming this is a safe read operation. It adds the endpoint name 'stocks/show' but does not disclose any further behavioral traits such as response shape, pagination, or potential absence of data. Since annotations already cover the safety profile, this is adequate but not rich.

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?

The description is a single concise sentence with no redundant words. The endpoint reference in parentheses adds useful context without bloating the text.

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 simple read-only get-by-id tool with one well-documented parameter and safe annotations, the description is mostly complete. The only minor gap is that 'детальная информация' does not enumerate which details are returned, and there is no output schema to fill that gap; nevertheless, the intended use is clear.

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 100%, and the only parameter 'id' is already documented as 'ID stock-сервера из list_stock_servers', so the schema carries the semantic burden. The description itself does not add parameter-level detail, but it does not need to given full schema coverage.

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 clear action and resource: retrieving detailed information about a specific stock-server, with the endpoint 'stocks/show' as a cross-reference. It distinguishes itself from list_stock_servers by specifying 'конкретном' (specific), though it does not explicitly contrast with get_server.

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 explicit: the phrase 'конкретном stock-сервере' suggests using this tool when you already have a particular stock-server ID, and the schema reference to list_stock_servers hints at a list-then-get flow. However, there is no direct 'use this instead of X' guidance or explicit alternative comparison.

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

get_transactionsA
Read-only
Inspect

Список транзакций по аккаунту клиента (whmcs/transactions).

NameRequiredDescriptionDefault
invoice_idNoФильтр по инвойсу
transaction_idNoКонкретная транзакция

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is known. The description adds minimal behavioral context: it is scoped to client-account transactions but says nothing about default behavior, result shape, pagination, or how the optional filters interact. It does not contradict annotations but adds little beyond them.

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?

The description is a single, focused sentence that immediately states the resource and scope. There is no filler, redundancy, or structural waste. It is concise and front-loaded.

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?

For a read-only list with two optional filters and no output schema, the description is adequate but has gaps: it does not explain return format, pagination, or whether invoice_id and transaction_id are combined as AND/OR. Given the low complexity and annotations covering safety, a 3 is fair.

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 100% (both invoice_id and transaction_id have descriptions). The tool description adds no extra meaning about how parameters relate or behave, so it does not compensate beyond the schema. Baseline 3 is appropriate per the rubric.

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 the resource ('transactions by client account') and implies the action 'list' via the noun 'Список' (list). It is clearly distinct from sibling tools like get_invoices and get_credit_history, though it does not explicitly name an alternative. This is a clear purpose with only minor lack of an explicit verb.

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 this tool is for listing transactions for a client account, but provides no explicit guidance on when to prefer it over alternatives, nor any exclusions or conditions. It relies on the tool name and context to convey usage. There is no mention of when not to use it or of related tools such as get_invoices.

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

get_uploaded_isosB
Read-only
Inspect

Список ISO-образов, загруженных клиентом (iso/uploaded).

NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

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

The readOnlyHint and openWorldHint annotations already cover the safety and possible incompleteness of the result set, but the description adds no behavioral detail beyond restating the client-uploaded scope. It does not mention ordering, pagination, representation, or any caveats, so the description contributes little beyond the annotations.

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?

The description is a single focused phrase that front-loads the resource type and scope with no redundant words or filler. Despite being terse, it is appropriate for a zero-parameter read-only list.

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?

For a zero-parameter read-only operation, the description is minimally sufficient, and no invocation details are missing. However, it does not distinguish get_uploaded_isos from the very similar sibling list_iso_images, nor does it describe the output shape, so an agent still has to infer selection and return expectations.

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?

The tool has zero parameters wrapped by an empty schema, so there is nothing for the description to clarify about parameter meanings. The baseline of 4 for a no-parameter tool applies.

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 ('list') and a clearly scoped resource: ISO images uploaded by the client, reinforced by the 'iso/uploaded' path in parentheses. It does not explicitly contrast itself with the sibling list_iso_images, so it falls just short of full differentiation.

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 tool instead of list_iso_images or how it relates to upload_iso/mount_iso/delete_iso_image. The only usage signal is the phrase 'uploaded by the client', which implies a filter but never explains the intended selection scenario.

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

get_vm_engineB
Read-only
Inspect

Информация о движке виртуализации (vm/get_engine).

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

The description's wording 'Информация о' aligns with the annotations readOnlyHint=true and no destructive hint, so there is no contradiction. It adds the endpoint name but does not disclose what specific engine details are returned or how the result should be interpreted, so behavioral context beyond annotations is minimal.

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?

The description is a single sentence with no filler; it front-loads the purpose and adds the endpoint in parentheses. Every word earns its place.

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?

For a zero-parameter read-only tool, the description is adequate for an agent to invoke it safely, but it does not hint at the shape or content of the returned virtualization-engine information, and there is no output schema to fill that gap. Low complexity prevents a lower score, but some ambiguity about the result remains.

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?

The tool has zero parameters, so the description does not need to explain parameter semantics. Schema coverage is trivially 100%, and the zero-parameter baseline of 4 applies.

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 clearly states the operation is about retrieving information about the virtualization engine and even includes the endpoint 'vm/get_engine'. It is distinguishable from sibling getters like get_vm_stats or get_server, though it does not explicitly contrast them.

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 about when to use this tool versus alternatives, no when-not-to-use conditions, and no mention of sibling tools. The agent must infer usage entirely from the tool name and general context.

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

get_vm_statsB
Read-only
Inspect

Статистика виртуальной машины (vm/load_stats).

NameRequiredDescriptionDefault
idYesID виртуальной машины

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, covering the safety profile. The description adds the endpoint path 'vm/load_stats', which is mildly informative, but it does not disclose what statistics are returned, how they are scoped, or any operational caveats.

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?

The description is a single concise sentence that states the subject and includes the endpoint reference with no filler or redundant content. It is appropriately front-loaded and efficient.

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?

For a simple one-parameter read-only tool, the description is minimally adequate, but it lacks detail about the actual statistics returned, especially since no output schema exists. An agent would need additional context to interpret the response.

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?

The schema covers 100% of the parameter descriptions, including 'ID виртуальной машины'. The tool description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.

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 clearly identifies the resource as a virtual machine and the operation as statistics retrieval, reinforced by the endpoint hint 'vm/load_stats'. It is not a tautology, though it lacks an explicit verb and does not explicitly distinguish itself from sibling tools.

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?

No guidance is provided about when to use this tool versus alternatives such as get_server_sensors, get_network_status, or get_port_graphs. The description gives no context, exclusions, or mention of better-suited sibling tools.

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

get_vnc_consoleB
Read-only
Inspect

Доступ к VNC-консоли сервера (eq/console): возвращает конфиг console.vv в Base64 для virt-viewer.

NameRequiredDescriptionDefault
idYesID сервера

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful output-format detail (Base64 console.vv) but omits context such as whether the server must be powered on or how the returned config should be consumed. This is acceptable but not rich.

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?

A single compact sentence conveys the operation, the exact output artifact, and its encoding. There is no filler or redundant restatement of the tool name.

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 one-parameter read-only tool with no output schema, the description says what is returned (Base64 console.vv) and its intended use (virt-viewer). It could mention prerequisites or error conditions, but the core invocation context is adequately covered.

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 coverage is 100%, and the only parameter (id) is already described as 'ID сервера'. The description does not add any extra parameter meaning, so the baseline of 3 applies.

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 names a specific resource (server VNC console) and a specific output (console.vv config in Base64 for virt-viewer), so an agent knows what the tool returns. However, it does not explicitly distinguish this from sibling tools like start_novnc or request_rh_kvm; the 'eq/console' hint is ambiguous rather than a clear sibling contrast.

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 choose this tool over alternatives such as start_novnc, request_rh_kvm, or get_server. The description merely states what it does, leaving the selection criteria entirely to inference.

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

list_api_keysB
Read-only
Inspect

Список всех API-ключей аккаунта (api_keys/list).

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description need not repeat that. The description adds no behavioral context beyond the scope (account-level), and openWorldHint is not explained. It neither contradicts nor enriches the annotations.

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?

A single, efficient sentence that clearly conveys the purpose. There is no extraneous information, and the endpoint path is included as a useful reference.

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?

For a no-parameter read-only list, the description is adequate but minimal. It covers scope but does not mention the response format or explicitly differentiate from list_server_api_keys, which could lead to misuse. Given the sibling exists, this is a notable gap.

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?

The tool has zero parameters, so the schema is empty and there is nothing to describe. The baseline for 0 params is 4, and the description adds no extra parameter information, which is appropriate.

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 clearly states the action (list) and resource (API keys) and specifies scope as 'of the account', which distinguishes it from the server-specific sibling list_server_api_keys. However, it does not explicitly name the alternative or highlight the distinction, so it's clear but not fully differentiated.

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?

No guidance is provided on when to use this tool versus list_server_api_keys or get_api_key. The description simply states what it does without any context about selection criteria or exclusions.

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

list_dns_domainsB
Read-only
Inspect

Список всех доменов пользователя из таблицы доменов (pdns/list_domains).

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds useful context by naming the underlying data source (pdns/list_domains), but it says nothing about result size, pagination, or ordering for what could be a large list.

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?

A single front-loaded sentence with no filler, which is appropriate for a no-argument list tool. The one flaw is the broken character encoding, which degrades legibility without adding any value.

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 simple read-only, zero-parameter list with no output schema, the description plus annotations give the agent enough to call it correctly. Return-shape and pagination details are the only omissions, and those are minor here.

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?

The tool takes zero parameters, so the schema carries no semantics to explain and the baseline is 4. There is nothing for the description to clarify beyond noting that no filtering arguments exist, which is implicit.

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+resource: it lists all of the user's domains, and it names the backing source (the pdns/list_domains table). That distinguishes it from siblings like list_dns_zones and list_dns_subdomains, though it never explicitly contrasts with them. The garbled Cyrillic encoding (mojibake) hurts readability but the meaning is recoverable.

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 use this versus the many sibling DNS tools (list_dns_zones, get_dns_zone, list_dns_subdomains) or on any prerequisites. The agent must infer that this returns the domain-level inventory rather than zones or records.

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

list_dns_subdomainsB
Read-only
Inspect

Список сабдоменов по ID сервера (pdns/list_subdomains).

NameRequiredDescriptionDefault
server_idYesID сервера

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already supply readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds no behavioral context of its own — no pagination, ordering, auth scope, or result-shape information — so it contributes little beyond the endpoint identifier.

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?

A single front-loaded sentence with the resource and scope stated first and the endpoint given parenthetically; no filler or repetition.

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?

For a one-parameter, read-only list tool with full schema coverage and annotations, the essentials are present, and no output schema means return values need not be described. It still leaves unclear how this list relates to the sibling DNS listing tools, which matters given how many DNS tools share the namespace.

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?

There is a single parameter with 100% schema description coverage, so the schema fully documents server_id. The phrase 'by server ID' in the description mirrors the schema rather than adding format, range, or lookup semantics, which is the expected baseline of 3.

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 gives a specific verb and resource ('list of subdomains') plus a scoping constraint ('by server ID') and even names the upstream endpoint (pdns/list_subdomains). However, it does nothing to separate itself from the several DNS siblings such as list_dns_domains, list_dns_zones, or get_dns_zone.

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 when-to-use, when-not-to-use, or alternative-naming guidance. An agent must infer from the name alone whether this is the right call versus list_dns_domains or get_dns_zone.

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

list_dns_zonesB
Read-only
Inspect

Список всех DNS-зон аккаунта на серверах PowerDNS Hostkey (pdns/list_zones).

NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and external-reach profile are covered. The description adds only modest extra context: 'all' zones for the whole account (i.e., no filtering) and the backing service (PowerDNS Hostkey servers). It says nothing about pagination, result volume, or ordering, which is the main behavioral gap for a bulk list 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?

A single front-loaded sentence with no filler that maps directly onto the tool name and the underlying API method. It is docked slightly because the text is stored in a corrupted encoding (Cyrillic rendered as mojibake), which costs an agent readability even though the sentence itself is tight.

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?

For a read-only, zero-parameter list tool with no output schema, the description covers the essentials (what is listed, for which account, from which backend). It omits anything about result shape or whether the full zone set is returned in one call, which is the remaining useful detail given there is no output schema to fall back on.

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?

The tool takes zero parameters, so per the rubric the baseline is 4; there is no syntax or format detail the description could usefully add. Schema coverage is 100% (empty object), so nothing is left undocumented.

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 (mojibake-decoded: 'List of all account DNS zones on PowerDNS Hostkey servers (pdns/list_zones)') gives a specific verb ('list'), resource ('DNS zones'), and an explicit backend scope that separates it from generic listing tools. It does not, however, explicitly distinguish itself from close siblings such as list_dns_domains, list_dns_subdomains, or get_dns_zone, so the agent must infer the boundary.

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 when-to-use / when-not-to-use guidance and no mention of alternatives, despite four very similar DNS-listing siblings in the toolset. The agent is told only what the tool returns, not the condition that should select it over list_dns_domains or get_dns_zone.

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

list_iso_imagesA
Read-only
Inspect

Список доступных ISO-образов (iso/list_iso). InvAPI требует id сервера (для клиентских ключей); образы подбираются под конфигурацию сервера.

NameRequiredDescriptionDefault
idYesID сервера в InvAPI (обязателен)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds useful context beyond that — that the server id is needed specifically for client keys and that results are filtered by server configuration — but it says nothing about return format, pagination, or rate limits.

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 compact sentences with the core action front-loaded, followed by the key prerequisite. No filler, though the parenthetical endpoint name is marginal value.

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 single-parameter, read-only list tool with no output schema, the description covers the essential prerequisites (required server id, config-based filtering). Nothing critical to correct invocation is missing, though it could note what the returned list contains.

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 coverage is 100%, so the single id parameter is already fully documented in the schema. The description adds a nuance (id required for client keys), but this maps closely to the schema's own note that id is mandatory; baseline 3 applies when the schema does the heavy lifting.

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 (list available ISO images) and even names the underlying API endpoint (iso/list_iso). It is distinguishable from siblings like list_os or get_uploaded_isos by the ISO-image resource, though it does not explicitly contrast with them.

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 implies usage context by stating that InvAPI requires a server id and that images are matched to server configuration, which tells the agent when the tool is applicable. However, it gives no explicit when-to-use versus alternatives (e.g., get_uploaded_isos) and no exclusions.

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

list_osA
Read-only
Inspect

Список операционных систем, доступных для установки на пресет/сервер (os/list). Без instance_id возвращает ОС для всех пресетов. Токен не требуется.

NameRequiredDescriptionDefault
instance_idNoID пресета из list_presets

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description's additional note that no token is required adds value. It also explains the effect of omitting instance_id, which is beyond the schema. No contradictions with annotations.

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?

The description is a single, compact sentence that front-loads the main purpose, then adds the key behavioral detail about instance_id and the auth note. No wasted 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?

Given the tool's simplicity (one optional parameter, no output schema), the description covers the essential aspects: what it lists, the optional filter behavior, and authentication requirement. It does not detail the return format, but that is not critical for a simple list operation.

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 100% (the only parameter is described). The description adds semantic meaning by explaining that omitting instance_id returns OS for all presets, which clarifies the optionality and default behavior. This exceeds the baseline for high coverage.

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 clearly states it lists operating systems available for installation on a preset/server, naming the endpoint (os/list). It distinguishes itself from siblings like list_presets and list_software by specifying the resource (OS) and its purpose (installation), though it does not explicitly name alternatives. This is clear but not a full sibling differentiation.

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 for retrieving OS options before installation, and mentions behavior with/without instance_id. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites beyond the token note. Usage is implied but not explicit.

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

list_post_install_tasksA
Read-only
Inspect

Доступные post-install Ansible-задачи (jenkins/get_tasks) с тегами применимости: gpu, bm, vm, vgpu, default. Без токена — общий список, с токеном — доступные конкретному пользователю.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, so the agent knows this is safe and non-destructive. The description adds the nuance of token-based filtering, which is useful context beyond annotations. However, it does not detail pagination or response format, but that is acceptable for a read-only listing tool.

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?

The description is a single, concise sentence that front-loads the core purpose and immediately explains the key behavioral difference based on token presence. Every word adds value with no 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?

Given that this is a read-only listing tool with no parameters, the description adequately covers what the agent needs: what it returns, the tags, and the token behavior. No output schema is present, but the description implies a list of tasks, which is sufficient for this simple 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?

The tool has zero parameters, so the schema is trivially 100% covered. The description adds semantic meaning about the token's role in filtering results, which is not visible in the schema. This compensates for the lack of parameter details.

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 clearly states the tool's purpose: listing post-install Ansible tasks with applicability tags (gpu, bm, vm, vgpu, default). It also explains the difference between authenticated and unauthenticated access, distinguishing it from sibling tools like run_post_install_task.

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 mentions that without a token the general list is returned, and with a token the list available to the user is returned, but it does not explicitly state when to use this tool versus alternatives or provide any exclusions. It gives context but not explicit when-not-to-use guidance.

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

list_preset_groupsA
Read-only
Inspect

Список групп пресетов для категоризации каталога (presets/groups). Токен не требуется.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so no contradiction. The description adds value by noting that no token is required ('Токен не требуется'), a useful behavioral detail for an API context. This goes beyond the annotation's scope.

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?

The description is a single, efficient sentence. It front-loads the action and resource, then adds the token requirement concisely. No unnecessary words or 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?

Given that this is a simple, parameterless read-only tool with annotations covering its safety, the description is complete enough. It explains what it returns (list of preset groups) and the auth need (none), which is sufficient for an agent to call it correctly.

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?

The tool has zero parameters, so there is nothing to document. A baseline of 4 is appropriate because the description explains the purpose clearly, and with no parameters, no further parameter details are needed.

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 clearly states the tool lists preset groups for catalog categorization, with a specific resource ('presets/groups') and verb ('список'). It is distinguishable from siblings like 'list_presets' and 'search_presets' by the word 'группы' and the explicit resource path.

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 for listing preset groups but does not contrast with alternative tools like 'list_presets' or 'search_presets'. Given the sibling list, an agent might confuse it with those; explicit guidance on when to use this vs them is missing.

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

list_presetsA
Read-only
Inspect

Актуальный список доступных instant-серверов (VM/BM/GPU/vGPU) с ценами в указанной локации. Токен не требуется. Нужен для подбора preset перед заказом.

NameRequiredDescriptionDefault
locationYesЛокация: NL/US/FI/DE/IS/TR/UK/ES/IT/PL/CH

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds a useful behavioral detail: 'Токен не требуется' (token not required). It does not describe pagination or response format, but for a read-only listing tool the annotation covers safety and the token note adds operational context.

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?

The description is two short sentences: the first front-loads the main purpose and scope, the second adds the auth requirement and usage context. There is no fluff or repetition of schema details.

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

Completeness5/5

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

For a one-parameter read-only list tool, the description covers what is returned (available instant-servers with prices), where (specified location), auth requirements, and when to use it. With readOnlyHint and openWorldHint annotations, nothing essential is missing.

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 coverage is 100% and the single parameter 'location' is already documented with its allowed values. The description only repeats 'in the specified location' without adding deeper meaning to the parameter, so the baseline 3 applies.

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 clear verb ('list') and resource ('available instant-servers (VM/BM/GPU/vGPU) with prices in a specified location'), so an agent can understand the core function. It does not explicitly distinguish this from sibling tools such as search_presets or get_preset_pricing, so it falls short of full differentiation.

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 gives explicit usage context: 'Нужен для подбора preset перед заказом' (needed for choosing a preset before ordering). It does not mention exclusions or when to prefer an alternative like list_preset_groups or search_presets, so it is clear context but lacks alternatives.

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

list_rhr_requestsA
Read-only
Inspect

Список заявок на удалённые работы с фильтрацией по локации и статусу (rhr/list).

NameRequiredDescriptionDefault
statusNoФильтр по статусу заявки
locationNoФильтр по локации, например NL

TDQS

A3.6/5.0
Behavior3/5

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

The annotations already indicate a read-only operation (readOnlyHint=true) and an open-world result, and the description does not contradict them. The description adds the filtering behavior and endpoint context, but does not disclose pagination, default scoping, or result shape.

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?

The description is a single, front-loaded sentence that states the resource, purpose, filters, and endpoint with no filler. It is compact and every part 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 simple read-only list with two optional, fully documented parameters, the description and annotations together are largely sufficient. Minor gaps, such as no enumeration of status values or description of the response format, prevent a perfect score, but nothing critical is missing.

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?

The input schema already fully describes both parameters: status and location, including the location example 'NL'. The description only repeats that filtering by location and status is possible, so it does not add meaningful semantics 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 clear retrieval action ('list') on RHR requests and identifies the two filters: location and status, plus the endpoint rhr/list. It is distinct from the create/add/comment/discard RHR sibling tools, though it does not explicitly name them.

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 it is used when you need to view RHR requests, optionally filtered by location or status. It does not explicitly state when to prefer this tool over siblings like create_rhr_request or add_rhr_comment, nor does it include any exclusion rules.

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

list_server_api_keysA
Read-only
Inspect

Список API-ключей, выданных для конкретного сервера (api_keys/list_for_server).

NameRequiredDescriptionDefault
server_idYesID сервера

TDQS

A4/5.0
Behavior3/5

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

Аннотации readOnlyHint=true и openWorldHint=true уже покрывают безопасность и возможную неполноту результата. Описание добавляет привязку к серверу и имя внутреннего endpoint, но не раскрывает формат ответа, сортировку или ограничения. Для простой читающей операции это приемлемо.

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?

Одно ёмкое предложение, в котором ключевая информация о действии и области применения дана сразу. Уточнение endpoint в скобках не перегружает текст.

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?

Инструмент простой: один обязательный параметр, readOnly-аннотации, понятное назначение. Описания достаточно для выбора и вызова. Отсутствие output schema не компенсируется описанием формата ответа, но это не критично для корректного использования.

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 составляет 100%: параметр server_id уже описан как 'ID сервера'. Описание не добавляет дополнительного смысла к параметрам сверх того, что даёт схема.

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?

Описание называет конкретное действие — перечисление API-ключей, выданных для конкретного сервера — и явно указывает область применения. Это отличает инструмент от более общего sibling list_api_keys и делает назначение однозначным.

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?

Из описания ясно, что инструмент следует использовать для получения ключей конкретного сервера. Однако нет явного указания, когда вместо него использовать list_api_keys или другие методы, и не названы альтернативы.

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

list_softwareA
Read-only
Inspect

Список ПО (marketplace-приложений), доступного для автоустановки на сервер (software/list). Токен не требуется.

NameRequiredDescriptionDefault
locationNoЛокация: NL/US/FI/DE/IS/TR/UK/ES/IT/PL/CH
instance_idNoID пресета из list_presets

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already carry the read-only and open-world hints, so the description's disclosure that a token is not required adds some useful behavioral context. There is no contradiction with the annotations. The description, however, doesn't provide extra behavioral info about pagination, filtering, or bounds of the returned list.

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?

A single-sentence description that states the purpose, the endpoint path, and token requirement, with no filler or repetition. Very effective.

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?

The tool has only two optional parameters and the annotations cover the safety profile. However, there is no output schema or any hint in the description about the returned fields, and the schema's param descriptions are the only clue about the optional filters. The description is adequate but minimal, with room to describe the response shape or filtering semantics.

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?

The schema already describes both parameters at 100% coverage, and the description adds nothing to the schema's own descriptions. This matches the baseline of 3.

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?

Description clearly states the resource: list of software/marketplace applications available for auto-installation, and references the wildcard endpoint. It is distinguishable from sibling tools like list_os or list_presets.

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?

Description provides no guidance on when to choose this tool over alternatives. It implies a use case (listing software available for auto-install) but never states it explicitly, nor does it mention exclusions or preferred context.

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

list_stock_serversA
Read-only
Inspect

Список доступных stock-серверов (физические серверы стандартных конфигураций, деплой в течение рабочего дня). Токен не требуется.

NameRequiredDescriptionDefault
groupYesГруппа серверов; GPU-серверы не входят в остальные группы
locationYesЛокация: NL/US/FI/DE/IS/TR/UK/ES/IT/PL/CH

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark the tool as read-only, and the description adds a useful auth disclosure: 'Токен не требуется' (token not required). It does not mention pagination or output shape, but for a simple read-only list this is a meaningful behavioral detail beyond the annotations.

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?

The description is a single front-loaded sentence with a helpful parenthetical and an auth note. There is no filler or repetition of schema information.

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 low-complexity read-only list tool with fully documented parameters and read-only/open-world annotations, the description is largely complete. The main gap is the lack of an explicit return-format statement and no pointer to get_stock_server for single-server details.

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 coverage is 100%: both location and group have descriptions, and group has a full enum. The description itself adds no parameter-level meaning, so it does not go beyond what the schema already provides, earning the baseline score.

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 states a specific verb and resource: 'list available stock servers', and adds qualifying details (physical servers, standard configurations, deployment within a business day). This makes it distinguishable from sibling tools like get_server, get_servers, and get_stock_server.

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?

No when-to-use guidance or alternative routing is provided. The description does not tell an agent when to prefer this over get_stock_server or order_server, so the only implied usage is the tool name itself.

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

list_traffic_plansA
Read-only
Inspect

Доступные тарифные планы трафика для пресета в локации (traffic_plans/list). Токен не требуется.

NameRequiredDescriptionDefault
locationYesЛокация: NL/US/FI/DE/IS/TR/UK/ES/IT/PL/CH
instance_idYesID пресета из list_presets

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds an actionable behavioral detail beyond annotations: 'Токен не требуется' (no token required), plus the exact endpoint. This is useful context for invocation without contradicting the annotations.

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?

A single front-loaded sentence contains the resource, scope, endpoint, and auth requirement. Every word earns its place and no redundant information is present.

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?

Given the simple list-operation shape, complete parameter schema, and read-only annotations, the description is largely sufficient. It omits return-format details, but there is no output schema and the operation is simple enough that this is a minor gap rather than a blocking one.

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 100%, so the schema already documents both parameters. The description only reinforces the mapping of 'preset' to instance_id and 'location' to location, adding no new semantic details beyond the 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 identifies a specific resource ('traffic tariff plans') scoped by preset and location, and includes the endpoint 'traffic_plans/list', which makes the list operation explicit. This clearly separates it from sibling tools like list_presets or s3_list_plans.

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 states the intended context: traffic plans for a preset in a location. However, it gives no explicit guidance on when to choose this tool over siblings such as get_preset_pricing or s3_list_plans, so usage is implied rather than directed.

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

logoutA
Idempotent
Inspect

Завершить текущую API-сессию (auth/logout): сессионный токен удаляется из InvAPI. При следующем вызове клиент автоматически выполнит повторный вход по API-ключу.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

The description adds meaningful behavioral detail beyond the annotations: the session token is removed from InvAPI, and the client automatically re-authenticates via API key on the next call. This complements the idempotentHint and destructiveHint annotations without contradicting them.

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?

Two concise sentences fully describe the operation and its consequences. The core action is front-loaded, and every clause adds useful information.

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

Completeness5/5

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

For a zero-parameter, idempotent session-termination tool, the description is complete: it explains the immediate effect, the server-side change, and the re-authentication behavior. No additional schema or return-value detail is necessary for correct invocation.

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?

The input schema is empty, and there are zero parameters to document, so the baseline of 4 applies. The description adds no parameter-specific semantics because none are needed.

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 states a specific verb ('Завершить') and resource ('текущую API-сессию'), explicitly naming the auth/logout endpoint. This clearly distinguishes it from related account and API-key tools among the siblings.

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 when to use the tool: to end the current API session and invalidate its token. However, it does not explicitly mention alternatives, exclusions, or conditions such as what happens if no session is active.

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

mass_payCInspect

Создать групповой инвойс для оплаты нескольких инвойсов разом (whmcs/mass_pay). ДЕНЬГИ.

NameRequiredDescriptionDefault
confirmYesMust be true to run the operation.
invoicesYesМассив номеров инвойсов

TDQS

C2.9/5.0
Behavior3/5

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

The annotations include destructiveHint=false, readOnlyHint=false, and openWorldHint=true. The description does not contradict annotations. However, it adds minimal behavioral context beyond the 'ДЕНЬГИ' alarm, which is not informative. For a payment operation, the description should disclose that it initiates a financial transaction and likely requires confirmation, but the confirm parameter is in the schema. The description adds little value beyond annotations.

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

Conciseness3/5

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

The description is extremely short, but the 'ДЕНЬГИ' is a cryptic extra element that doesn't add clarity. It is arguably concise, but the all-caps 'ДЕНЬГИ' could be noise. The core information is front-loaded, but the lack of useful context makes it less effective.

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

Completeness2/5

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

For a payment operation with no output schema and only two parameters, the description is insufficient. It doesn't explain what will happen after execution (e.g., whether it creates an invoice, charges money, or just groups invoices). It also doesn't mention any side effects (e.g., emails sent to clients). The absence of output schema means the description should clarify expected outcomes, but it doesn't.

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 100%, so the schema already documents both parameters. The description does not add any parameter-specific meaning beyond what the schema provides—it doesn't explain the format of invoice numbers or the meaning of the confirm flag beyond the schema's 'Must be true to run the operation.' Since coverage is high, baseline 3 is appropriate.

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 clearly states the tool creates a group invoice to pay multiple invoices at once (whmcs/mass_pay), which is a specific verb and resource. Although it doesn't explicitly differentiate from siblings, the sibling list is diverse and no direct alternative exists, so the purpose is clear enough.

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?

The description does not provide any guidance on when to use this tool versus alternatives. There is no mention of prerequisites, such as having outstanding invoices, or context about when group payment is appropriate. It also doesn't mention any exclusions or alternatives, leaving the agent to infer usage.

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

mount_isoAInspect

Смонтировать ISO-образ на сервер (iso/mount_iso). Асинхронная операция — вернётся callback-ключ для check_task. InvAPI ждёт поле iso (имя или id). Можно передать iso, либо алиасы name / iso_id.

NameRequiredDescriptionDefault
idYesID сервера
isoNoИмя или id ISO (поле InvAPI `iso`)
nameNoАлиас: имя / iso_name → iso
iso_idNoАлиас: ID из list_iso_images → iso
confirmYesMust be true to run the operation.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the mutation profile is covered. The description adds important behavior beyond the annotations: the operation is asynchronous and returns a callback key for check_task. It does not mention permissions, required server state, or side effects, so it is not complete.

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?

The description is three compact sentences, front-loaded with the action, then the async return behavior, then parameter shape. Every sentence contributes to invoking the tool correctly, 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?

Given annotations and a fully described five-parameter schema, the main missing behavioral detail is the async return mechanism, which the description supplies via the callback key for check_task. It does not mention that confirm must be true or what server/ISO state is required, but confirm is covered by the schema.

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 100%, so the schema already documents id, iso, name, iso_id, and confirm. The description repeats that InvAPI expects the `iso` field and that name/iso_id are aliases, which is mildly useful but mostly restates the schema rather than adding new semantics.

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 the specific action "Смонтировать ISO-образ на сервер" and endpoint "iso/mount_iso", clearly distinguishing it by verb and resource from siblings like unmount_iso, delete_iso_image, and list_iso_images. It does not explicitly name those alternatives, so it is clear but not fully differentiated.

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 notes the operation is asynchronous and says a callback key is returned for check_task, which gives useful follow-up guidance. However, it does not say when to choose mount_iso over unmount_iso or over listing/uploading ISO images, nor does it state prerequisites, so usage guidance is mostly implied.

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

order_serverAInspect

Заказ instant- или stock-сервера (eq/order_instance). ВАЖНО: заказ списывает средства с кредитного баланса или выставляет инвойс. По умолчанию работает в режиме dry_run=true — только проверяет доступность пресета и ОС и возвращает сводку без создания заказа. Для реального заказа передайте dry_run=false и confirm=true после явного согласия пользователя на стоимость. Деплой занимает 10–30 минут, статус — через check_task.

NameRequiredDescriptionDefault
os_idYesID ОС из list_os
own_osNo1 — не устанавливать ОС (ручная установка)
presetYesID или имя пресета из list_presets (например, 108 или vm.pico)
confirmNoОбязателен (=true) для реального заказа
dry_runNoПо умолчанию true: проверка параметров без создания заказа и списания средств
soft_idNoID ПО из list_software (опционально)
ssh_keyNoПубличный SSH-ключ для root
hostnameNoИмя хоста; по умолчанию генерируется из локации и ID
promocodeNoПромокод на скидку
root_passYesПароль root: мин. 8 символов, заглавная буква, цифра, спецсимвол (кроме @ и #)
traffic_planYesID трафик-плана из list_traffic_plans
deploy_notifyNoУведомление о завершении деплоя на email (рекомендуется true)
deploy_periodYesПериод оплаты
location_nameYesЛокация: NL/US/FI/DE/IS/TR/UK/ES/IT/PL/CH
post_install_scriptNoСкрипт, выполняемый после деплоя
post_install_callbackNoURL callback после деплоя

TDQS

A4.9/5.0
Behavior5/5

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

While annotations indicate readOnlyHint=false and openWorldHint=true, the description goes further by warning that funds are debited or an invoice is issued, explaining that dry_run only verifies availability without charging, and stating that deployment takes 10–30 minutes with status via check_task. This is exactly the behavioral context an agent needs.

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?

Three tightly written sentences front-load the financial warning and default mode, then give the real-order recipe and status follow-up. Every sentence earns its place; there is no filler or repetition.

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

Completeness5/5

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

For a 16-parameter, money-affecting tool with no output schema, the description is remarkably complete: it covers the dangerous default, the safe dry-run path, the confirmation requirement, deployment duration, and post-order status lookup. Required and optional parameters are already fully documented in the schema.

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 100%, so the baseline is 3, but the description adds meaningful operational nuance around dry_run and confirm: it frames confirm=true as requiring explicit user consent to the price, and explains the consequence of omitting it. This supplements the schema's existing parameter descriptions with the cost-safety context.

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 and resource: 'Заказ instant- или stock-сервера (eq/order_instance)' — ordering a server. This clearly distinguishes it from sibling tools that list, get, or manage servers, and there is no ambiguity about what action the tool performs.

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

Usage Guidelines5/5

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

The description explicitly explains the default dry_run mode, when to switch to a real order (dry_run=false and confirm=true), and requires explicit user consent to cost. It also directs the agent to check_task for deployment status, leaving no doubt about the correct invocation flow.

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

port_offA
Destructive
Inspect

Выключить сетевой порт сервера (net/port_off). ДЕСТРУКТИВНО: сервер потеряет сетевую связность по этому интерфейсу.

NameRequiredDescriptionDefault
idYesID сервера
portYesФизический порт свитча из get_network_status
confirmYesMust be true to run the operation.

TDQS

A3.6/5.0
Behavior4/5

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

The description explicitly warns that the server will lose network connectivity on the interface, adding meaningful context beyond the destructiveHint annotation. It does not contradict the annotations and helps the agent anticipate the operational impact.

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?

The description is a single, front-loaded sentence that states the action and the key destructive consequence. Every word earns its place; there is no redundant or irrelevant content.

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 simple destructive toggle operation with a confirm parameter, the description and schema together are sufficient. It could mention reversibility via port_on, but that is not essential for correctly invoking this tool.

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?

The input schema already describes all three parameters at 100% coverage, including the confirm flag and the port source. The description does not add additional parameter-level meaning, so the baseline score of 3 applies.

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 clearly states the action ('turn off the server network port') and identifies the resource ('server network port'). It is specific enough to be distinguished from the sibling port_on by its opposite operation, though it does not explicitly name the sibling.

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?

No guidance is provided on when to use this tool versus alternatives like port_on, nor on prerequisites such as checking current connectivity via get_network_status. The destructive effect is stated, but the intended use context is left implicit.

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

port_onAInspect

Включить сетевой порт сервера (net/port_on).

NameRequiredDescriptionDefault
idYesID сервера
portYesФизический порт свитча из get_network_status
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate this is a mutating operation (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds the action of enabling but does not disclose side effects, failure modes, or whether the port must be physically present. Since annotations cover the basic safety profile, the description adds minimal behavioral context beyond the obvious.

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?

A single sentence that is concise and directly states the action. There is no unnecessary verbiage, and the parenthetical 'net/port_on' provides a clear reference to the underlying API method.

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 simple enable action with fully documented parameters and no output schema, the description is largely complete. It could mention that the operation requires confirm=true, but that is already in the schema. The lack of any behavioral warnings or return info is acceptable given the tool's simplicity and the presence of sibling tools that cover related actions.

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 100%, so all parameters (id, port, confirm) are already documented with clear descriptions. The tool description adds no extra meaning to parameters, but since the schema carries the burden, a baseline of 3 is appropriate.

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 uses a specific verb ('Включить' - enable) and a clear resource (network port of server). It distinguishes itself from the sibling tool port_off, which presumably disables, so an agent can tell them apart without ambiguity.

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 purpose implies when to use it (to enable a port) and the existence of port_off as the complementary action. However, there is no explicit statement about when not to use it or alternatives beyond the name. The description is adequate but not explicit about prerequisites like confirm=true, which is already in the schema.

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

power_offA
Destructive
Inspect

Выключить сервер (eq/off). ДЕСТРУКТИВНО: прерывает работу всех сервисов на сервере. Требует confirm=true. Асинхронная операция: в ответе будет callback-ключ для check_task.

NameRequiredDescriptionDefault
idYesID сервера
confirmYesОбязательное подтверждение операции. Без confirm=true вызов отклоняется.

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the destructiveHint annotation, the description discloses the concrete consequence: it interrupts all services on the server. It also adds the async callback-key behavior for check_task, which annotations cannot express. This is substantial and accurate behavioral context.

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?

The description is compact, front-loaded with the action and warning, and each sentence carries useful information. 'eq/off' is slightly opaque, but it does not bloat the definition.

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

Completeness5/5

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

For a two-parameter tool with no output schema, the description is complete: it explains what the tool does, the destructive impact, the required confirmation, and the asynchronous response pattern. An agent has everything needed to invoke it correctly.

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?

The input schema already covers both parameters completely (100% coverage), including the fact that confirm=true is mandatory and that the call is rejected without it. The description merely restates the confirm requirement and adds no new parameter-level meaning.

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 the specific action and resource ('Выключить сервер') and immediately distinguishes itself from sibling operations like power_on and reboot_server through the destructive label. The parenthetical 'eq/off' is mildly cryptic, but the core verb-resource pair is unmistakable.

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 states a hard precondition (confirm=true) and notes the operation is asynchronous, which helps an agent know how to invoke and handle it. However, it does not explicitly mention alternatives such as power_on or reboot_server or specify when one should be chosen instead, so usage guidance is mostly implied.

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

power_onA
Idempotent
Inspect

Включить сервер (eq/on). Асинхронная операция: в ответе будет callback-ключ для check_task.

NameRequiredDescriptionDefault
idYesID сервера
confirmYesОбязательное подтверждение операции. Без confirm=true вызов отклоняется.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish non-read-only, non-destructive, idempotent behavior. The description adds meaningful behavioral context beyond annotations by stating that this is an asynchronous operation and that the response will contain a callback key for check_task. This is valuable for the agent's invocation flow.

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?

The description is two short sentences with no filler. The core action is front-loaded, and the critical async behavior is stated immediately after, making it easy for an agent to parse quickly.

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

Completeness5/5

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

For a simple two-parameter tool with full schema coverage and relevant annotations, the description provides the essential operational detail: async execution and a callback key for check_task. No critical missing information prevents correct invocation.

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 100%, so both id and confirm are already documented in the schema. The description does not add additional parameter meaning, so the baseline score of 3 is appropriate.

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 states a specific action and resource: 'Включить сервер' (turn on the server), which clearly distinguishes it from siblings like power_off and reboot_server. The async note further clarifies what kind of call this is, making the purpose unmistakable.

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 context is clear: use this tool when you want to power on a server. It does not explicitly name alternatives or exclusions, but the verb and resource make the intended use obvious, so this is clear context without exclusions rather than merely implied usage.

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

reboot_serverA
Destructive
Inspect

Перезагрузить сервер (eq/reboot). Прерывает работу сервисов на время перезагрузки. Требует confirm=true. Асинхронная операция: в ответе будет callback-ключ для check_task.

NameRequiredDescriptionDefault
idYesID сервера
confirmYesОбязательное подтверждение операции. Без confirm=true вызов отклоняется.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description doesn't need to restate that. It adds valuable behavioral context: it interrupts services during reboot, requires confirm=true, and is asynchronous with a callback-key response. This goes beyond the annotations and helps the agent understand side effects and response handling.

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?

Three short sentences, each earning its place: what it does, side effect, and required confirmation plus async behavior. No fluff, front-loaded with the core action.

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 2-param tool with full schema coverage and no output schema, the description covers the essential operational context: side effects, confirmation requirement, and async response pattern. It doesn't describe the exact callback-key format, but that's a minor gap given the check_task sibling exists and the description points to it.

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 100%, so the schema already documents both parameters (id and confirm). The description adds the requirement that confirm must be true, which reinforces the schema's note, but doesn't add new meaning beyond what the schema provides. Baseline 3 is appropriate.

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 clearly states the action ('Перезагрузить сервер' – reboot server) and the resource (server), and distinguishes it from sibling tools like power_on/power_off and request_rh_reboot by specifying it's an eq/reboot operation. The verb is specific and the resource is unambiguous.

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 provides clear context: it requires confirm=true and is asynchronous, which tells the agent when and how to use it. It doesn't explicitly name alternatives or exclusions, but the context is sufficient for an agent to know this is the reboot operation, distinct from power on/off or remote-hand reboot tools.

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

reinstall_serverA
Destructive
Inspect

Переустановка ОС на существующем сервере (упрощённый путь через eq/order_instance с id). ДЕСТРУКТИВНО: все данные на дисках будут удалены. Требуется HOSTKEY_ALLOW_DESTRUCTIVE=1 в окружении сервера, confirm=true и повторный ввод текущего hostname сервера. Асинхронная операция: статус — через check_task.

NameRequiredDescriptionDefault
idYesID сервера
os_idYesID новой ОС из list_os (0 + own_os=1 — без установки ОС)
own_osNo1 — не устанавливать ОС
confirmYesОбязателен (=true) для запуска переустановки
soft_idNoID ПО из list_software
ssh_keyNoПубличный SSH-ключ для root
hostnameYesТекущий hostname сервера — служит подтверждением, что сервер выбран верно
root_passYesНовый пароль root
deploy_notifyNo
post_install_scriptNo

TDQS

A4.1/5.0
Behavior5/5

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

Although annotations already declare destructiveHint=true, the description adds substantial behavioral context beyond that: 'все данные на дисках будут удалены' specifies exactly what gets destroyed, it names the required environment variable guard, and it discloses the operation is asynchronous with status via check_task. This is precisely the kind of safety and execution-context detail the annotation alone does not provide.

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 compact — three clauses covering purpose, destructive warning, and execution requirements, with the most critical safety information front-loaded. The cryptic 'eq/order_instance' reference consumes space without adding agent-actionable meaning, but overall the text is efficient.

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 destructive, asynchronous mutation with 10 parameters and no output schema, the description covers the essential operational context: data destruction scope, required flags, hostname verification, and how to track completion. The main gap is not naming the sibling alternative (create_reinstall_task) explicitly, leaving the when-vs-alternative decision to the agent.

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 80%, so the input schema already documents the parameters well, including the confirm requirement and the special os_id=0 + own_os=1 meaning. The description adds no additional parameter meaning that the schema lacks, so the baseline of 3 is appropriate.

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: 'Переустановка ОС на существующем сервере' (reinstall OS on an existing server), which clearly distinguishes it from read-only list/status tools and power-control siblings. The parenthetical 'упрощённый путь через eq/order_instance' (simplified path via order_instance) additionally hints at a distinct mechanism from the create_reinstall_task sibling. An agent can tell what this tool does 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 Guidelines3/5

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

The description lists concrete prerequisites for invocation (HOSTKEY_ALLOW_DESTRUCTIVE=1, confirm=true, re-entering the current hostname), which gates when the call is permitted. However, it never explicitly routes the agent to an alternative (e.g., create_reinstall_task for the non-simplified reinstall path) or states when to prefer one over the other, so the 'simplified path' hint remains implied rather than actionable.

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

remove_ipmi_userBInspect

Удалить временного IPMI-пользователя (eq/remove_ipmi_user).

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, signaling a mutating operation, and the schema requires confirm=true for execution. The description adds only the 'temporary' scope and does not describe side effects, reversibility, or what happens after deletion, but the annotation coverage lowers the burden.

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 a single concise sentence with the action and resource front-loaded. However, the parenthetical '(eq/remove_ipmi_user)' is redundant with the tool name and does not earn its place.

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?

For a simple two-parameter deletion tool, the schema covers the required inputs, and annotations convey the mutating behavior. Still, the description lacks any usage context, failure modes, or confirmation semantics beyond the schema, making it minimally adequate rather than complete.

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 100%, with both id and confirm already documented. The description adds no additional parameter-level meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

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 uses a specific verb ('Удалить' – delete/remove) and a clear resource ('временного IPMI-пользователя' – temporary IPMI user). It clearly distinguishes this tool from siblings like add_ipmi_user and reset_ipmi.

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?

No guidance is provided on when to use this tool versus alternatives such as add_ipmi_user or reset_ipmi. The word 'temporary' implies a use case, but there is no explicit context, prerequisites, or exclusions.

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

remove_snapshotA
Destructive
Inspect

Удалить снапшот (vm/remove_snapshot). ДЕСТРУКТИВНО: снапшот удаляется безвозвратно. Удаление возможно только на выключенной ВМ.

NameRequiredDescriptionDefault
idYesID виртуальной машины
nameYesИмя снапшота
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior4/5

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

Annotations already signal destructiveHint=true and readOnlyHint=false. The description adds that the snapshot is deleted irreversibly and that the VM must be powered off, which is useful behavioral context beyond the annotations. No contradiction exists.

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?

The description is two short sentences with no wasted words. The action is front-loaded, followed immediately by the critical destructive warning and the precondition, making it easy to scan and act on.

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 simple destructive operation with three fully documented parameters, the description is adequate: it names the resource, explains irreversibility, and gives the key VM-state requirement. It does not describe return values or failure cases, but those are not necessary given the schema and annotations.

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?

The input schema already covers 100% of parameters with clear descriptions: id (VM ID), name (snapshot name), and confirm (must be true). The description adds no parameter-level semantics, so the baseline score of 3 applies.

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 clearly states the action as deleting a snapshot and labels it destructive, which makes the tool's purpose unambiguous and distinguishes it from create_snapshot, restore_snapshot, and get_snapshots. However, it does not explicitly name or contrast sibling snapshot tools, so it misses the top score for explicit differentiation.

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 provides a clear usage precondition: deletion is only possible on a powered-off VM. It also warns that deletion is irreversible. It does not mention alternatives or exclusions, but the prerequisite and warning give sufficient guidance for an agent.

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

remove_static_natCInspect

Удалить статический DNAT до IPMI сервера (nat/remove_static_nat).

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

C2.7/5.0
Behavior1/5

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

The description says 'Удалить' (remove/delete), which indicates a destructive operation, while annotations set destructiveHint=false. This is a direct contradiction. The description also does not disclose the operational impact of removing the DNAT rule.

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 a single short, front-loaded sentence with no filler. The parenthesized endpoint 'nat/remove_static_nat' is slightly redundant with the tool name but does not significantly hurt clarity.

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

Completeness2/5

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

The tool call itself is minimally documented, but the contradictory destructive annotation and lack of usage context leave an agent uncertain about side effects and when to choose this over sibling NAT tools. There is also no output schema to clarify the expected response.

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 100%, with both id and confirm documented. The description adds no meaningful parameter detail beyond naming the target resource, so the baseline of 3 applies.

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 uses a specific verb 'Удалить' (remove) and identifies a clear resource: the static DNAT to an IPMI server. This is unambiguous, but it does not explicitly differentiate the tool from similar siblings like clear_static_nat or drop_nat.

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 about when to use this tool versus add_static_nat, clear_static_nat, or drop_nat. No prerequisites, conditions, or exclusion criteria are provided; the description only states the operation itself.

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

request_cancellationA
Destructive
Inspect

Запросить отмену услуги (whmcs/request_cancellation). ДЕСТРУКТИВНО: cancellation_type=1 — немедленная отмена с частичным возвратом (если возможно), 0 — отмена в конце биллинг-периода. Требует HOSTKEY_ALLOW_DESTRUCTIVE=1.

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.
cancellation_typeYes1 — немедленно (частичный возврат при возможности), 0 — в конце биллинг-периода
terminate_reason_customNoПричина отмены

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, and the description adds crucial context: immediate cancellation may trigger a partial refund, and the operation requires an environment flag. This goes beyond the annotation by explaining the consequence and prerequisite.

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?

Two dense sentences with no filler. The destructive warning is front-loaded, and the cancellation_type semantics are packed efficiently.

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 destructive mutation with no output schema, the description covers the key behavioral aspects: what happens with each type, the refund possibility, and the required environment flag. It doesn't describe the response format, but that's a minor gap for a request-type tool.

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 100%, so the schema already documents all parameters. The description adds the refund consequence for cancellation_type=1 and the HOSTKEY_ALLOW_DESTRUCTIVE requirement, but doesn't add meaning beyond the schema for id, confirm, or terminate_reason_custom. Baseline 3 is appropriate.

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 clearly states the action ('Запросить отмену услуги') and the resource (WHMCS service cancellation), and distinguishes the two cancellation modes. It also names the WHMCS endpoint, which helps identify the tool among many siblings.

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 explains when to use each cancellation_type (immediate vs end-of-billing-period) and warns that destructive operations require HOSTKEY_ALLOW_DESTRUCTIVE=1. It doesn't explicitly name alternative tools, but the destructive warning and mode distinction provide clear usage context.

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

request_rh_checkAInspect

Заявка Remote Hands: проверить сервер и загрузить его в ОС (jira/request_check). Создаёт тикет Remote Hands для дежурной смены дата-центра; статус и переписка — в тикете (ссылка придёт на email).

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

A3.6/5.0
Behavior4/5

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

The description discloses that the operation creates a ticket for the data center duty shift, and that status and correspondence are tracked in the ticket with a link sent to email. This adds useful behavioral context beyond the annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true), which only indicate a write-side effect. It does not contradict the annotations.

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?

The description is two concise sentences with no filler. It front-loads the core action ('проверить сервер и загрузить его в ОС') and immediately states the consequence (ticket creation). Every word earns its place, making it highly efficient.

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 tool with only two parameters and no output schema, the description covers the primary outcome (ticket creation) and how to monitor progress (status and correspondence in the ticket, email link). It doesn't mention prerequisites or asynchronous behavior, but for a low-complexity operation this is adequate.

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?

Both parameters already have clear descriptions in the schema (id = server ID, confirm = must be true to run), giving 100% schema coverage. The description adds no additional parameter semantics, so it provides no value beyond the structured schema. Baseline of 3 is appropriate for full schema coverage.

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 action: 'проверить сервер и загрузить его в ОС' (check the server and boot it into OS), and clarifies it creates a Remote Hands ticket. This distinguishes it from sibling tools like request_rh_power_on, request_rh_reboot, and request_rh_pxe_boot, which have different actions. However, it doesn't explicitly define what 'check' entails, leaving some ambiguity.

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?

The description provides no guidance on when to use this tool versus the many sibling RH request tools (e.g., request_rh_power_on, request_rh_kvm, create_rhr_request). There is no mention of alternatives, conditions, or exclusions. The agent must infer usage solely from the action described, without explicit routing.

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

request_rh_kvmAInspect

Заявка Remote Hands: подключить IP KVM к серверу (jira/request_kvm). Создаёт тикет Remote Hands для дежурной смены дата-центра; статус и переписка — в тикете (ссылка придёт на email).

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds meaningful context beyond that: it creates an external ticket for the datacenter duty shift, and status/correspondence live in the ticket with the link delivered by email. This discloses the asynchronous, external side-effect behavior well.

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?

Two short sentences, front-loaded with the operation name and action, with no filler. Every sentence contributes either to what the tool does or what outcome the caller should expect.

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 no output schema, the description compensates by explaining the outcome: a ticket is created, status is tracked in the ticket, and a link arrives by email. It is complete enough for an agent to invoke the operation and manage expectations about follow-up.

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 100%, so the baseline is 3. The description does not add material meaning beyond the schema: it mentions the server target but does not elaborate on id or the confirm flag, leaving parameter semantics to the 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 states a specific action: 'подключить IP KVM к серверу' (connect IP KVM to the server) and clarifies it creates a Remote Hands ticket. This distinguishes it clearly from sibling request_rh_power_on/power_off/reboot/pxe_boot/check tools.

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 context is clear: use this tool when a Remote Hands request is needed to physically connect an IP KVM to a server. It does not explicitly name alternatives or exclusions, but the described operation is self-contained and distinct enough to guide selection.

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

request_rh_power_offA
Destructive
Inspect

Заявка Remote Hands: выключить сервер вручную (jira/request_poff). ДЕСТРУКТИВНО для работающих сервисов. Создаёт тикет Remote Hands для дежурной смены дата-центра; статус и переписка — в тикете (ссылка придёт на email).

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description reinforces that while adding new details: it creates a Remote Hands ticket, status and conversation live in the ticket, and a link arrives by email. This is valuable non-obvious behavior beyond the structured fields.

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?

Two sentences carry purpose, warning, and outcome with no filler. The destructive warning is front-loaded before the ticket-lifecycle detail.

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

Completeness5/5

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

For a two-parameter tool with full schema coverage and no output schema, the description covers what the tool does, why it is dangerous, and what side effects to expect (ticket, email link). No critical calling information is missing.

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?

The schema already describes both parameters at 100% coverage, so the baseline is 3. The destructive warning indirectly justifies the confirm flag, but the description does not add explicit meaning beyond the schema for either id or confirm.

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 the verb, the resource (Remote Hands ticket to manually power off a server), and the effect, which separates it from sibling tools like request_rh_power_on or request_rh_reboot. It also identifies no ambiguity about what the action produces.

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 communicates clear context — a manual datacenter shutdown and a destructive warning — so an agent can tell when it might be relevant. However, it does not explicitly state when to prefer this over alternatives such as power_off or request_rh_reboot, nor when not to use it.

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

request_rh_power_onAInspect

Заявка Remote Hands: включить сервер вручную (jira/request_pon). Создаёт тикет Remote Hands для дежурной смены дата-центра; статус и переписка — в тикете (ссылка придёт на email).

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate a non-read-only, non-destructive operation, and the description adds meaningful context: it creates a Remote Hands ticket, involves the data-center duty shift, and tracks status/correspondence in the ticket with a link sent by email. This goes beyond the annotations and clarifies the side effect and follow-up channel.

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?

Two tight sentences with no filler. The first sentence names the operation and the second explains the resulting ticket and follow-up, so every sentence 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 simple two-parameter action with full schema coverage and meaningful annotations, the description is largely complete. It explains what will happen, where status will be visible, and how the user will be notified. It could mention the immediate API response shape, but that is a minor gap for this tool.

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?

The input schema already documents both parameters fully: id is the server ID and confirm must be true. The description adds only that the target is a server, which mostly restates the schema. With 100% schema coverage, a baseline score of 3 is appropriate.

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 states a specific action ('включить сервер вручную' / manually power on a server) performed via a Remote Hands ticket, which clearly differentiates it from sibling tools like request_rh_power_off, request_rh_reboot, and power_on. It also names the internal implementation (jira/request_pon), leaving no ambiguity about what the tool does.

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 makes the intended context clear: this is a Remote Hands request for a duty shift to manually power on a server. However, it does not explicitly state when to prefer this tool over power_on or the other request_rh_* siblings, and it offers no exclusions or alternative-routing guidance.

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

request_rh_pxe_bootAInspect

Заявка Remote Hands: загрузить сервер по PXE (jira/request_PXEboot). Нужна при переустановке ОС на серверах без модуля удалённого управления. Создаёт тикет Remote Hands для дежурной смены дата-центра; статус и переписка — в тикете (ссылка придёт на email).

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

A4.3/5.0
Behavior4/5

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

The annotations only indicate readOnlyHint=false and destructiveHint=false; the description adds meaningful behavior: it creates a Remote Hands ticket, routes it to the data-center duty shift, and explains that status and correspondence live in the ticket with a link sent to email. This goes beyond the annotations without contradicting them.

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?

The description is three short, dense sentences. It front-loads the operation and purpose, then states when it is needed and what the user gets back. No filler or redundant phrasing.

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

Completeness5/5

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

For a two-parameter tool with no output schema, the description fully covers what happens, why it is used, and how to track the result. It also implicitly explains that the tool does not directly perform the boot but creates a human-executed ticket, which is essential context.

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 100%, and the schema already documents 'id' as server ID and 'confirm' as a required boolean. The description does not add new parameter-level details, so it provides no extra semantic value beyond the baseline.

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: 'загрузить сервер по PXE' (boot server via PXE) via a Remote Hands request. It clearly distinguishes this from sibling request_rh_* tools by specifying the PXE-boot action and ticket-creation behavior.

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 gives a concrete use context: 'Нужна при переустановке ОС на серверах без модуля удалённого управления.' This tells an agent when to use the tool, though it does not explicitly enumerate alternatives or state when not to use it.

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

request_rh_rebootB
Destructive
Inspect

Заявка Remote Hands: перезагрузить сервер вручную (jira/request_reboot). Создаёт тикет Remote Hands для дежурной смены дата-центра; статус и переписка — в тикете (ссылка придёт на email).

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, so the safety profile is known. The description adds useful context: it creates a ticket for the data center duty shift, and status/correspondence will be in the ticket with a link sent to email. This clarifies that the action is not immediate and is asynchronous. However, it does not disclose any side effects beyond the ticket creation, such as potential downtime or scheduling delays. It adds some value beyond annotations but not extensive.

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 two sentences, front-loaded with the main purpose and followed by a brief explanation of the outcome. There is no fluff; every sentence earns its place. It could be slightly more concise (e.g., removing the parenthetical 'jira/request_reboot' which may be an internal reference), but it is overall efficient and well-structured.

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?

For a tool with two required parameters and no output schema, the description adequately covers what the tool does and where results will be reported (ticket and email). It lacks explicit mention of prerequisites (e.g., server existence) or the expected time frame for the manual reboot, but these are not critical for the agent to invoke it correctly. The description is sufficient for a simple ticket-creation action, though it could note that the reboot is manual and not guaranteed to be immediate.

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?

The input schema provides 100% coverage for both parameters: 'id' is described as 'ID сервера' and 'confirm' as 'Must be true to run the operation.' The description adds no additional parameter semantics; it does not explain the purpose of 'confirm' beyond what the schema already states, nor does it clarify the expected id format. Since schema coverage is full, the baseline of 3 is appropriate.

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 clearly states the tool's purpose: it creates a Remote Hands ticket to manually reboot a server. The verb 'создаёт тикет' (creates a ticket) and the resource 'Remote Hands' are specific. It distinguishes itself from other RH tools (power on/off, etc.) by mentioning 'перезагрузить' (reboot), but it does not explicitly contrast with the sibling 'reboot_server' which likely does a software reboot. Still, the purpose is unambiguous and actionable.

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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention that this is for physical/manual reboots when remote reboot is unavailable, nor does it compare to 'reboot_server' or other RH tools like 'request_rh_power_on'. The agent is left to infer usage context from the tool name and the 'manual' hint, but explicit when-to-use guidance is absent.

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

request_sales_assistanceAInspect

Тикет в отдел продаж (jira/request_assistance): отмена или перенос услуги и подобные запросы. Опишите детали в message.

NameRequiredDescriptionDefault
idNoID сервера, если запрос касается сервера
confirmYesMust be true to run the operation.
messageYesДетали запроса: что отменить/перенести и почему
subjectNoТема запроса

TDQS

A3.6/5.0
Behavior3/5

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

Annotations convey that the operation is not read-only and is open-world. The description adds that this creates a Jira/request_assistance ticket and that details belong in 'message', but it does not disclose side effects or whether the request is immediately acted upon.

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 short, front-loaded, and contains no filler. The first part states the tool's purpose and the second gives a clear instruction about the main 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?

For a simple ticket-submission tool, the description covers the core scenario and message requirement. However, it does not mention the required 'confirm' flag, expected behavior after submission, or what response the caller should expect.

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?

The input schema already describes all four parameters, so the baseline is 3. The description only reinforces that details should go in 'message' and adds no new parameter 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 clearly identifies the tool as a ticket to the sales department for cancellations, service transfers, and similar requests. It names the concrete purpose and resource, although it does not explicitly distinguish itself from sibling request_cancellation.

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 gives explicit context for when to use the tool: 'отмена или перенос услуги и подобные запросы'. It does not mention exclusions or alternatives, 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.

reset_billing_passwordAInspect

Сбросить пароль аккаунта биллинга (whmcs/reset_password): на указанный email придёт ссылка для сброса. Email должен совпадать с email аккаунта.

NameRequiredDescriptionDefault
emailYesEmail аккаунта
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate this is not read-only and not destructive. The description adds useful behavioral context: an email link will be sent and the email must match the account email. It does not mention prerequisites, rate limits, or what happens after the link is sent, but the additional context is sufficient for a simple reset 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?

Two concise sentences with no filler. The core action and the key constraint are stated immediately, making the description easy to parse and act on.

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 simple two-parameter action with full schema coverage and clear annotations, the description covers the essential operational detail: what happens (link sent) and the key precondition (email must match). No output schema exists, but explaining return values is not necessary for this kind of operation.

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 coverage is 100%, so the schema already documents both parameters. The description adds a meaningful clarification that the email must match the account email, which strengthens the 'email' semantics beyond the schema's brief 'Email аккаунта'. The 'confirm' parameter is left to the schema, which is acceptable given full coverage.

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 states a specific verb and resource ('reset billing account password') and explains the mechanism: a reset link is sent to the specified email. It is unambiguous and easily distinguishable from sibling tools.

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 clearly indicates this tool is for resetting a billing account password and sets an important condition: the email must match the account email. It gives clear context, though it does not explicitly enumerate when not to use it or name alternatives.

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

reset_ipmiAInspect

Перезагрузить IPMI-модуль сервера (eq/unit_reset). Применять, если IPMI не отвечает.

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate this is not read-only and not destructive. The description adds a clear trigger condition and the internal operation name, but does not disclose side effects such as temporary unavailability of the IPMI module during reset. No contradiction with annotations.

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?

The description is a single front-loaded sentence that states the action, internal operation, and usage condition. There is no filler or redundant text.

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 simple two-parameter tool with full schema coverage and a clear trigger condition, the description is nearly complete. It could briefly mention expected side effects on IPMI availability, but the core invocation path is fully specified.

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 100%: both id and confirm are documented in the input schema, including the requirement that confirm must be true. The description adds no additional parameter-level detail, so the baseline of 3 applies.

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 states a specific operation: reboot the server's IPMI module, including the internal command code (eq/unit_reset). It clearly distinguishes this from server-level reboot tools in the sibling list such as reboot_server and request_rh_reboot.

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 explicitly says when to use the tool: when IPMI is not responding. It does not list when not to use it or name alternative tools, but for a targeted IPMI reset operation this condition is useful and clear.

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

restore_snapshotA
Destructive
Inspect

Восстановить ВМ из снапшота (vm/restore_snapshot). ДЕСТРУКТИВНО: текущее состояние диска ВМ будет перезаписано состоянием снапшота.

NameRequiredDescriptionDefault
idYesID виртуальной машины
nameYesИмя снапшота
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true, and the description adds concrete behavioral context by stating that the VM's current disk state will be overwritten by the snapshot state. This goes beyond the bare annotation without contradicting it.

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?

The description is two short sentences with no filler. The destructive warning is front-loaded and the endpoint reference adds useful context without bloating the text.

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 destructive restore operation, the description adequately covers the key side effect (disk overwrite), and all required parameters are documented in the schema. It lacks details about response behavior or prerequisites, but these are not critical given the annotations and complete schema.

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 100%, so the schema already explains id, name, and confirm. The tool description does not add additional parameter-level meaning, so the baseline score of 3 is appropriate.

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 states a specific action and resource: 'Восстановить ВМ из снапшота' (restore VM from snapshot). The verb/resource pairing is unique and clearly separates it from sibling snapshot tools like create_snapshot, remove_snapshot, and get_snapshots.

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 intended use is implied by the purpose: use this when a VM should be restored to a previous snapshot state. The destructive warning ('ДЕСТРУКТИВНО') gives cautionary context but the description does not explicitly mention alternatives or specify when not to use it.

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

run_post_install_taskAInspect

Выполнить Jenkins/Ansible-задачу на сервере (jenkins/call): ID или имя задачи из list_post_install_tasks + доп. параметры. Например, установка GPU-драйверов после переустановки ОС.

NameRequiredDescriptionDefault
idYesID сервера
taskYesID или имя задачи из list_post_install_tasks
paramsNoДополнительные параметры задачи
confirmYesMust be true to run the operation.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate this is not read-only and may affect external systems, and the description adds that it executes a Jenkins/Ansible task on a server. It does not disclose whether execution is asynchronous, how results are returned, or what side effects occur beyond running the task.

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 short and front-loaded, with a helpful example that clarifies intent. The parenthetical 'jenkins/call' adds a minor technical detail that is not essential for an agent selecting or invoking the tool, preventing a perfect score.

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?

The description is adequate for identifying the operation and basic inputs, but with no output schema it does not explain what the call returns or whether the task runs asynchronously. The required confirm parameter is visible in the schema, but the description itself does not reinforce this important guardrail.

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 100%, so the schema already documents all parameters. The description mostly restates that the task parameter is an ID or name from list_post_install_tasks and mentions additional parameters, without adding deeper semantics about required confirmation or parameter formats.

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 uses a specific verb and resource: 'Выполнить Jenkins/Ansible-задачу на сервере' (execute a Jenkins/Ansible task on a server). It clearly distinguishes itself from list_post_install_tasks by indicating that the task ID or name comes from that list, so an agent can separate run from list operations.

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 provides a concrete example use case (installing GPU drivers after OS reinstall) and references list_post_install_tasks as the source of task IDs/names. However, it does not explicitly state when not to use the tool or mention alternatives such as check_task for monitoring task progress.

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

s3_cancel_account_deletionAInspect

Cancel S3 service deletion initiated via billing and restore the account to active status (s3/cancel_payment_account_deletion).

NameRequiredDescriptionDefault
s3uidNoS3 account UID; omit only if the token is bound to a single S3 account
confirmYesMust be true to run the operation.
account_idNoDeprecated alias for s3uid / get_users.id

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is carried by structured data; the description consistently adds that the outcome is account restoration to active status. It does not mention the mandatory 'confirm' gate, authorization requirements, or whether an already-active account errors out.

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?

A single front-loaded sentence with the operation first and the effect second; no filler. The trailing API route in parentheses is traceability rather than agent-usable information, a minor non-value-adding element.

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 three-parameter, non-destructive mutation with full schema documentation and no output schema, the description covers what it does and the resulting state change, which is what an agent needs to select it. Only the confirm-required behavior and error conditions are left to the schema.

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 100%, with all three parameters (s3uid, confirm, account_id) documented in-schema including the deprecated alias and the omit-if-token-bound case. The description adds no parameter-level meaning beyond the schema, so the baseline 3 applies.

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 ('Cancel S3 service deletion') plus the resulting effect ('restore the account to active status'), which is more than the name alone conveys. It does not name the counterpart operations (s3_delete_account / s3_delete_payment_account), but the purpose is unambiguous against them.

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 clause 'initiated via billing' implicitly scopes when this tool applies (an S3 deletion that came through the billing path), which helps select it over other S3 teardown tools. However, there is no explicit when-to-use/when-not guidance or named alternative for deleting an account outright.

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

s3_create_accountBInspect

Create an S3 account: bind a plan and initial bucket (s3/create_account). Requires authentication.

NameRequiredDescriptionDefault
bucketNoInitial bucket name
confirmYesMust be true to run the operation.
plan_idNoPlan ID from s3_list_plans
locationNoLocation from s3_get_locations

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds a useful authentication requirement and names the underlying endpoint (s3/create_account), but says nothing about what binding a plan actually changes or whether the operation is reversible.

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 clauses, with the core purpose front-loaded before the endpoint and auth note. No wasted sentences, though the parenthetical endpoint reference is low-value for an agent.

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?

For a mutation tool with no output schema, the description does not indicate what a successful account creation returns (credentials, IDs, status) or how to verify completion. It is adequate given the strong annotation and schema coverage, but leaves a gap around outcome handling.

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 100%, so plan_id, location, bucket, and confirm are all documented in the schema. The description merely echoes the plan/bucket concepts and adds no format or constraint detail beyond what the schema already provides, so baseline 3 applies.

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 ("Create an S3 account") and clarifies the effect (binding a plan and initial bucket), which cleanly distinguishes it from s3_create_bucket and s3_create_order. However it never names those siblings explicitly, so the differentiation relies on the agent's inference.

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 supplies a prerequisite ("Requires authentication") and contextualizes the operation as an account-provisioning step, which implies when it applies. It gives no when-not guidance and does not point to alternatives such as s3_create_bucket for subsequent buckets.

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

s3_create_bucketBInspect

Create a new bucket in an existing S3 account (s3/create_bucket).

NameRequiredDescriptionDefault
s3uidNoS3 account UID; omit only if the token is bound to a single S3 account
bucketYesBucket name
confirmYesMust be true to run the operation.
account_idNoDeprecated alias for s3uid / get_users.id

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare the safety profile (readOnly=false, destructive=false, openWorld=true), and the description adds essentially nothing beyond them — no note on name uniqueness/global namespace, idempotency on retry, permission requirements, or what is returned. The only extra is the API route, which is marginal.

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?

A single, front-loaded sentence with no filler; the verb and resource come first and the API path is a compact parenthetical. Nothing wasteful.

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?

For a simple create operation with full schema coverage and annotations, the essentials are present, but the description omits the required confirm gate, whether creation is chargeable, and what success yields. Adequate but with clear gaps for a mutation tool.

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 100%, so all four parameters (including the deprecated account_id alias and the required confirm flag) are documented in the schema. The description adds no parameter meaning beyond that, which is the expected baseline when the schema does the work.

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 ('Create a new bucket') and scopes it ('in an existing S3 account'), plus the underlying API route. It is clearly distinguishable from siblings like s3_delete_bucket and s3_get_buckets, though it never names or contrasts those siblings 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 explicit when-to-use guidance, no mention that an account must already exist (s3_create_account vs this tool), and no note that 'confirm' must be set true. The phrase 'existing S3 account' only hints at a prerequisite, leaving selection and usage to inference.

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

s3_create_orderAInspect

Create a paid S3 storage order linked to billing (s3/create_order). MONEY: creates a real order/invoice.

NameRequiredDescriptionDefault
confirmYesMust be true to run the operation.
plan_idNoPlan ID
locationNoLocation

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already flag this as a non-read-only, open-world mutation. The description adds real context beyond them: this creates a genuine paid order/invoice with monetary consequences, which is the key behavioural fact an agent needs before calling it. It still omits irreversibility, idempotency, and duplicate-order behaviour.

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?

Two short front-loaded sentences with zero filler: the action, its billing linkage, and the money warning. The API path is the only marginally redundant element and it is tucked at the end.

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?

For a three-parameter, fully-documented mutation with no output schema, the description covers the critical risk (real invoice) but is silent on what a successful call produces, whether duplicate orders can be created, and what payment prerequisites apply. Adequate, but with clear gaps.

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 coverage is 100%, so plan_id, location, and the required confirm flag are documented in the schema itself. The description adds only the qualifier 'paid' and no per-parameter detail, so the baseline of 3 applies.

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 gives a specific verb+resource ('Create a paid S3 storage order') scoped to billing, and the API path (s3/create_order) removes ambiguity about which endpoint runs. It does not explicitly differentiate from near-neighbours such as order_server or s3_create_account, so the agent still has to infer that this is the S3-storage variant.

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 statement of when to choose this tool over siblings like order_server, s3_list_plans, or s3_create_account, and no preconditions beyond what the schema already enforces. The 'MONEY' note is a risk warning rather than usage guidance, so the agent gets no routing help.

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

s3_delete_accountA
Destructive
Inspect

Fully delete a user's S3 account (s3/delete_account). DESTRUCTIVE: all buckets and data will be deleted. Requires HOSTKEY_ALLOW_DESTRUCTIVE=1.

NameRequiredDescriptionDefault
s3uidNoS3 account UID; omit only if the token is bound to a single S3 account
confirmYesMust be true to run the operation.
account_idNoDeprecated alias for s3uid / get_users.id

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the safety profile is known; the description then adds substantive context: the blast radius ('all buckets and data will be deleted') and an environment-level authorization gate. It stops short of saying whether deletion is immediate vs scheduled or reversible, which matters given a cancel-deletion sibling exists.

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?

Three short sentences, front-loaded with the operation and API path, then the destructive warning, then the prerequisite. Every sentence carries distinct, actionable information with zero 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 three-parameter destructive mutation with no output schema and full annotation coverage, the description supplies what the structured fields do not: blast radius and the destructive-gate requirement. The remaining gap is recoverability — nothing says whether the account can be restored or whether this blocks other operations while pending.

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 100%, including the s3uid omission rule, the confirm must-be-true rule, and the deprecated account_id alias, so the schema carries all parameter meaning. The description adds nothing parameter-specific, which is acceptable at full coverage but earns only the baseline.

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 ('fully delete') and resource ('a user's S3 account') and even cites the underlying API path (s3/delete_account). The word 'fully' plus 'all buckets and data will be deleted' cleanly separates it from narrower siblings like s3_delete_bucket, s3_delete_payment_account, and s3_cancel_account_deletion.

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?

Gives a genuine precondition (HOSTKEY_ALLOW_DESTRUCTIVE=1 must be set), which is real usage guidance an agent needs before attempting the call. However, it never says when to prefer this over siblings such as s3_cancel_account_deletion or s3_delete_payment_account, so the routing decision is left to inference.

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

s3_delete_bucketA
Destructive
Inspect

Delete a bucket from an S3 account (s3/delete_bucket). DESTRUCTIVE: all files in the bucket will be deleted.

NameRequiredDescriptionDefault
s3uidNoS3 account UID; omit only if the token is bound to a single S3 account
bucketYesBucket name
confirmYesMust be true to run the operation.
account_idNoDeprecated alias for s3uid / get_users.id

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=false, openWorldHint=true, and destructiveHint=true, so the safety profile is covered. The description adds valuable context by stating the concrete consequence: 'all files in the bucket will be deleted'. However, it does not mention the required confirmation flag or irreversibility beyond that consequence.

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?

The description is two short sentences and is front-loaded with the core action. Every sentence adds useful information: the first states purpose and API path, the second states the destructive consequence. There is 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 destructive tool with full annotation coverage (destructiveHint=true), a fully documented schema, and no output schema, the description provides the essential warning that all files are deleted. It could be slightly more complete by mentioning the confirm=true requirement explicitly, but the schema already documents that parameter.

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 100%, so all four parameters are fully documented in the schema itself. The description adds no parameter-level meaning beyond what is already in the schema, which is acceptable given the high coverage.

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 states a specific verb and resource: 'Delete a bucket from an S3 account'. It also includes the underlying API operation path. Because it explicitly names the bucket as the target, it is inherently distinguishable from sibling operations like s3_delete_file and s3_delete_account.

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?

The description does not explain when to use this tool versus alternatives such as s3_delete_file, s3_delete_account, or s3_delete_bucket-like operations. It also does not mention prerequisites like the required confirm=true flag, though that is documented in the schema. It merely implies usage through the tool name and purpose.

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

s3_delete_fileA
Destructive
Inspect

Delete a file from a bucket (s3/delete_file). DESTRUCTIVE: the file is permanently deleted.

NameRequiredDescriptionDefault
fileYesFile key (name)
s3uidNoS3 account UID; omit only if the token is bound to a single S3 account
bucketYesBucket name
confirmYesMust be true to run the operation.
account_idNoDeprecated alias for s3uid / get_users.id

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false and openWorldHint=true, so the safety profile is known; the description adds only the word 'permanently', which sharpens the consequence but largely restates the annotation. It does not mention the required confirm flag, error behavior for missing files, or idempotency.

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?

Two short sentences with the effect front-loaded and the destructive warning immediately after. Nothing is wasted.

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?

There is no output schema, and annotations plus schema already cover safety and inputs, so the description is nearly sufficient. However, for an irreversible delete it could state the confirm requirement and what happens on a missing key, which are gaps an agent would want covered.

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 100% and all five parameters (bucket, file, s3uid, confirm, account_id) are documented in the schema, so baseline 3 applies. The description adds no parameter-level meaning such as file-key format or the precedent order between s3uid and the deprecated account_id.

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 ('Delete a file from a bucket') plus the underlying API path, which is clearly distinct from siblings like s3_delete_bucket or s3_get_files. It stops short of naming an alternative tool, so it is clear but not fully differentiated.

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 gives a strong implicit signal ('DESTRUCTIVE: permanently deleted') that tells the agent this is an irreversible action, but it offers no explicit when-to-use/when-not guidance or routing to sibling tools such as s3_delete_bucket for bucket-level removal.

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

s3_delete_payment_accountA
Destructive
Inspect

Initiate S3 account deletion via service cancellation in billing (s3/delete_payment_account). DESTRUCTIVE: an end date will be set on the active service. Requires HOSTKEY_ALLOW_DESTRUCTIVE=1.

NameRequiredDescriptionDefault
s3uidNoS3 account UID; omit only if the token is bound to a single S3 account
confirmYesMust be true to run the operation.
account_idNoDeprecated alias for s3uid / get_users.id

TDQS

A3.6/5.0
Behavior4/5

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

The annotations already declare destructiveHint=true, so marking it DESTRUCTIVE repeats structured data. What earns credit is the added semantics: deletion is implemented as a scheduled service end date rather than an immediate purge, plus the required environment flag — neither of which is visible in the annotations.

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 tight sentences with the destructive warning front-loaded immediately after the purpose. The parenthetical API path is slightly redundant but minimal overhead; nothing is padded.

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?

Covers the destructive nature, the mechanism (end date on the service), and the env-var gate, which is solid for a no-output-schema mutation tool. It omits two things an agent needs: how this differs from s3_delete_account, and that the action appears reversible via the s3_cancel_account_deletion sibling.

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 100%, so s3uid optionality, the confirm requirement, and the deprecated account_id alias are already fully documented in the schema. The description adds no parameter-level information beyond the schema, which meets the baseline but no more.

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 ('Initiate S3 account deletion via service cancellation in billing') and names the underlying API path. However, it does not differentiate itself from the closely-named sibling s3_delete_account, which is the single most important distinction an agent must make here.

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 real precondition ('Requires HOSTKEY_ALLOW_DESTRUCTIVE=1'), which is actionable usage guidance. But it never says when to prefer this tool over s3_delete_account or s3_cancel_account_deletion, so the agent is left to guess between near-identical siblings.

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

s3_get_bucketsA
Read-only
Inspect

List S3 account buckets and usage (s3/get_buckets_rmq). Pass s3uid or account_id from s3_get_users. May return a task key — then track with check_task.

NameRequiredDescriptionDefault
s3uidNoS3 account UID from s3_get_users.s3uid
account_idNoNumeric id from s3_get_users.id (alias; resolved to s3uid)

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark this as read-only and open-world. The description adds useful behavioral context beyond annotations: it may return a task key and that task should be tracked with check_task, revealing an async workflow. It does not discuss permissions or return shape, but that is less critical for a read-only list tool.

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?

The description is two compact clauses, front-loads the core action, and every sentence provides actionable information: the resource, the ID source, and the task-tracking follow-up.

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 read-only list tool with complete schema coverage and annotations, the description covers the key prerequisites and the async-task follow-up. It does not explain what 'usage' contains or whether calling with no ID lists everything, but those gaps are minor.

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 coverage is 100%, so both parameters are already documented, including their provenance and the account_id alias behavior. The description repeats the provenance from s3_get_users but adds no syntax or constraint details 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: 'List S3 account buckets and usage.' The endpoint hint '(s3/get_buckets_rmq)' implicitly distinguishes it from the queue-based sibling, but no explicit sibling differentiation is given.

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 tells the agent where to get the required identifiers ('Pass s3uid or account_id from s3_get_users') and what to do if a task key is returned ('track with check_task'). It does not explicitly compare with the sibling s3_get_buckets_via_queue.

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

s3_get_buckets_via_queueA
Read-only
Inspect

Same as s3_get_buckets: list buckets via s3/get_buckets_rmq. Prefer s3_get_buckets.

NameRequiredDescriptionDefault
s3uidNoS3 account UID from s3_get_users.s3uid
account_idNoNumeric id from s3_get_users.id (alias; resolved to s3uid)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds the fact that the call is routed through s3/get_buckets_rmq, but does not say whether that makes the operation asynchronous, slower, or a fallback path — the main behavioral question an agent would have about a "via queue" variant.

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?

Two short clauses: the equivalence statement first, then the routing preference. No filler, and the most decision-relevant information (prefer the other tool) is present and easy to extract.

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 no-required-parameter read tool with full schema coverage and an output-free contract, the definition covers equivalence and routing adequately. The remaining gap is behavioral: nothing tells the agent when the queued path is expected to be used or how it differs in outcome from s3_get_buckets.

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 coverage is 100%: s3uid and account_id are both documented, including that account_id is an alias resolved to s3uid. The description adds nothing about parameters, which is acceptable given the schema does the work, but it earns no extra credit.

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 gives a specific verb and resource ("list buckets") and explicitly frames itself as an equivalent variant of the sibling s3_get_buckets, so an agent can tell the two apart. It does not explain what "via_queue" / s3/get_buckets_rmq actually means, so the underlying mechanism stays opaque.

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?

"Prefer s3_get_buckets" is an explicit routing instruction to the alternate sibling, which is the key selection signal here. It stops short of saying when this queued variant is the right choice (e.g., fallback when the direct call fails), so the condition for using it is left implicit.

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

s3_get_filesA
Read-only
Inspect

List files in a bucket with pagination and search (s3/get_files).

NameRequiredDescriptionDefault
pageNoIgnored; use search / limit. InvAPI paginates with continuation_token.
limitNoPage size (mapped to InvAPI max_keys, max 100)
s3uidNoS3 account UID; omit only if the token is bound to a single S3 account
bucketYesBucket name
searchNoSearch string by file name
account_idNoDeprecated alias for s3uid / get_users.id

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that pagination and search are supported, which is useful behavioral context, but it does not describe return format, pagination mechanics, or operational constraints beyond that.

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?

The description is a single well-formed sentence with the core operation front-loaded and no wasted text. The endpoint reference in parentheses is compact and useful for disambiguation.

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?

Given the fully described schema, read-only and open-world annotations, and no output schema, the description is mostly sufficient for calling the tool. It does not explain pagination mechanics such as continuation_token, but the schema covers the parameter-level details.

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 100%, so all six parameters, including bucket, search, limit, and the deprecated/ignored page field, are documented in the schema. The description mentions pagination and search at a high level but adds no parameter-level meaning beyond what the schema already provides.

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 states a specific verb and resource: it lists files in a bucket, with pagination and search, and includes the underlying endpoint s3/get_files. This distinguishes it from nearby S3 tools such as s3_get_buckets, which lists buckets rather than files.

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 intended use is implied by 'List files in a bucket with pagination and search', but there is no explicit when-to-use or when-not-to-use guidance and no named alternative. The agent can infer this is for file listing within a bucket, but the description does not route it among alternatives.

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

s3_get_locationsB
Read-only
Inspect

List available locations for S3 (s3/get_available_locations).

NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered externally. The description adds only the underlying endpoint string, with no information about auth requirements, pagination, or how locations relate to the account.

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?

A single tight sentence that leads with the verb and resource, with the endpoint parenthetical as a minor but harmless addition. Nothing wasteful.

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 zero-parameter, read-only list call with annotations covering the safety profile and no output schema, the description is sufficient to call it correctly. Only minor context, such as what a location represents or the return shape, is 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?

The tool takes no parameters and schema coverage is 100%, so there is nothing to disambiguate. Baseline of 4 is appropriate for a zero-parameter tool.

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 (List) and resource (available locations for S3), so an agent immediately knows what it returns. There is no close sibling it needs to be distinguished from among the s3_* family, so no differentiation is required.

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 only implied: an agent can infer this is a discovery/enumeration call for S3 locations. No explicit when-to-use, prerequisites, or alternatives are provided, and none of the sibling tools are named as related choices.

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

s3_get_usersA
Read-only
Inspect

List S3 users with service, traffic, and storage usage info (s3/get_users). Full filtering is available to administrators. Use returned s3uid/id with s3_get_buckets.

NameRequiredDescriptionDefault
locationNoFilter by location (for administrators)

TDQS

A3.9/5.0
Behavior4/5

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

With readOnlyHint and openWorldHint already declared, this is a safe read the annotations already cover. The description adds behavior beyond that: filtering scope depends on administrator privileges. It does not disclose pagination or result-size behavior, keeping it out of the top band.

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 tight sentences, front-loaded with the resource and its payload, then the access constraint and the follow-up call. The parenthetical API path is minor noise but nothing is wasted.

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?

No output schema exists, yet the description names the returned identifiers (s3uid/id) and the usage data fields, and it covers the admin-filtering constraint. Return shape detail and pagination remain unstated, which is the only real gap for a single-parameter read tool.

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 coverage is 100% with a single 'location' parameter that the schema already documents as admin-only. The description's 'full filtering is available to administrators' restates that constraint rather than adding format, matching, or syntax detail, so the baseline of 3 applies.

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 ('List S3 users') plus the payload the tool returns (service, traffic, storage usage). It differentiates from most siblings by identifying s3_get_buckets as the follow-on, though it does not distinguish itself from other s3_* list tools such as s3_get_locations or s3_get_buckets_via_queue.

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 real usage context: filtering is admin-gated and the returned s3uid/id feeds s3_get_buckets. It never states when this tool is the wrong choice versus neighboring s3 list tools, so it stops short of full when/when-not guidance.

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

s3_list_plansB
Read-only
Inspect

List available S3 storage plans (s3/list_plans).

NameRequiredDescriptionDefault
locationNoLocation (filter), if supported

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds essentially nothing beyond that — no note on whether the list is location-scoped, whether it can be empty, or that it is a read-only catalog lookup.

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?

One short sentence, front-loaded with the verb and resource, with zero filler. Nothing redundant or misplaced.

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?

For a simple, annotation-covered read-only list tool with a fully documented single parameter and no output schema, the description is minimally sufficient. It still omits what a 'plan' represents and how the result relates to ordering (s3_create_order), leaving an agent to infer the tool's role.

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 100% and the single location parameter is documented in the schema itself ('Location (filter), if supported'). The description adds no meaning beyond the schema, so the baseline of 3 applies.

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: list available S3 storage plans, with the underlying API path 's3/list_plans' as corroboration. The resource is distinct from siblings like list_traffic_plans and s3_get_locations, but the description never explicitly differentiates itself from them.

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?

No guidance on when to call this versus alternatives such as s3_get_locations or list_traffic_plans, and no stated prerequisites or follow-up actions (e.g., feeding a plan into s3_create_order). Usage must be inferred entirely from the tool name.

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

s3_show_keyA
Read-only
Inspect

Get a decrypted S3 access key (s3/show_key). SECRET: do not log or share with third parties.

NameRequiredDescriptionDefault
s3uidNoS3 account UID; omit only if the token is bound to a single S3 account
key_typeYesKey type
account_idNoDeprecated alias for s3uid / get_users.id

TDQS

A3.5/5.0
Behavior4/5

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

Annotations cover the safe-read profile (readOnlyHint, openWorldHint), but the description adds genuinely useful context beyond them: the value is decrypted and secret, with an explicit handling warning not to log or share. It stops short of noting audit logging or who is permitted to retrieve keys.

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?

Two short sentences, with the core action front-loaded and the security warning immediately following. Nothing is wasted and nothing important is buried.

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?

There is no output schema, so the description carries the burden of explaining the return value, and it only says 'decrypted S3 access key' without specifying the response fields or how access_key versus secret_key selection affects output. Adequate for a three-parameter read, but the missing return shape is a real gap.

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 100%, so all three parameters, including the key_type enum and the conditional s3uid note, are already documented in the schema. The description adds no parameter semantics of its own, making baseline 3 correct.

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: retrieves a decrypted S3 access key. The name and parenthetical endpoint mapping make it distinguishable from key-listing siblings like list_api_keys or get_api_key, though it never explicitly contrasts with them.

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?

No guidance on when to call this versus alternatives such as s3_get_users or get_api_key, and no prerequisites stated (e.g., whether s3uid must be known first). Usage is only implied by the description and the schema's conditional field note.

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

s3_update_traffic_infoBInspect

Update S3 account traffic information (s3/update_traffic_info). Available to administrators only.

NameRequiredDescriptionDefault
s3uidNoS3 account UID; omit only if the token is bound to a single S3 account
confirmYesMust be true to run the operation.
account_idNoDeprecated alias for s3uid / get_users.id

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds genuinely new context — the admin-only auth requirement — but says nothing about immediacy of effect, what happens to unmentioned traffic settings, or how the required confirm flag gates execution.

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 sentences with the action front-loaded and the endpoint slug parenthesized for traceability. Efficient, though the parenthetical restates the tool name and consumes space that could carry actual behavioral detail.

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?

For a mutating, admin-gated tool with a mandatory confirm parameter and no output schema, the description should explain what the update accomplishes and what to expect afterwards. The safety profile and parameter semantics are covered by structured fields, but the description leaves a real gap around what 'traffic information' means.

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 100%, so the schema already explains s3uid, confirm and the deprecated account_id alias. The description adds no parameter meaning of its own, and notably does not clarify that no parameter actually specifies the new traffic values, which is the most confusing thing about 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?

States a specific verb ('Update') and resource ('S3 account traffic information'), which distinguishes it from read-only siblings like s3_get_users and s3_list_plans. It stops short of saying what aspect of traffic is updated (quota, plan, overage), so an agent still cannot tell exactly what the mutation changes.

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?

The only guidance is 'Available to administrators only', which is an authorization prerequisite rather than a when/when-not rule. No alternative sibling is named and no condition for preferring this tool over s3_list_plans or s3_create_order is given.

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

search_presetsA
Read-only
Inspect

Поиск подходящих свободных серверов под конкретный пресет по имени (например, vm.pico). Требует авторизации.

NameRequiredDescriptionDefault
nameYesИмя пресета, например vm.pico
scopeNofree (по умолчанию) — только свободные
locationYesЛокация: NL/US/FI/DE/IS/TR/UK/ES/IT/PL/CH

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already indicate read-only and open-world behavior; the description adds that authorization is required and that only free servers are returned by default. It does not disclose response shape or pagination, but the readOnlyHint reduces the need to warn about side effects.

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?

Two short sentences, no filler: the first front-loads the action and resource, the second states the one prerequisite not visible in the schema. Every sentence earns its place.

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?

For a read-only search with fully documented parameters, the definition is mostly sufficient, but it omits the scope=all behavior and does not clarify what 'подходящих' means or what a successful response contains. Since there is no output schema, a little more context would be needed for a 4.

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 coverage is 100%, so all three parameters are already described; the description only repeats the 'vm.pico' name example from the schema and adds no new semantic detail. This is the baseline 3 for high schema coverage.

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 gives a specific verb ('search') and resource ('free servers for a named preset') with an example preset, so an agent can tell it from preset-management tools. It does not explicitly contrast itself with similar search siblings such as search_servers_by_tag or list_stock_servers, which keeps it from 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 text implies the use case—finding available free servers for a preset—and adds the authorization prerequisite. It does not state when to prefer another tool or mention the scope=all option that broadens search beyond free servers, so usage guidance is only implicit.

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

search_servers_by_tagB
Read-only
Inspect

Поиск серверов по имени или значению тега (tags/search_user). Возвращает ID серверов.

NameRequiredDescriptionDefault
valueYesШаблон поиска по тегам

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that it returns server IDs, which is useful since no output schema exists, but it discloses nothing about result limits, pagination, or matching 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?

Two short, front-loaded sentences with no filler. The parenthetical endpoint reference ('tags/search_user') is opaque to an agent but costs little.

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?

For a one-parameter read-only search with annotations covering safety, the definition is minimally adequate; it does state the return value. However, it omits matching behavior, result size/pagination, and how it relates to sibling search/list tools.

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 100%, so the single parameter is already documented as a tag search pattern. The description claims search 'by name or tag value', which slightly broadens the schema's stated tag-only semantics and creates mild ambiguity rather than adding precision.

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 ('Поиск серверов') and the filter (by name or tag value), and notes the return type ('Возвращает ID серверов'). It does not explicitly differentiate itself from siblings like get_servers or get_server_tags, but the search semantics are clear enough to distinguish it.

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?

The description says what the tool does but gives no when-to-use guidance, no exclusions, and no reference to alternatives such as get_servers or get_server_tags. Usage is only implied by the verb.

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

set_boot_deviceB
Destructive
Inspect

Установить порядок загрузки сервера (eq/boot_dev): pxe — сетевая загрузка (шаг 3 переустановки), disk — загрузка с диска (шаг 6), cd — смонтированный ISO.

NameRequiredDescriptionDefault
idYesID сервера
mediaYesУстройство загрузки
confirmYesMust be true to run the operation.

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already classify this as a destructive, non-read-only operation, and the description adds little behavioral detail beyond explaining what each media option means. It does not disclose side effects, prerequisites, or post-conditions, such as whether the server must be powered off or whether the change takes effect immediately.

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?

The description is a single, front-loaded sentence that states the purpose and then maps each enum value to its meaning. There is no redundant text, and the structure is easy to parse.

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?

The schema covers all parameters and annotations indicate destructiveness, but the description lacks explicit usage guidance and doesn't state any prerequisites or consequences. For a destructive operation, the agent would benefit from more context about when to invoke it, though the step references provide some navigational hints.

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 100%, so the baseline is 3. The description adds extra meaning to the 'media' enum by explaining each value (pxe = network boot, disk = disk boot, cd = mounted ISO) and even references 'eq/boot_dev', which provides context beyond the schema's brief descriptions.

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 the action ('set server boot order') and lists the three allowed media values with their meanings (pxe, disk, cd), which clearly identifies the tool's purpose. It doesn't explicitly differentiate from sibling tools like request_rh_pxe_boot or create_pxe_config, so it's clear but lacks named sibling distinctions.

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 when each media value should be used by referencing reinstallation steps (pxe=step 3, disk=step 6), but it doesn't explicitly state when to use this tool versus alternatives or provide exclusions. The context is present but not fully explicit.

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

set_main_ipAInspect

Назначить основной IP-адрес сервера (ip/set_main), когда адресов несколько.

NameRequiredDescriptionDefault
idYesID сервера
ipYesIP-адрес
mainYesIP-адрес, который станет основным
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, so the description's 'assign' action is consistent with a state change that is not destructive. The description adds the behavioral context that this is for multi-address scenarios, but it does not elaborate on side effects, reversibility, or authorization requirements. Given the annotations already cover the safety profile, the added value is modest but not trivial.

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?

The description is a single concise sentence that states the action, the resource, the API reference, and the condition of use. Every phrase earns its place, and the key information is front-loaded.

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 simple setter operation with four required parameters all documented in the schema, and no output schema, the description provides sufficient context: what it does and when to use it. It could potentially mention the need for confirmation, but that is already captured in the schema's 'confirm' parameter description. Nothing essential is missing.

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?

The schema description coverage is 100%, so all four parameters (id, ip, main, confirm) are already documented in the input schema. The description adds no additional meaning about the parameters beyond what the schema provides, which is the baseline for high schema coverage.

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 clearly states a specific action (assign the main IP address) on a specific resource (server), and includes the API endpoint identifier (ip/set_main). It also specifies the context ('when there are several addresses'), which distinguishes it from other IP-related operations like get_ip_info, update_ptr_record, or block_ip.

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 provides a clear condition for use: 'when there are several addresses.' This implies the tool is used when a server has multiple IPs and one needs to be designated as primary. It does not explicitly name alternatives or exclusions, but the context is sufficient for an agent to decide when to invoke this tool versus other IP management tools.

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

start_novncB
Read-only
Inspect

Запустить NoVNC (HTML5) сессию консоли сервера (eq/novnc): возвращает ссылку для открытия в браузере.

NameRequiredDescriptionDefault
idYesID сервера
white_ipNoIP, с которого разрешено подключение

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that the operation starts a NoVNC session and returns a link, but does not mention session lifetime, authentication requirements, or whether a new session invalidates an existing one. This is adequate but not rich.

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?

The description is a single, front-loaded sentence that states the action, the technology, the target resource, and the return value. There is no filler or repetition.

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?

With two parameters fully explained by the schema and annotations covering safety, the description is sufficient for basic invocation. However, because there is no output schema, more detail about the returned link format or any preconditions would improve completeness.

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 100%, so both parameters (id and white_ip) are already documented in the schema. The description adds no additional meaning about how the parameters affect the NoVNC session or the returned link, so it stays at baseline.

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 is specific: it says the tool launches a NoVNC (HTML5) console session for a server and returns a browser link. It is clear on the verb and resource, but it does not differentiate this from the sibling get_vnc_console, which may serve a similar purpose.

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?

The description provides no guidance on when to use this tool instead of alternatives such as get_vnc_console or request_rh_kvm. There are no exclusions, prerequisites, or context hints beyond the basic action.

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

unblock_ipAInspect

Снять блокировку IP-адреса на сервере (net/unblock_ip).

NameRequiredDescriptionDefault
idYesID сервера
ipYesIP-адрес
confirmYesMust be true to run the operation.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, establishing that this is a non-read-only, non-destructive operation. The description adds the context that the operation targets a server ('на сервере'), which is minor value beyond annotations. It does not contradict annotations, but it does not disclose additional behaviors such as side effects or confirmation requirements (which are in the schema). Given the annotation coverage, a score of 3 is appropriate.

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 a single, front-loaded sentence that directly states the action. It is concise and free of fluff, though it borders on restating the tool name with only the added 'на сервере' context. This is efficient but lacks the richness of a more structured description.

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 simple action tool with full schema coverage and annotations providing the safety profile, the description is mostly complete. It names the action and target. The absence of an output schema is acceptable for such a simple operation, and no critical information appears missing, though it does not mention any return value or error behavior.

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?

The input schema provides 100% coverage with descriptions for all three parameters (id, ip, confirm), including the requirement that confirm must be true. The description adds no additional parameter information, so it meets the baseline for high schema coverage without needing to compensate.

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 'Снять блокировку IP-адреса на сервере' clearly states the specific verb (снять/remove) and resource (IP-address on server), unambiguously identifying the tool as the inverse of the sibling block_ip. However, it does not explicitly name the sibling or differentiate beyond the inherent action, so it stops short of a perfect score.

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 the tool is used to unblock an IP that has been blocked on a server, but it does not explicitly state when to use it versus alternatives or mention any exclusions (e.g., 'use this when an IP is blocked'). The context is sufficient but not explicit, aligning with the 'implied usage' level.

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

unmount_isoAInspect

Размонтировать ISO-образ с сервера (iso/unmount_iso). Асинхронная операция — вернётся callback-ключ для check_task.

NameRequiredDescriptionDefault
idYesID сервера
confirmYesMust be true to run the operation.

TDQS

A4/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint=false, destructiveHint=false), the description discloses that the operation is asynchronous and returns a callback key for check_task. This is valuable behavioral context not covered by annotations. However, it doesn't elaborate on side effects (e.g., whether unmounting affects the server state) or error conditions, so it's good but not exhaustive.

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?

The description consists of two concise sentences with no filler. The main action is stated first, followed by the asynchronous behavior. Every word adds value, making it appropriately sized and front-loaded.

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?

Given the simple parameter set, full schema coverage, and absence of an output schema, the description covers the essential points: what it does and that it's async with a callback key. It could optionally mention prerequisites (e.g., ISO must be mounted), but that's fairly obvious. Overall, it's sufficient for an agent to call correctly.

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 coverage is 100%, so both parameters (id and confirm) are already fully described in the schema. The description adds no extra meaning about how the parameters are used or formatted. With high schema coverage, the baseline is 3, and nothing more is contributed.

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 clearly states the verb ('Unmount') and resource ('ISO image from server'), and it distinguishes this tool from its siblings like 'mount_iso' and 'upload_iso'. It also includes the API route 'iso/unmount_iso', removing any ambiguity about the intended operation.

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 gives no explicit guidance on when to use this tool versus alternatives (e.g., mount_iso, delete_iso_image). It only states what it does, leaving the agent to infer that it's for detaching an ISO. There are no prerequisites or exclusions mentioned, so it's adequate but not thorough.

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

update_api_keyAInspect

Изменить параметры API-ключа (api_keys/edit): имя, IP-белый список, уведомления, активность.

NameRequiredDescriptionDefault
idYesID ключа
ipNoБелый список IP
nameYesИмя ключа
activeYestrue — ключ активен
confirmYesMust be true to run the operation.
login_notify_methodYesСпособ уведомлений о входах
login_notify_addressNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate that this is a non-read-only, non-destructive operation. The description adds the endpoint and the list of changeable fields, but it does not disclose side effects, such as the requirement for confirm=true to apply changes (which is only in the schema) or potential impact on active sessions. It is adequate but not enriched beyond the annotations.

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?

The description is a single sentence that immediately states the verb, resource, and main modifiable fields. It is compact, front-loaded, and free of unnecessary words or repetitions.

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 tool with 7 parameters and no output schema, this description gives a sufficient overview of the purpose and main fields. The schema covers parameter details, and annotations cover the safety profile. It could mention the confirm requirement, but that is already in the schema, so the description is mostly complete.

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 86%, so the schema already documents most parameters. The description repeats the names of key parameters (name, IP, notifications, activity) but adds no deeper semantic detail beyond the schema, and it omits mention of the confirm and login_notify_address parameters.

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 states a specific verb 'Изменить' (change) with the resource 'API-ключа' (API key) and enumerates the modifiable fields: name, IP whitelist, notifications, activity. This clearly distinguishes it from sibling operations like create_api_key, delete_api_key, and get_api_key.

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 clearly implies the context for use: modifying parameters of an existing API key. It does not explicitly name alternatives or state exclusions, but the verb 'Изменить' and the resource scope make the use case unambiguous relative to create/delete operations.

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

update_billing_clientCInspect

Изменить данные клиента в биллинге (whmcs/update_client): ФИО, компания, адрес, email, телефон и т.д.

NameRequiredDescriptionDefault
confirmYesMust be true to run the operation.
billing_cityNo
billing_emailNo
billing_stateNo
billing_countryNo
billing_address1No
billing_address2No
billing_lastnameNo
billing_postcodeNo
billing_firstnameNo
billing_companynameNo
billing_phonenumberNo

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false (mutation) and destructiveHint=false (non-destructive). The description adds little beyond confirming it is an update operation. It does not disclose side effects, whether confirmation is required, or any impact on related records. The mention of 'whmcs/update_client' hints at an external API call but provides no additional behavioral detail.

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 a single, concise sentence that front-loads the action and resource. It wastes no words and is easy to parse. While it could be structured with bullet points for clarity, it is appropriately sized for the information it conveys.

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

Completeness2/5

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

Given the tool has 12 parameters, only one required, and no output schema, the description should provide more context about required fields, how to identify the client, and expected results. It does not mention the mandatory 'confirm' parameter or any success/failure behavior. The description is too sparse to fully guide an agent in invoking this tool correctly.

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

Parameters2/5

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

Schema coverage is only 8% (only 'confirm' has a description). The description lists a few fields (ФИО, company, address, email, phone) but omits many parameters like city, state, country, postcode, address2. It uses 'etc.' which is vague and does not compensate for the lack of schema descriptions. The agent would be left guessing about the exact meaning of several parameters.

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 clearly states the tool's purpose: updating client data in the billing system (WHMCS). It specifies the resource (client) and the action (change), and lists example fields (ФИО, company, address, email, phone). It distinguishes from read-only siblings like get_billing_client by the verb 'change', though it does not explicitly differentiate from update_contact.

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?

The description gives no guidance on when to use this tool versus alternatives like update_contact or reset_billing_password. It does not mention prerequisites (e.g., client identification) or context in which it is appropriate. The intended usage is only implied by the name and description, leaving the agent to infer when this is the right choice.

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

update_contactAInspect

Изменить дополнительный контакт (whmcs/update_contact): email, пароль, телефон. Указание телефона включает 2FA по SMS.

NameRequiredDescriptionDefault
emailYesEmail контакта
confirmYesMust be true to run the operation.
password2NoНовый пароль контакта
contact_idYesID контакта
phonenumberNoТелефон (включает 2FA по SMS)

TDQS

A4/5.0
Behavior4/5

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

Description adds behavioral context beyond annotations by noting that specifying a phone enables 2FA via SMS. It also clarifies the scope as 'additional contact' (not primary), which is not in annotations. No contradiction with readOnlyHint=false or destructiveHint=false.

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?

The description is a single, front-loaded sentence that lists the purpose and a key side-effect with no redundant details. It is appropriately sized and structured for quick parsing.

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 an update tool with full schema coverage and no output schema, the description covers the main action and a critical side-effect (2FA). It doesn't mention required confirmation or error conditions, but those are documented in the schema; overall it is sufficient for an agent to understand the operation.

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 100%, so the baseline is 3. The description reiterates email, password, and phone but adds no new meaning beyond the schema, except confirming the phone's 2FA behavior which is already in the schema description.

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?

Description states 'Изменить дополнительный контакт' (update additional contact) and lists affected fields (email, password, phone). This clearly distinguishes it from sibling tools like add_contact or delete_contact, making the operation unambiguous.

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?

No explicit guidance on when to use this tool versus alternatives like add_contact or update_billing_client. The usage is implied as an update for existing contacts, but no exclusions or prerequisites are stated.

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

update_ptr_recordBInspect

Обновить PTR-запись для IP-адреса (ip/update_ptr). Несколько записей передаются разделителем %0A.

NameRequiredDescriptionDefault
idYesID сервера
ipYesIP-адрес
ptrYesНовое значение PTR
confirmYesMust be true to run the operation.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, matching the 'update' action without contradiction. The description adds one behavioral detail beyond annotations: multiple records are passed with %0A separator. However, it does not clarify side effects, whether existing PTR records are replaced, or the role of the confirm flag, leaving a partially transparent picture for a mutating 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?

The description is a single, compact sentence that front-loads the main action and resource, then provides the useful multi-record delimiter note. There is no redundant or filler content, and it earns its place with both purpose and a parameter clarification.

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?

For a 4-required-parameter mutation tool with no output schema, the description covers the core action and the multi-record encoding, but leaves gaps: the purpose of the confirm flag is not explained, nor is the expected result or error behavior. The lack of return-value documentation is notable because no output schema exists, so the description could have carried more of that burden.

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 100% with descriptions for all parameters, so the baseline is 3. The description goes beyond the schema by explaining that multiple records are transmitted using %0A as a delimiter, directly clarifying the intended format of the 'ptr' parameter. This adds meaningful semantic information about the parameter's value structure.

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 uses a specific verb and resource: 'Обновить PTR-запись для IP-адреса' (update PTR record for IP address), which makes the action unambiguous. It does not explicitly differentiate from sibling tools like get_ptr_record or add_dns_record, but the resource and verb are sufficiently distinct. The parenthetical API name 'ip/update_ptr' reinforces the intent without fully distinguishing it from alternatives.

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?

The description provides no guidance on when to use this tool versus alternatives, such as 'to read a PTR record use get_ptr_record' or 'use add_dns_record for regular DNS records'. The only usable context is the API endpoint and the multi-record delimiter note, which is more about parameter usage than tool selection. No when-not or exclusionary conditions are given.

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

upload_isoBInspect

Загрузить новый ISO-образ по URL (iso/upload). Доступно клиентам.

NameRequiredDescriptionDefault
urlYesПрямой URL ISO-образа
nameNoИмя образа в библиотеке
confirmYesMust be true to run the operation.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a mutating but non-destructive operation. The description adds the client-availability constraint and the endpoint, but does not disclose side effects, confirmation behavior, or what happens on upload (e.g., whether it replaces an existing image). No contradiction with annotations.

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 a single short sentence that front-loads the action and resource, then adds the endpoint and availability. No wasted words, though it could have used the space to add usage guidance.

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?

For a simple 3-parameter upload tool with full schema coverage and no output schema, the description is minimally adequate. It identifies the action, resource, endpoint, and client availability, but lacks guidance on when to use it versus add_iso_image and what the response or side effects are.

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 100%, so the schema already documents all three parameters. The description adds no extra meaning beyond the endpoint context; it doesn't clarify the relationship between 'url' and 'name' or the role of 'confirm'. Baseline 3 is appropriate when the schema carries the parameter documentation.

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 ('Загрузить' = upload) and resource ('новый ISO-образ по URL'), and includes the endpoint path (iso/upload). It clearly distinguishes the action from sibling tools like mount_iso, unmount_iso, and delete_iso_image, though it doesn't explicitly name them.

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 says it is available to clients ('Доступно клиентам'), which gives some context on who may use it, but it does not state when to use this tool versus alternatives like add_iso_image or list_iso_images, nor does it mention prerequisites or exclusions.

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. 2 tool updatesv1.0.8
    • Changedadd_static_nat3 fields changed
      • addedInput schema / properties / ip_acl
        Added value: +{
        +  "description": "IP клиента(ов), с которых разрешён доступ к IPMI через NAT (InvAPI ip_acl). Нужен на части аккаунтов, если ACL Proxy из ЛК недостаточно.",
        +  "type": "string"
        +}
      • addedInput schema / properties / secured
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "integer"
        +    }
        +  ],
        +  "description": "Флаг secured NAT, если поддерживается InvAPI"
        +}
      • addedInput schema / properties / ttl
        Added value: +{
        +  "description": "Время жизни NAT в секундах, если поддерживается",
        +  "type": "integer"
        +}
    • Changedget_network_status1 field changed
      • addedInput schema / properties / port
        Added value: +{
        +  "description": "Опциональный интерфейс/порт свитча (например eth0). Без параметра — все интерфейсы; при ошибке map switch на незамапленном NIC повторите с портом из get_server.",
        +  "type": "string"
        +}
  2. 12 tool updatesv1.0.7
    • Changedmount_iso3 fields changed
      • addedInput schema / properties / iso
        Added value: +{
        +  "description": "Имя или id ISO (поле InvAPI `iso`)",
        +  "type": [
        +    "string",
        +    "number"
        +  ]
        +}
      • changedInput schema / properties / iso_id / description
        Previous value: -"ID образа из list_iso_images"New value: +"Алиас: ID из list_iso_images → iso"
      • changedInput schema / properties / name / description
        Previous value: -"Имя образа (если используется идентификация по имени)"New value: +"Алиас: имя / iso_name → iso"
    • Changeds3_cancel_account_deletion1 field changed
      • changedInput schema / properties / account_id / description
        Previous value: -"Deprecated alias for s3uid"New value: +"Deprecated alias for s3uid / get_users.id"
    • Changeds3_create_bucket1 field changed
      • changedInput schema / properties / account_id / description
        Previous value: -"Deprecated alias for s3uid"New value: +"Deprecated alias for s3uid / get_users.id"
    • Changeds3_delete_account1 field changed
      • changedInput schema / properties / account_id / description
        Previous value: -"Deprecated alias for s3uid"New value: +"Deprecated alias for s3uid / get_users.id"
    • Changeds3_delete_bucket1 field changed
      • changedInput schema / properties / account_id / description
        Previous value: -"Deprecated alias for s3uid"New value: +"Deprecated alias for s3uid / get_users.id"
    • Changeds3_delete_file1 field changed
      • changedInput schema / properties / account_id / description
        Previous value: -"Deprecated alias for s3uid"New value: +"Deprecated alias for s3uid / get_users.id"
    • Changeds3_delete_payment_account1 field changed
      • changedInput schema / properties / account_id / description
        Previous value: -"Deprecated alias for s3uid"New value: +"Deprecated alias for s3uid / get_users.id"
    • Changeds3_get_buckets3 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"Deprecated alias for s3uid; prefer s3uid"New value: +"Numeric id from s3_get_users.id (alias; resolved to s3uid)"
      • changedInput schema / properties / s3uid / description
        Previous value: -"S3 account UID (s3uid) from s3_get_users or create_account/order. Numeric id (e.g. 13457) or string uid."New value: +"S3 account UID from s3_get_users.s3uid"
      • removedInput schema / required
        Removed value: -[
        -  "s3uid"
        -]
    • Changeds3_get_buckets_via_queue3 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"Deprecated alias for s3uid; prefer s3uid"New value: +"Numeric id from s3_get_users.id (alias; resolved to s3uid)"
      • changedInput schema / properties / s3uid / description
        Previous value: -"S3 account UID (s3uid) from s3_get_users or create_account/order. Numeric id (e.g. 13457) or string uid."New value: +"S3 account UID from s3_get_users.s3uid"
      • removedInput schema / required
        Removed value: -[
        -  "s3uid"
        -]
    • Changeds3_get_files3 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"Deprecated alias for s3uid"New value: +"Deprecated alias for s3uid / get_users.id"
      • changedInput schema / properties / limit / description
        Previous value: -"Page size"New value: +"Page size (mapped to InvAPI max_keys, max 100)"
      • changedInput schema / properties / page / description
        Previous value: -"Page number"New value: +"Ignored; use search / limit. InvAPI paginates with continuation_token."
    • Changeds3_show_key1 field changed
      • changedInput schema / properties / account_id / description
        Previous value: -"Deprecated alias for s3uid"New value: +"Deprecated alias for s3uid / get_users.id"
    • Changeds3_update_traffic_info1 field changed
      • changedInput schema / properties / account_id / description
        Previous value: -"Deprecated alias for s3uid"New value: +"Deprecated alias for s3uid / get_users.id"
  3. 15 tool updatesv1.0.4
    • Changeds3_cancel_account_deletion2 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"ID S3-аккаунта (если требуется; уточняйте через s3_get_users)"New value: +"Deprecated alias for s3uid"
      • addedInput schema / properties / s3uid
        Added value: +{
        +  "description": "S3 account UID; omit only if the token is bound to a single S3 account",
        +  "type": [
        +    "string",
        +    "number"
        +  ]
        +}
    • Changeds3_create_account3 fields changed
      • changedInput schema / properties / bucket / description
        Previous value: -"Имя начального бакета"New value: +"Initial bucket name"
      • changedInput schema / properties / location / description
        Previous value: -"Локация из s3_get_locations"New value: +"Location from s3_get_locations"
      • changedInput schema / properties / plan_id / description
        Previous value: -"ID тарифного плана из s3_list_plans"New value: +"Plan ID from s3_list_plans"
    • Changeds3_create_bucket3 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"ID S3-аккаунта (если требуется; уточняйте через s3_get_users)"New value: +"Deprecated alias for s3uid"
      • changedInput schema / properties / bucket / description
        Previous value: -"Имя бакета"New value: +"Bucket name"
      • addedInput schema / properties / s3uid
        Added value: +{
        +  "description": "S3 account UID; omit only if the token is bound to a single S3 account",
        +  "type": [
        +    "string",
        +    "number"
        +  ]
        +}
    • Changeds3_create_order2 fields changed
      • changedInput schema / properties / location / description
        Previous value: -"Локация"New value: +"Location"
      • changedInput schema / properties / plan_id / description
        Previous value: -"ID тарифного плана"New value: +"Plan ID"
    • Changeds3_delete_account2 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"ID S3-аккаунта (если требуется; уточняйте через s3_get_users)"New value: +"Deprecated alias for s3uid"
      • addedInput schema / properties / s3uid
        Added value: +{
        +  "description": "S3 account UID; omit only if the token is bound to a single S3 account",
        +  "type": [
        +    "string",
        +    "number"
        +  ]
        +}
    • Changeds3_delete_bucket3 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"ID S3-аккаунта (если требуется; уточняйте через s3_get_users)"New value: +"Deprecated alias for s3uid"
      • changedInput schema / properties / bucket / description
        Previous value: -"Имя бакета"New value: +"Bucket name"
      • addedInput schema / properties / s3uid
        Added value: +{
        +  "description": "S3 account UID; omit only if the token is bound to a single S3 account",
        +  "type": [
        +    "string",
        +    "number"
        +  ]
        +}
    • Changeds3_delete_file4 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"ID S3-аккаунта (если требуется; уточняйте через s3_get_users)"New value: +"Deprecated alias for s3uid"
      • changedInput schema / properties / bucket / description
        Previous value: -"Имя бакета"New value: +"Bucket name"
      • changedInput schema / properties / file / description
        Previous value: -"Ключ (имя) файла"New value: +"File key (name)"
      • addedInput schema / properties / s3uid
        Added value: +{
        +  "description": "S3 account UID; omit only if the token is bound to a single S3 account",
        +  "type": [
        +    "string",
        +    "number"
        +  ]
        +}
    • Changeds3_delete_payment_account2 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"ID S3-аккаунта (если требуется; уточняйте через s3_get_users)"New value: +"Deprecated alias for s3uid"
      • addedInput schema / properties / s3uid
        Added value: +{
        +  "description": "S3 account UID; omit only if the token is bound to a single S3 account",
        +  "type": [
        +    "string",
        +    "number"
        +  ]
        +}
    • Changeds3_get_buckets3 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"ID S3-аккаунта (если требуется; уточняйте через s3_get_users)"New value: +"Deprecated alias for s3uid; prefer s3uid"
      • addedInput schema / properties / s3uid
        Added value: +{
        +  "description": "S3 account UID (s3uid) from s3_get_users or create_account/order. Numeric id (e.g. 13457) or string uid.",
        +  "type": [
        +    "string",
        +    "number"
        +  ]
        +}
      • addedInput schema / required
        Added value: +[
        +  "s3uid"
        +]
    • Changeds3_get_buckets_via_queue3 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"ID S3-аккаунта (если требуется; уточняйте через s3_get_users)"New value: +"Deprecated alias for s3uid; prefer s3uid"
      • addedInput schema / properties / s3uid
        Added value: +{
        +  "description": "S3 account UID (s3uid) from s3_get_users or create_account/order. Numeric id (e.g. 13457) or string uid.",
        +  "type": [
        +    "string",
        +    "number"
        +  ]
        +}
      • addedInput schema / required
        Added value: +[
        +  "s3uid"
        +]
    • Changeds3_get_files6 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"ID S3-аккаунта (если требуется; уточняйте через s3_get_users)"New value: +"Deprecated alias for s3uid"
      • changedInput schema / properties / bucket / description
        Previous value: -"Имя бакета"New value: +"Bucket name"
      • changedInput schema / properties / limit / description
        Previous value: -"Размер страницы"New value: +"Page size"
      • changedInput schema / properties / page / description
        Previous value: -"Номер страницы"New value: +"Page number"
      • addedInput schema / properties / s3uid
        Added value: +{
        +  "description": "S3 account UID; omit only if the token is bound to a single S3 account",
        +  "type": [
        +    "string",
        +    "number"
        +  ]
        +}
      • changedInput schema / properties / search / description
        Previous value: -"Поисковая строка по имени файла"New value: +"Search string by file name"
    • Changeds3_get_users1 field changed
      • changedInput schema / properties / location / description
        Previous value: -"Фильтр по локации (для администраторов)"New value: +"Filter by location (for administrators)"
    • Changeds3_list_plans1 field changed
      • changedInput schema / properties / location / description
        Previous value: -"Локация (фильтр), если поддерживается"New value: +"Location (filter), if supported"
    • Changeds3_show_key3 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"ID S3-аккаунта (если требуется; уточняйте через s3_get_users)"New value: +"Deprecated alias for s3uid"
      • changedInput schema / properties / key_type / description
        Previous value: -"Тип ключа"New value: +"Key type"
      • addedInput schema / properties / s3uid
        Added value: +{
        +  "description": "S3 account UID; omit only if the token is bound to a single S3 account",
        +  "type": [
        +    "string",
        +    "number"
        +  ]
        +}
    • Changeds3_update_traffic_info2 fields changed
      • changedInput schema / properties / account_id / description
        Previous value: -"ID S3-аккаунта (если требуется; уточняйте через s3_get_users)"New value: +"Deprecated alias for s3uid"
      • addedInput schema / properties / s3uid
        Added value: +{
        +  "description": "S3 account UID; omit only if the token is bound to a single S3 account",
        +  "type": [
        +    "string",
        +    "number"
        +  ]
        +}
  4. 72 tool updatesv1.0.3
    • Changedadd_contact1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedadd_dns_domain2 fields changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
      • changedInput schema / properties / name / description
        Previous value: -"Имя домена, например example.com"New value: +"Имя домена, например example.com"
    • Changedadd_dns_record15 fields changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
      • changedInput schema / properties / content / description
        Previous value: -"Значение записи, например 10.56.121.5"New value: +"Значение записи, например 10.56.121.5"
      • changedInput schema / properties / increase_soa_serial / description
        Previous value: -"Автоинкремент SOA-сериала (по умолчанию true)"New value: +"Автоинкремент SOA-сериала (РїРѕ умолчанию true)"
      • changedInput schema / properties / mname / description
        Previous value: -"Primary NS в SOA-записи"New value: +"Primary NS РІ SOA-записи"
      • changedInput schema / properties / name / description
        Previous value: -"Имя записи, например www"New value: +"Имя записи, например www"
      • changedInput schema / properties / old_name / description
        Previous value: -"Прежнее имя записи — для переименования"New value: +"Прежнее РёРјСЏ записи — для переименования"
      • changedInput schema / properties / port / description
        Previous value: -"Порт для SRV"New value: +"РџРѕСЂС‚ для SRV"
      • changedInput schema / properties / priority / description
        Previous value: -"Приоритет для SRV/MX"New value: +"Приоритет для SRV/MX"
      • changedInput schema / properties / proto / description
        Previous value: -"Протокол для SRV, например tcp"New value: +"Протокол для SRV, например tcp"
      • changedInput schema / properties / rname / description
        Previous value: -"Email администратора в SOA-записи"New value: +"Email администратора РІ SOA-записи"
      • changedInput schema / properties / target / description
        Previous value: -"Целевой домен для SRV"New value: +"Целевой домен для SRV"
      • changedInput schema / properties / ttl / description
        Previous value: -"TTL в секундах, по умолчанию 3600"New value: +"TTL РІ секундах, РїРѕ умолчанию 3600"
      • changedInput schema / properties / type / description
        Previous value: -"Тип записи: A, AAAA, CNAME, MX, TXT, SRV…"New value: +"РўРёРї записи: A, AAAA, CNAME, MX, TXT, SRV…"
      • changedInput schema / properties / weight / description
        Previous value: -"Вес для SRV"New value: +"Вес для SRV"
      • changedInput schema / properties / zone / description
        Previous value: -"Имя зоны"New value: +"Имя Р·РѕРЅС‹"
    • Changedadd_dns_subdomain4 fields changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
      • changedInput schema / properties / domain_id / description
        Previous value: -"ID домена из list_dns_domains"New value: +"ID домена РёР· list_dns_domains"
      • changedInput schema / properties / name / description
        Previous value: -"Имя сабдомена"New value: +"Имя сабдомена"
      • changedInput schema / properties / server_id / description
        Previous value: -"ID сервера"New value: +"ID сервера"
    • Changedadd_dns_zone11 fields changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
      • changedInput schema / properties / dns / description
        Previous value: -"SOA-параметры зоны; при пропуске применяются дефолты Hostkey"New value: +"SOA-параметры Р·РѕРЅС‹; РїСЂРё РїСЂРѕРїСѓСЃРєРµ применяются дефолты Hostkey"
      • changedInput schema / properties / dns / properties / mname / description
        Previous value: -"Primary NS, например ns1.hostkey.com"New value: +"Primary NS, например ns1.hostkey.ru"
      • changedInput schema / properties / dns / properties / rname / description
        Previous value: -"Email администратора, например admin.example.com"New value: +"Email администратора, например admin.example.com"
      • changedInput schema / properties / dns / properties / serial / description
        Previous value: -"Сериал зоны, рекомендуется YYYYMMDD00"New value: +"Сериал Р·РѕРЅС‹, рекомендуется YYYYMMDD00"
      • changedInput schema / properties / dnssec / description
        Previous value: -"Включить DNSSEC (по умолчанию false)"New value: +"Включить DNSSEC (РїРѕ умолчанию false)"
      • changedInput schema / properties / kind / description
        Previous value: -"Тип зоны, по умолчанию Master"New value: +"РўРёРї Р·РѕРЅС‹, РїРѕ умолчанию Master"
      • changedInput schema / properties / masters / description
        Previous value: -"Список master-серверов (для Slave)"New value: +"РЎРїРёСЃРѕРє master-серверов (для Slave)"
      • changedInput schema / properties / name / description
        Previous value: -"Имя зоны, например example.com"New value: +"Имя Р·РѕРЅС‹, например example.com"
      • changedInput schema / properties / nameservers / description
        Previous value: -"NS-серверы зоны, по умолчанию ns1.hostkey.com/ns2.hostkey.com"New value: +"NS-серверы Р·РѕРЅС‹, РїРѕ умолчанию ns1.hostkey.ru/ns2.hostkey.ru"
      • changedInput schema / properties / rrsets / description
        Previous value: -"Использовать RRset вместо records (по умолчанию true)"New value: +"Использовать RRset вместо records (РїРѕ умолчанию true)"
    • Changedadd_ipmi_user1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedadd_iso_image1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedadd_rhr_comment1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedadd_static_nat1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedapply_credit1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedblock_ip1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedcall_api_raw5 fields changed
      • changedInput schema / properties / action / description
        Previous value: -"Действие ресурса, например: list"New value: +"Действие ресурса, например: list"
      • changedInput schema / properties / auth / description
        Previous value: -"Подставлять сессионный токен (по умолчанию true)"New value: +"Подставлять сессионный токен (РїРѕ умолчанию true)"
      • changedInput schema / properties / confirm / description
        Previous value: -"Обязательное подтверждение. Без confirm=true вызов отклоняется."New value: +"Обязательное подтверждение. Без confirm=true вызов отклоняется."
      • changedInput schema / properties / params / description
        Previous value: -"Параметры вызова объектом; вложенные объекты превращаются в params[...]"New value: +"Параметры вызова объектом; вложенные объекты превращаются РІ params[...]"
      • changedInput schema / properties / resource / description
        Previous value: -"Ресурс InvAPI без .php, например: iso, s3, rhr, eq, net, whmcs"New value: +"Ресурс InvAPI без .php, например: iso, s3, rhr, eq, net, whmcs"
    • Changedclear_pxe_config1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedclear_static_nat1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedcreate_addfunds_invoice1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedcreate_api_key1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedcreate_pxe_config1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedcreate_reinstall_task1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedcreate_rhr_request1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedcreate_snapshot1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeddelete_api_key1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeddelete_cancellation_request1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeddelete_contact1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeddelete_dns_domain3 fields changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
      • changedInput schema / properties / domain_id / description
        Previous value: -"ID домена из list_dns_domains"New value: +"ID домена РёР· list_dns_domains"
      • changedInput schema / properties / server_id / description
        Previous value: -"ID сервера"New value: +"ID сервера"
    • Changeddelete_dns_record4 fields changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
      • changedInput schema / properties / name / description
        Previous value: -"Имя записи"New value: +"Имя записи"
      • changedInput schema / properties / type / description
        Previous value: -"Тип записи"New value: +"РўРёРї записи"
      • changedInput schema / properties / zone / description
        Previous value: -"Имя зоны"New value: +"Имя Р·РѕРЅС‹"
    • Changeddelete_dns_subdomain3 fields changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
      • changedInput schema / properties / id / description
        Previous value: -"ID сабдомена"New value: +"ID сабдомена"
      • changedInput schema / properties / server_id / description
        Previous value: -"ID сервера"New value: +"ID сервера"
    • Changeddelete_dns_zone2 fields changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
      • changedInput schema / properties / zone / description
        Previous value: -"Имя зоны"New value: +"Имя Р·РѕРЅС‹"
    • Changeddelete_iso_image1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeddiscard_rhr_request1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeddrop_nat1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changededit_dns_subdomain3 fields changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
      • changedInput schema / properties / id / description
        Previous value: -"ID сабдомена"New value: +"ID сабдомена"
      • changedInput schema / properties / server_id / description
        Previous value: -"ID сервера"New value: +"ID сервера"
    • Changedgenerate_due_invoice1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedget_dns_zone1 field changed
      • changedInput schema / properties / zone / description
        Previous value: -"Имя зоны, например example.com"New value: +"Имя Р·РѕРЅС‹, например example.com"
    • Changedlist_dns_subdomains1 field changed
      • changedInput schema / properties / server_id / description
        Previous value: -"ID сервера"New value: +"ID сервера"
    • Changedlist_iso_images3 fields changed
      • addedInput schema / properties / id
        Added value: +{
        +  "description": "ID сервера в InvAPI (обязателен)",
        +  "type": "integer"
        +}
      • removedInput schema / properties / server_id
        Removed value: -{
        -  "description": "ID сервера (обязателен для клиентских ключей)",
        -  "type": "integer"
        -}
      • addedInput schema / required
        Added value: +[
        +  "id"
        +]
    • Changedmass_pay1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedmount_iso1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedport_off1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedport_on1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedremove_ipmi_user1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedremove_snapshot1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedremove_static_nat1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedrequest_cancellation1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedrequest_rh_check1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedrequest_rh_kvm1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedrequest_rh_power_off1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedrequest_rh_power_on1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedrequest_rh_pxe_boot1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedrequest_rh_reboot1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedrequest_sales_assistance1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedreset_billing_password1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedreset_ipmi1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedrestore_snapshot1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedrun_post_install_task1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeds3_cancel_account_deletion1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeds3_create_account1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeds3_create_bucket1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeds3_create_order1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeds3_delete_account1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeds3_delete_bucket1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeds3_delete_file1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeds3_delete_payment_account1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changeds3_update_traffic_info1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedset_boot_device1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedset_main_ip1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedunblock_ip1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedunmount_iso1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedupdate_api_key1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedupdate_billing_client1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedupdate_contact1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedupdate_ptr_record1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
    • Changedupload_iso1 field changed
      • changedInput schema / properties / confirm / description
        Previous value: -"Нужно true, чтобы выполнить операцию."New value: +"Must be true to run the operation."
  5. 132 tool updatesv1.0.0
    • First observedadd_contact
    • First observedadd_dns_domain
    • First observedadd_dns_record
    • First observedadd_dns_subdomain
    • First observedadd_dns_zone
    • First observedadd_ipmi_user
    • First observedadd_iso_image
    • First observedadd_rhr_comment
    • First observedadd_static_nat
    • First observedapply_credit
    • First observedblock_ip
    • First observedcall_api_raw
    • First observedcheck_task
    • First observedclear_pxe_config
    • First observedclear_static_nat
    • First observedcreate_addfunds_invoice
    • First observedcreate_api_key
    • First observedcreate_pxe_config
    • First observedcreate_reinstall_task
    • First observedcreate_rhr_request
    • First observedcreate_snapshot
    • First observeddelete_api_key
    • First observeddelete_cancellation_request
    • First observeddelete_contact
    • First observeddelete_dns_domain
    • First observeddelete_dns_record
    • First observeddelete_dns_subdomain
    • First observeddelete_dns_zone
    • First observeddelete_iso_image
    • First observeddiscard_rhr_request
    • First observeddownload_invoice
    • First observeddrop_nat
    • First observededit_dns_subdomain
    • First observedgenerate_due_invoice
    • First observedget_account_info
    • First observedget_api_key
    • First observedget_api_key_history
    • First observedget_billing_client
    • First observedget_cancellation_requests
    • First observedget_contacts
    • First observedget_credit_history
    • First observedget_dns_zone
    • First observedget_invoice
    • First observedget_invoices
    • First observedget_ip_info
    • First observedget_network_status
    • First observedget_payment_gateway
    • First observedget_port_graphs
    • First observedget_power_status
    • First observedget_preset
    • First observedget_preset_pricing
    • First observedget_ptr_record
    • First observedget_server
    • First observedget_server_billing_data
    • First observedget_server_invoices
    • First observedget_server_sensors
    • First observedget_server_tags
    • First observedget_servers
    • First observedget_snapshots
    • First observedget_stock_server
    • First observedget_transactions
    • First observedget_uploaded_isos
    • First observedget_vm_engine
    • First observedget_vm_stats
    • First observedget_vnc_console
    • First observedlist_api_keys
    • First observedlist_dns_domains
    • First observedlist_dns_subdomains
    • First observedlist_dns_zones
    • First observedlist_iso_images
    • First observedlist_os
    • First observedlist_post_install_tasks
    • First observedlist_preset_groups
    • First observedlist_presets
    • First observedlist_rhr_requests
    • First observedlist_server_api_keys
    • First observedlist_software
    • First observedlist_stock_servers
    • First observedlist_traffic_plans
    • First observedlogout
    • First observedmass_pay
    • First observedmount_iso
    • First observedorder_server
    • First observedport_off
    • First observedport_on
    • First observedpower_off
    • First observedpower_on
    • First observedreboot_server
    • First observedreinstall_server
    • First observedremove_ipmi_user
    • First observedremove_snapshot
    • First observedremove_static_nat
    • First observedrequest_cancellation
    • First observedrequest_rh_check
    • First observedrequest_rh_kvm
    • First observedrequest_rh_power_off
    • First observedrequest_rh_power_on
    • First observedrequest_rh_pxe_boot
    • First observedrequest_rh_reboot
    • First observedrequest_sales_assistance
    • First observedreset_billing_password
    • First observedreset_ipmi
    • First observedrestore_snapshot
    • First observedrun_post_install_task
    • First observeds3_cancel_account_deletion
    • First observeds3_create_account
    • First observeds3_create_bucket
    • First observeds3_create_order
    • First observeds3_delete_account
    • First observeds3_delete_bucket
    • First observeds3_delete_file
    • First observeds3_delete_payment_account
    • First observeds3_get_buckets
    • First observeds3_get_buckets_via_queue
    • First observeds3_get_files
    • First observeds3_get_locations
    • First observeds3_get_users
    • First observeds3_list_plans
    • First observeds3_show_key
    • First observeds3_update_traffic_info
    • First observedsearch_presets
    • First observedsearch_servers_by_tag
    • First observedset_boot_device
    • First observedset_main_ip
    • First observedstart_novnc
    • First observedunblock_ip
    • First observedunmount_iso
    • First observedupdate_api_key
    • First observedupdate_billing_client
    • First observedupdate_contact
    • First observedupdate_ptr_record
    • First observedupload_iso

TDQS

B3.1/5.0

Scored across 132 tools

Disambiguation2/5

The 132-tool surface contains several overlapping or duplicate operations: s3_get_buckets and s3_get_buckets_via_queue are explicitly the same, DNS domain vs. zone tools are subtle, and automated power tools overlap with Remote Hands power requests. Descriptions often clarify intent, but the sheer breadth and multiple delete/billing/S3 variants create real misselection risk.

Naming Consistency4/5

Most names use readable snake_case with clear verb_noun or resource_noun_action patterns, and S3 tools are consistently namespaced with s3_. There are minor deviations such as power_on, logout, check_task, and call_api_raw, but overall naming is predictable.

Tool Count1/5

132 tools is far beyond a well-scoped MCP surface and exceeds the 50+ extreme-mismatch threshold. While hosting APIs are broad, this many tools in one server is overwhelming and makes tool selection costly even with grouping.

Completeness4/5

Coverage is very broad: server lifecycle, power, network, DNS, snapshots, ISO, billing, S3, API keys, presets, stock servers, and Remote Hands are all represented. Minor lifecycle gaps remain and call_api_raw exists as a fallback, so the surface is near-complete rather than perfectly closed.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables users to manage Hetzner Cloud resources including servers, load balancers, and volumes through natural language commands. It facilitates infrastructure operations such as resource creation, security configuration, and real-time pricing queries within AI-powered environments.
    69 npm
    1
    -