iikocloud-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@iikocloud-mcplist my organizations"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
iikocloud-mcp
MCP-сервер поверх Iikocloud-manager
(IikoCloudApiClientManager): интроспекцией менеджера сервер отдаёт 236 методов iikoCloud
в 22 доменах как MCP-тулы, но запускается с вариативно задаваемым подмножеством, а не
целиком. Мультиарендный: учётные данные iikoCloud передаёт клиент через канал
транспорта (HTTP-заголовки под TLS или переменные окружения для stdio) — секреты никогда
не попадают в аргументы тулов, а значит и в контекст модели или логи.
Прямой аналог iikoserver-mcp: тот же принцип,
та же модель безопасности, отличия — только там, где различаются сами API (auth v2 вместо
логина/пароля, асинхронные команды с опросом, кэш справочников).
Транспорты:
stdioи streamable-HTTP.Отбор тулов: по домену, по типу операции (read/write), по именам/glob, из разных источников (CLI / env / YAML).
Безопасность по умолчанию: read-only; запись — явным опт-ином, под подтверждением.
Зачем подмножество, а не все 236 тулов
В контекст модели при каждом подключении идут и JSON-схемы тулов, и их описания — считать надо обе части (здесь и далее вес в символах: у схем это практически байты, у русских описаний в UTF-8 байт вдвое больше).
Подмножество | Тулов | Схемы | Описания | Итого в контекст |
все | 236 | ~356 КБ | ~83 КБ | ~439 КБ |
только read | 106 | ~95 КБ | ~29 КБ | ~124 КБ |
домен | 93 | ~114 КБ | ~23 КБ | ~137 КБ |
Сервер сам вырезает из схем служебные поля, которые ничего не дают модели (pydantic-title,
дублирующий имя свойства, и описания вида «Latitude.», буквально повторяющие имя поля): без
обрезки схемы весили бы ~433 КБ вместо ~356 КБ, то есть экономия около 18% (на описания обрезка
не влияет). Самый тяжёлый отдельный тул — discounts__calculate_loyalty_checkin, 18.9 КБ схемы.
Из 236 методов 106 — read, 130 — write; ошибок схематизации при интроспекции — 0,
регистрируются все.
Отсюда практический совет: выбирайте --domains под конкретную задачу клиента, а не
поднимайте сервер со всем каталогом — это и экономит контекст модели, и сокращает
поверхность записи.
Related MCP server: OpenAPI MCP Server
Установка
# как пакет в активированное окружение: даёт команду iikocloud-mcp на PATH
uv pip install "iikocloud-mcp @ git+https://github.com/UserVanya/Iikocloud-mcp.git"
# или для разработки: команда доступна только как `uv run iikocloud-mcp`,
# на PATH сама по себе она не появляется
git clone https://github.com/UserVanya/Iikocloud-mcp.git && cd Iikocloud-mcp && uv syncТребуется Python 3.12+ и креды iikoCloud auth v2 (api_key, app_id, client_secret).
Примеры ниже написаны для второго (dev) пути, поэтому идут с префиксом uv run. Если пакет
установлен первым способом и его окружение активировано, префикс не нужен.
Быстрый старт
# stdio: клиент запускает сервер как подпроцесс, креды — через env
IIKOCLOUD_API_KEY=key IIKOCLOUD_APP_ID=app IIKOCLOUD_CLIENT_SECRET=secret \
uv run iikocloud-mcp --transport stdio --domains organizations,menu
# HTTP: сервер на VPS, только чтение по организациям и меню.
# Слушаем 127.0.0.1 — TLS терминирует reverse-proxy на этом же хосте.
uv run iikocloud-mcp --transport http --host 127.0.0.1 --port 8000 \
--domains organizations,menu,dictionaries,addresses--host 0.0.0.0 оправдан только если TLS-прокси работает на другом хосте: сам сервер
говорит по HTTP без шифрования, а в каждом запросе едут X-Iikocloud-Api-Key,
X-Iikocloud-App-Id и X-Iikocloud-Client-Secret. Открытый в интернет порт — это те же
креды открытым текстом (см. Безопасность).
Тот же результат — через конфиг-файл (см. server.example.yml):
cp server.example.yml server.yml # server.yml в .gitignore
uv run iikocloud-mcp --config server.ymlОтбор тулов
Тул включается, если: домен разрешён И тип операции разрешён И (нет allow ИЛИ
имя совпало с allow) И имя не совпало с deny. deny всегда побеждает allow.
Имена тулов — <домен>__<метод> (например menu__get_nomenclature,
deliveries__create_delivery_order). 22 домена: addresses, banquets,
customer_categories, customers, deliveries, deliveries_retrieve,
delivery_restrictions, dictionaries, discounts, drafts, employees,
invoice_processing, marketing_sources, menu, messages, notifications,
operations, orders, organizations, report, terminal_groups, webhooks.
Способ | CLI | env | YAML |
Домены |
|
|
|
Разрешить запись |
|
|
|
Allowlist имён/glob |
|
|
|
Denylist имён/glob |
|
|
|
Выключить подтверждение записи |
|
|
|
Фолбэк без elicitation |
|
|
|
Лимит JSON-ответа (символы) |
|
|
|
Таймаут вызова, с |
|
|
|
Потолок окна лимитера, с |
|
|
|
TTL кэша справочников, с |
|
|
|
Потолок записей кэша |
|
|
|
Хост / порт |
|
|
|
Транспорт |
|
|
|
Приоритет источников: CLI > env > YAML-файл. Источник, задавший поле, заменяет его
целиком (списки не мержаются). Путь к YAML — --config server.yml или
IIKOCLOUD_MCP_CONFIG. См. server.example.yml.
--allow-write — это только включение записи со стороны CLI: чтобы выключить её обратно,
просто не передавайте флаг. У env-переменной IIKOCLOUD_MCP_ALLOW_WRITE есть и
включающее, и выключающее значение (1/0, true/false и т. п.).
Примеры:
# всё чтение по доставкам, но без карт лояльности
uv run iikocloud-mcp --transport http --domains deliveries,deliveries_retrieve \
--deny '*loyalty*'
# запись включена, но без операций очистки
uv run iikocloud-mcp --transport http --allow-write --deny '*__clear_*'Пустое значение — это осознанный ноль, а не «без ограничения»: --domains '' (и domains: []
в YAML) даёт сервер без единого тула, а не со всеми 236. Так значение из файла можно очистить
из CLI. Про непонятое имя домена и про нулевую регистрацию сервер пишет в лог предупреждение.
Передача учётных данных
Секреты идут только по каналу транспорта, не как аргументы тулов — модель их не видит.
HTTP-заголовок | env для stdio | |
API-ключ |
|
|
App ID |
|
|
Client secret |
|
|
Фолбэка на Authorization: Basic нет: он вмещает два секрета, а iikoCloud требует три.
Для HTTP-транспорта обязателен TLS — терминируйте HTTPS на reverse-proxy перед сервером,
заголовки с кредами передавайте только под ним. Отсюда и дефолт --host 127.0.0.1: сам
сервер шифрования не делает, поэтому наружу он должен смотреть только через прокси.
stdio — переменные окружения подпроцесса (см. выше), сервер как локальный процесс
отдельного TLS не требует.
Один сервер обслуживает несколько аккаунтов iikoCloud: экземпляр менеджера кэшируется по
отпечатку sha1(api_key:app_id:client_secret) (ApiCredentials.key_id). Все три секрета
обязательны в отпечатке: если бы он строился только по api_key и app_id, вызывающий с
верным ключом и app_id, но чужим или неверным client_secret, получил бы доступ к кэшу и
уже авторизованной сессии другого арендатора.
Подключение MCP-клиента
stdio (например, конфиг Claude Desktop):
{
"mcpServers": {
"iikocloud": {
"command": "iikocloud-mcp",
"args": ["--transport", "stdio", "--domains", "organizations,menu,dictionaries"],
"env": {
"IIKOCLOUD_API_KEY": "key",
"IIKOCLOUD_APP_ID": "app",
"IIKOCLOUD_CLIENT_SECRET": "secret"
}
}
}
}command должен быть исполняемым файлом: голое iikocloud-mcp работает, только если пакет
установлен через uv pip install в окружение, видимое клиенту. Для dev-установки укажите
"command": "uv" и "args": ["run", "--directory", "/путь/к/Iikocloud-mcp", "iikocloud-mcp", "--transport", "stdio", ...].
Удалённый HTTP:
{
"mcpServers": {
"iikocloud": {
"url": "https://mcp.example.com/mcp",
"headers": {
"X-Iikocloud-Api-Key": "key",
"X-Iikocloud-App-Id": "app",
"X-Iikocloud-Client-Secret": "secret"
}
}
}
}Программный API
from iikocloud_mcp import ServerConfig, ToolFilter, create_server
cfg = ServerConfig(
# host="0.0.0.0" — только если TLS терминирует прокси на другом хосте
transport="http", host="127.0.0.1", port=8000,
tool_filter=ToolFilter(domains={"menu", "dictionaries"}, operations=frozenset({"read"})),
)
server = create_server(cfg) # FastMCP с зарегистрированными тулами
server.run(transport="streamable-http")Подтверждение операций записи
Write-тулы по умолчанию требуют подтверждения пользователя перед мутацией — сервер
вызывает MCP-elicitation и выполняет метод только при явном accept. Это серверный гейт, а
не просто хинт клиенту (destructiveHint): даже клиент с авто-подтверждением тулов не
выполнит запись без ответа пользователя. Политику задаёт оператор при запуске (не LLM):
по умолчанию — подтверждение включено, фолбэк
closed;--write-fallback open— если клиент не умеет elicitation, выполнять запись без подтверждения (оператор берёт риск на себя); по умолчанию (closed) такая запись блокируется;--no-confirm-writes— полностью отключить гейт (для доверенной автоматизации).
Встроенные подсказки
Сервер обогащает описание и результат каждого тула, не полагаясь на память модели.
Асинхронные команды. 42 тула из 236 возвращают только correlationId — это квитанция
о принятой команде, самого результата в ответе нет. Описание такого тула получает пометку:
⏳ Асинхронная команда: ответ содержит только correlationId, результата в нём нет. Чтобы узнать исход, вызовите
operations__wait_commandс этим correlationId и organizationId.
Ещё у 8 write-тулов ответ содержательный, и сервер ищет в нём поле creationStatus: если оно
равно InProgress, к JSON-результату добавляется ключ _iikocloudMcpHint с той же инструкцией —
опросить operations__wait_command. Реально сработать подсказка может у 4 из них — тех, что
возвращают OrderInfo-подобную структуру: deliveries__create_delivery_order,
drafts__commit_delivery_draft, orders__create_table_order, banquets__create_reserve.
У остальных четырёх поля creationStatus в ответе нет вовсе: drafts__create_delivery_draft и
drafts__save_delivery_draft возвращают CreateOrSaveDraftResponse (correlationId, orderId),
employees__open_personal_session и employees__close_personal_session —
correlationId и error. Проверка идёт по значению в ответе, а не по типу, поэтому лишнего
она не добавляет.
«Где взять ID». Схема параметров каждого тула сверяется с курируемой картой полей вида
organizationId → organizations__get_organizations,
terminalGroupId → terminal_groups__get_terminal_groups,
productId → menu__get_nomenclature и т. д. Совпавшие поля попадают в описание тула строкой
«Где взять ID: …», так что модель не пытается угадывать идентификаторы.
Как часто можно звать. Если у метода есть запись в лимитере менеджера, описание получает
приписку вида «Троттлинг MCP-сервера (не лимит iikoCloud): не чаще N запрос(ов) за M с —
кэшируйте результат в диалоге». Приписка намеренно говорит о клиентском троттлинге этого
сервера (значения лимитера менеджера, уже с потолком --max-rate-window), а не о лимите
самого API: настоящие лимиты iikoCloud бывают жёстче и описаны в докстрингах SDK, которые
сервер не трогает (например, webhooks__update_webhook_settings — примерно 1 обновление в час).
У 17 тулов записи в лимитере нет: это тулы-обёртки вроде
customers__get_customer_by_phone, который под капотом зовёт лимитируемый
customers__get_customer_info. Молчание модель прочла бы как «ограничений нет», поэтому такие
тулы получают общую приписку: своего троттлинга нет, но вызов расходует квоту нижележащего
метода. Ручной карты «обёртка → метод» нет намеренно — она протухала бы при каждом изменении
менеджера.
Версии внешнего меню. У menu__get_external_menu_by_id результат — объединение
ExternalMenuV2 | ExternalMenuV3 | ExternalMenuV4: форма ответа зависит от параметра
version. Описание тула вручную перечисляет все переименования полей между версиями и
рекомендует явно указывать version=4.
Адрес доставки. У deliveries__create_delivery_order описание отдельно поясняет: формат
адреса задаёт сама организация (addressFormatType, значение — из
organizations__get_organization_settings), улицу можно передать и id
(addresses__get_streets_by_city), и просто name вместе с city, а город указывать нужно
всегда — он определяет разбор остального адреса.
Кэш справочников
15 из 22 тулов-источников идентификаторов (тех самых, куда отправляют подсказки «где взять ID») допускают не чаще одного запроса в 60 секунд — а диалог с моделью легко делает несколько похожих запросов подряд. Поэтому ответы примерно 27 справочных read-тулов (организации, домены справочников, адреса, меню, курьеры и т. п.) кэшируются в памяти процесса с TTL.
--cache-ttl— время жизни записи в секундах, по умолчанию300;0полностью выключает кэш.--cache-max-entries— потолок числа записей (LRU-вытеснение), по умолчанию256; обязателен, потому что ответmenu__get_nomenclatureможет весить мегабайты.
Ключ кэша учитывает аккаунт (по хэшу кредов, не сами секреты) и аргументы вызова — на HTTP-транспорте один процесс безопасно обслуживает разных арендаторов. Инвалидация — только по TTL.
Лимит размера ответа и таймаут вызова
По умолчанию лимита на размер ответа нет. Если установить положительный
--max-output-chars, слишком длинный результат вернётся не оборванным текстом, а корректным
JSON-объектом:
{
"truncated": true,
"totalChars": 250000,
"limitChars": 100000,
"contentPrefix": "..."
}contentPrefix — начало полного JSON-результата, так модель может распознать усечение и
сузить запрос вместо того, чтобы принять обрезанный ответ за полный.
--call-timeout (по умолчанию 120 с) ограничивает время одного вызова тула — лимитер
менеджера иначе просто блокирует запрос без таймаута. При превышении сервер тоже возвращает
корректный JSON, а не обрыв соединения:
{
"timeout": true,
"tool": "menu__get_nomenclature",
"timeoutSeconds": 120,
"reason": "Вызов не уложился в лимит времени. Обычная причина — rate limit метода: лимитер ждёт освобождения окна. Повторите позже или сузьте запрос."
}Текст reason у write-тулов другой, и это принципиально: asyncio.wait_for отменяет только
ожидание внутри сервера, а запрос в iikoCloud уже ушёл и мог там выполниться — вместе с
настоящим correlationId, который при таймауте теряется. Поэтому write-тул на таймауте
сообщает, что операция могла пройти, что повтор создаст дубль (второй заказ, вторую бронь,
второе пополнение) и что проверять надо чтением — для доставок семейством
deliveries_retrieve__*.
--max-rate-window (по умолчанию 120 с) отдельно зажимает окна лимитера методов сверху: у
методов с окном шире потолка (например 1 запрос/1800 с) окно укорачивается до потолка при
сохранении числа запросов — иначе --call-timeout по умолчанию не успел бы дождаться
собственного окна лимитера.
Тесты
uv run pytest -m unit -v # 196 тестов, быстро, без сети и кредов
uv run pytest -m integration -v # 4 read-only теста; без креда IIKOCLOUD_TEST_CONFIG — skip, не failИнтеграционный набор (tests/integration/) гоняет реальные тулы через _make_tool против
живого iikoCloud: получение организаций, camelCase-алиасы в ответе, попадание в кэш при
повторном вызове, усечение по max_output_chars. Он только читающий — write-тестов против
живого API нет и не будет: мутационный путь проверяется моками в tests/test_server.py.
Креды берёт из YAML по пути IIKOCLOUD_TEST_CONFIG (секция read) — см.
config.test.example.yml и .env.example.
Скопируйте оба в config.test.yml и .env: оба файла в .gitignore, секреты в репозиторий
не попадают. Без IIKOCLOUD_TEST_CONFIG в окружении фикстура read_creds делает
pytest.skip, а не падение, — так что набор безопасно запускать и на машине без кредов.
Безопасность
Секреты не попадают в аргументы тулов (модель их не видит), не логируются, живут только в памяти на время сессии.
Для HTTP обязателен TLS (reverse-proxy). Заголовки с кредами — только под HTTPS.
Дефолт и все примеры —
host: 127.0.0.1.0.0.0.0открывает нешифрованный порт с кредами в заголовках; он оправдан только когда TLS-прокси стоит на другом хосте.Своих гейтов по организациям или app_id сервер не вводит — доступ ограничивают настройки самого iikoCloud-аккаунта.
Дефолт read-only: мутации требуют явного
--allow-write.Дефолт: write-тулы требуют подтверждения пользователя (elicitation, см. выше).
Документация дизайна
Спецификация:
docs/superpowers/specs/План реализации:
docs/superpowers/plans/
Available Tools
106 toolsaddresses__get_citiesARead-only
Города организаций (ответ сгруппирован per-organization). Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to repeat that. It adds meaningful behavioral context: the MCP-server throttling (1 request per 60 seconds) and a caching recommendation, plus the response grouping per-organization. This goes beyond annotations and gives the agent practical operational knowledge.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences: purpose, dependency, and throttling/caching. Each sentence earns its place with no redundant wording, and the key purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a single request object, the description covers the purpose, the source of required IDs, the rate limit, and caching advice. The response grouping is also noted. Missing explicit response format details are minor since annotations already convey safety, and the schema covers parameter definitions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions that organizationIds can be obtained from organizations__get_organizations, which is a more actionable pointer than the schema's reference to the raw API operation. However, it does not elaborate on includeDeleted or other parameter nuances. Since schema coverage is 0% and the schema itself already documents both parameters, the description partially compensates with the source hint but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Города организаций' (Cities of organizations) with the added detail that the response is grouped per-organization. This clearly identifies the resource and distinguishes it from sibling tools like addresses__get_regions and addresses__get_streets_by_city. The verb and resource are specific, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a dependency hint by pointing to organizations__get_organizations for obtaining organizationIds, which is actionable usage guidance. However, it does not explicitly state when to use this tool over alternatives or when not to use it, so the guidance is partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
addresses__get_regionsARead-only
Регионы (районы) организаций. Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/destructive annotations, the description discloses a precise operational constraint: MCP-server throttling is limited to 1 request per 60 seconds, distinguished from iikoCloud limits, and it advises caching results. This is high-value behavior an agent must know before invoking the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences cover purpose, parameter source, and rate-limit/caching guidance. Each sentence adds distinct value, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only one-parameter tool, the description covers purpose, parameter acquisition, and a critical rate limit. It does not describe the exact return shape, and no output schema exists, but the absence is minor given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 0%, the description compensates by explaining where the single parameter organizationIds comes from via organizations__get_organizations. It does not restate the array/UUID format, but for one parameter the source mapping is the most important missing semantic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource and scope: 'Регионы (районы) организаций' (regions/districts of organizations), so an agent can infer the tool returns region data for given organizations. It lacks an explicit verb and does not contrast with sibling address tools, but it is still specific and unambiguous enough to be useful.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage context: where to get organizationIds ('organizationIds → organizations__get_organizations') and instructs caching because of MCP-server throttling. It does not state explicit exclusion or alternative conditions, but the provided context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
addresses__get_streets_by_cityARead-only
Улицы города (одиночная organization_id). Где взять ID: cityId → addresses__get_cities; organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only/non-destructive. The description adds an explicit rate-limit notice (1/60s) and advises caching the result, which are non-obvious behavioral traits beyond the structured annotations. It doesn't describe return format, but that's less critical for a lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, each with a distinct job: state scope, give ID sources, and warn about throttling. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool, the description covers scope, parameter provenance, and an important rate limit. Still, without an output schema, it never states the return shape (e.g., list of street names/IDs), and doesn't mention includeDeleted semantics, leaving the agent with minor uncertainty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds source instructions for the two required IDs, which is genuinely useful given the schema has no top-level descriptions. However, it doesn't clarify the nested request wrapper or the includeDeleted parameter, so it only partially compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states the resource ('streets of city') and a key constraint ('single organization_id'), which is more specific than the name alone. It does not use an explicit verb, and it doesn't directly differentiate from addresses__get_streets_by_id, but the ID-sourcing hints and the 'single organization_id' qualifier give enough signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains where to obtain cityId and organizationId, and the single-organization qualifier hints at a use case. However, it never explicitly contrasts with alternatives like addresses__get_streets_by_id or tells the agent when to prefer this tool, so routing is left mostly to the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
addresses__get_streets_by_idARead-only
Улицы по ids или classifierIds (correlation_id в ответе optional). Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds substantial behavioral context beyond that: an MCP-specific rate limit (1 request per 60s), a caching recommendation for dialog use, and a note that correlation_id in the response is optional. This is exactly the extra context that helps an agent plan calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short Russian sentences, each earning its place: purpose, ID provenance, and operational constraints (throttling/caching). Front-loaded and free of redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Combined with the schema and annotations, the description covers safety (read-only) and key operational constraints (rate limit, caching). But it does not describe the return shape (no output schema exists) or clarify whether at least one of ids/classifierIds should be supplied when both are nullable. These are meaningful gaps for a tool with a nested request object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions ids, classifierIds, and points to how to source organizationId, partially mapping to the schema's inner fields. However, schema description coverage is 0% at the top-level 'request' parameterwaters, and the description does not explain how to structure the wrapper request (e.g., that organizationId is required while ids and classifierIds are both nullable alternatives). It partially compensates but leaves the relationship between parameters ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource ('streets') and the lookup keys ('ids or classifierIds'), which distinguishes it from sibling tools like addresses__get_streets_by_city. It lacks an explicit verb, but the tool name supplies 'get'. The optional correlation_id note adds minor scope clarification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No comparison with alternatives such as addresses__get_streets_by_city or guidance on when to prefer this tool. The only usage advice is a provenance chain for organizationId (organizations__get_organizations) and a throttling/caching tip, which are operational but not decision-oriented.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
banquets__get_reserve_available_organizationsBRead-only
Организации, доступные для резервирования. Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 20 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds meaningful behavioral context beyond annotations: a concrete MCP-server throttle limit (20 requests per 60 seconds) and a caching recommendation. This is valuable operational transparency, though it does not describe response contents or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the purpose, then gives the ID source, then the throttling/caching constraint. Every clause earns its place and the information is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool, the core is covered: purpose, ID source, and throttling/caching. But it lacks explicit usage guidance, an explanation of the required 'request' object structure, and any indication of the output format (no output schema exists). It is adequate but leaves several gaps an agent must resolve via schema or trial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds useful meaning to organizationIds by pointing to organizations__get_organizations as the source of IDs. However, it does not explain the required 'request' wrapper object or the other nested fields (includeDisabled, returnExternalData, returnAdditionalInfo). With schema description coverage reported at 0% for the top-level parameter, the parameter semantics are under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource (organizations) and the scope ('available for reservation') in the opening phrase. It also references organizations__get_organizations as the source for IDs, which helps differentiate it from the general organizations tool. However, it uses a noun phrase rather than an explicit verb like 'get' or 'list', so it is clear but not maximally explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 or when not to use it. The description only provides an ID-source pointer (organizations__get_organizations) and throttling/caching advice. Usage is implied by the purpose but never explicitly stated, and no sibling or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
banquets__get_reserve_restaurant_sectionsBRead-only
Секции (залы) ресторана со схемой столов. Где взять ID: terminalGroupIds → terminal_groups__get_terminal_groups. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 20 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description is not required to repeat that. It adds valuable behavioral context: the MCP server throttling (20 requests per 60 seconds) and the recommendation to cache results in the dialog. This goes beyond annotations and helps agents plan calls safely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences: purpose, parameter provenance, and throttling advice. The information is front-loaded and every sentence contributes critical operational context. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose, points to the ID source, and warns about rate limits, which is good for a read-only tool. However, it does not mention the 'returnSchema' parameter's effect on the output shape (despite the description claiming 'with table layout') and does not describe the response format (no output schema exists). This leaves some ambiguity for an agent about what fields to expect and how to toggle layout information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% from the description text, so the description must compensate. It only addresses terminalGroupIds by pointing to the sibling tool for getting the IDs, which adds value. However, it does not explain 'revision' or 'returnSchema' (which controls the table layout output mentioned in the description). The schema's own property descriptions carry that burden, but the description does not fully compensate for the gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource clearly: 'Секции (залы) ресторана со схемой столов' (restaurant sections/halls with table layout). Although it lacks an explicit verb, the intent is unambiguous and it distinguishes from generic 'get sections' by mentioning table layout. It is not a tautology and adds specific meaning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a prerequisite pointer for obtaining terminalGroupIds ('Где взять ID: terminalGroupIds → terminal_groups__get_terminal_groups') but does not explain when to choose this tool over alternative banquet tools (e.g., banquets__get_restaurant_sections_workload). No exclusions or alternative comparisons are given. The guidance is about input preparation, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
banquets__get_reserve_statuses_by_idARead-only
Статусы резервов по их идентификаторам. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 20 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only and non-destructive. The description adds genuinely useful behavioral context: MCP-server throttling (no more than 20 requests per 60 seconds), explicitly distinguishing it from the iikoCloud limit, and instructing the agent to cache results in the dialog.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of three short, purposeful sentences: purpose first, then ID sourcing, then throttling/caching advice. There is no filler, and the most important operational constraint is both explicit and actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only ID lookup, the description covers the operation, how to obtain the organization ID, and the server rate limit. It does not describe the exact response shape or where reserveIds come from, but the schema and annotations cover the remaining structural requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% top-level schema description coverage, the description must compensate for parameter documentation, and it partially does: it maps organizationId to organizations__get_organizations and implies that reserveIds are the identifiers being queried. However, it does not explain sourceKeys or the nested request structure fully, so the compensation is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the operation clearly: it returns reserve statuses for the supplied identifiers ('Статусы резервов по их идентификаторам'). It is specific about the resource and lookup key, but it does not name or contrast sibling banquets lookup tools, so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explain when to choose this tool over sibling banquets tools such as get_reserve_available_organizations or get_reserve_terminal_groups. It only gives a prerequisite hint about obtaining organizationId from organizations__get_organizations, which is not selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
banquets__get_reserve_terminal_groupsARead-only
Терминальные группы организаций, доступные для резервирования. Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 20 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds a specific MCP-server throttling limit (20 requests/60s) and advises caching the result in the dialogue, which is useful operational behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each with a distinct purpose: what the tool returns, how to get input, and a usage constraint. The most important information is front-loaded, and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only lookup, the description covers the return subject, input sourcing, and an operational constraint (caching/throttling). It doesn't describe the output structure, but with no output schema and low complexity, this is acceptable especially given the annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the top level, but the description compensates by mapping organizationIds to the sibling tool organizations__get_organizations, telling the agent exactly where to obtain valid IDs. It reinforces the nested schema's own note, adding a direct MCP-level pointer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource ('terminal groups of organizations') with the key qualifier 'available for reservation', which distinguishes it from the generic terminal-group siblings like terminal_groups__get_terminal_groups. It uses a noun phrase rather than an explicit verb, but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a reservation use case via 'available for reservation' and gives a concrete prerequisite: where to obtain organizationIds (organizations__get_organizations). It does not explicitly contrast this tool with generic terminal-group tools or state when not to use it, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
banquets__get_restaurant_sections_workloadBRead-only
Загруженность секций ресторана с указанной даты. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 20 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses a key behavioral trait: the MCP-server throttling limit (no more than 20 requests per 60 seconds) and advises caching the result. This goes beyond the annotations (readOnlyHint, destructiveHint) by adding operational constraints. It does not contradict the annotations; readOnlyHint aligns with the read-only nature implied. The description could also mention what happens if the limit is exceeded, but the current disclosure is valuable and specific.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two short sentences. It front-loads the primary purpose and immediately adds the critical throttling constraint, which is essential for proper usage. There is no redundant or filler content; every word contributes to the tool's understanding. This is a model of efficiency for a tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a read-only query with no output schema, so the description should explain what the returned workload data looks like or how to interpret it. It does not. It also omits any explanation of the parameters beyond the schema's own descriptions, and it does not clarify the meaning of 'workload' (e.g., occupancy, reservations count, capacity). Given that the tool has multiple parameters and no output schema, the description is insufficient for an agent to call it correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0% — the tool description provides no explanation of the parameters (dateFrom, dateTo, restaurantSectionIds). While the input schema itself contains descriptions for each parameter, the description does not compensate for the low coverage. It adds no extra meaning about parameter formats, defaults, or how they relate to the workload query. The description's mention of 'from the specified date' loosely refers to dateFrom but does not clarify dateTo or the ID collection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose clearly: 'Загруженность секций ресторана с указанной даты' (Restaurant sections workload from the specified date). It identifies the resource (restaurant sections) and the action (retrieve workload), which distinguishes it from sibling tools like banquets__get_reserve_restaurant_sections (which deals with availability, not workload). However, it does not explicitly name the verb 'get', though the tool name implies it, and it lacks a direct statement of what the returned data represents beyond 'workload'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 any sibling tools or conditions that would make this the appropriate choice. It only offers operational advice (throttling and caching), not usage context. This is a significant gap, as the agent must infer the tool's place among many related banquet and reservation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customer_categories__get_customer_categoriesARead-only
Все категории гостей организации. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and destructive annotations, the description adds critical throttling information (1 request per 60 seconds) and advises caching the result in the dialog. This goes beyond what annotations provide and helps the agent avoid rate-limit errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no waste. It front-loads the purpose, then the ID source, then the throttling note—all essential information in logical order.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool, the description covers purpose, ID sourcing, and throttling. It doesn't describe the return structure, but 'Все категории' implies a list of categories, which is sufficient given the lack of an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description compensates by telling the agent exactly where to get the organizationId value (organizations__get_organizations). This adds meaning beyond the bare UUID type in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns all customer categories for an organization ('Все категории гостей организации'), specifying both the resource and scope. It distinguishes itself from sibling tools by being the only one focused on customer categories, and it is not a tautology of the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on where to obtain the required organizationId (from organizations__get_organizations), which is a key usage step. It doesn't compare to alternative tools, but none exist for this specific purpose, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers__get_customer_by_card_numberARead-only
Получить клиента по номеру карты лояльности. Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| card_number | Yes | ||
| organization_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds a valuable behavioral trait beyond annotations: it is a wrapper with no own throttling but consumes the underlying API quota, and advises caching the result in the dialog. This gives actionable rate-limit and caching context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first states the core function, the second delivers the behavioral warning and caching recommendation. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only lookup, the description covers the purpose and a key behavioral constraint, but it omits parameter semantics and any indication of return value structure. Since no output schema exists, the agent is left to infer what the returned customer object looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for missing parameter details. It does not: card_number is only labeled as the loyalty card number (redundant with the property name), and organization_id is not explained at all. No format, constraints, or purpose are added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific action: 'Получить клиента по номеру карты лояльности' (get customer by loyalty card number). This clearly identifies the verb, resource, and lookup key, distinguishing it from siblings like get_customer_by_phone or get_customer_by_id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit when-to-use or alternative guidance. The usage context is implied by the tool name and purpose statement, but no direction is given for choosing between this and sibling customer lookup tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers__get_customer_by_card_trackBRead-only
Получить клиента по магнитной дорожке карты. Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| card_track | Yes | ||
| organization_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool is a thin wrapper with no throttling of its own and that calls consume quota from the underlying API, recommending caching in the dialog. This is valuable behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, with the primary purpose first and the operational note second. No unnecessary words; each sentence adds relevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup with two parameters and no output schema, the description covers the purpose and one operational caveat (quota usage). However, it does not describe the return payload or clarify the precise format of card_track, leaving some gaps for an agent that needs to parse the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions and the description does not explain the parameters either. The names 'card_track' and 'organization_id' are somewhat self-explanatory, but the expected format of 'card_track' (e.g., raw magnetic stripe data, track 1/2/3) is not specified, so the description does little to compensate for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: retrieving a customer by the card's magnetic stripe. It is distinguishable from sibling tools that look up by phone, id, email, or card number, though the difference from 'by_card_number' is not explicitly spelled out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to choose this tool over alternatives like customers__get_customer_by_card_number, by_phone, or by_id. It only gives operational advice about caching and quota usage, which does not help with tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers__get_customer_by_emailARead-only
Получить клиента по email. Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | |||
| organization_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the already-provided readOnlyHint=true and destructiveHint=false annotations, the description discloses that this is a wrapper with no own throttling but consumes the underlying API method's quota, and explicitly recommends caching results in the dialogue. This is concrete operational context that annotations do not cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy: the first states the purpose, the second adds an operational caveat. The description is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-email tool, the description covers the core purpose and the quota/caching behavior. However, it omits the role of `organization_id` and gives no hint about the return value or error semantics, which matters given the absence of an output schema and zero parameter coverage. It is minimally workable but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for both parameters. It clarifies that `email` is the lookup key, but `organization_id` is left completely unexplained. The description adds minimal semantic value beyond the schema, leaving one of two required parameters underdocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Получить клиента по email' (Get customer by email). This clearly distinguishes it from sibling lookup tools that search by phone, ID, card track, or other criteria. The purpose is immediate and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to choose this tool over alternatives like customers__get_customer_by_phone or customers__get_customer_by_id. It offers caching advice for the tool itself, but that is not selection guidance. The intended usage is implied but not explicitly contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers__get_customer_by_idARead-only
Получить клиента по ID (loyalty customer id). Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| customer_id | Yes | ||
| organization_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true and destructiveHint=false, but the description adds significant behavioral insight: it is a wrapper with no own throttling, yet consumes the underlying API's quota. It also advises caching results in the dialogue. This goes beyond annotation data and helps the agent plan calls safely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences, with the core purpose front-loaded and the behavioral note placed after. Every word adds value, with no repetition or filler. It is structurally optimal for quick agent parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 low complexity, the description covers purpose and a key behavioral caveat. However, it omits meaning for organization_id and does not describe the return value or any pagination/error behavior (no output schema exists). An agent could call it, but might misuse organization_id or misinterpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for both parameters. It only clarifies customer_id as 'loyalty customer id'; organization_id is not mentioned at all. The description does not explain the role or format of organization_id, leaving a significant gap in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation: 'Get a customer by ID (loyalty customer id)'. It names the exact resource (customer) and the identifier type (loyalty customer id), distinguishing it from sibling lookup tools that use phone, email, or card track. This makes the purpose unambiguous and differentiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only implies usage: when you have a loyalty customer ID. It does not explicitly state when to use this tool versus alternatives like get_customer_by_phone or get_customer_by_email, nor does it provide conditions or exclusions. The caching advice is operational guidance, not tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers__get_customer_by_phoneBRead-only
Получить клиента по номеру телефона. Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | ||
| organization_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the annotations by disclosing that the tool is a wrapper with no own throttling but consumes the underlying API's quota, and advises caching the result in the dialog. This is valuable operational context that annotations (readOnlyHint=true, destructiveHint=false) do not cover. It does not describe return behavior, but given the safety annotations are already present, this extra context earns a high score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a single sentence for purpose plus a second sentence for behavioral advice. It is front-loaded with the core action and adds only essential context. No unnecessary fluff. This is efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 purpose and some behavioral nuances but omits parameter semantics (especially organization_id) and does not clarify what exactly is returned (though this is implied by the name). The caching advice is useful, but the missing parameter explanation makes it incomplete for a fully informed call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. It only mentions the phone number in the purpose, but does not explain the organization_id parameter, its format, or why it is required. The schema itself provides no descriptions, leaving the agent without adequate understanding of the second parameter. This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Get customer by phone number'. It is specific and distinct from sibling tools like get_customer_by_id, get_customer_by_email, and get_customer_by_card_track. However, it does not explicitly mention the organization scoping (which appears in the parameters), so it is slightly less than perfectly clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 customer lookup tools. It does not mention that this is the appropriate choice when only a phone number is available, nor does it explain alternatives or exclusions. The agent must infer usage 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.
customers__get_customer_infoBRead-only
Получить информацию о клиенте.
Args: request: Параметры запроса (phone, id, email, card и т.д.)
Returns: Ответ с информацией о клиенте Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 100 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context: MCP-server throttling (100 requests per 60s) and a caching recommendation, which goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with Args/Returns and separate notes, making it easy to scan. It front-loads the purpose and adds relevant operational advice (throttling, caching) without excessive verbosity. Minor redundancy in the Returns line, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of many sibling tools and the nested request schema, the description is incomplete. It does not explain the structure of the request object (the required 'type' and optional 'organizationId'), nor does it clarify how it differs from the specific customer lookup tools. The throttling note is useful but does not compensate for the missing schema explanation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists possible identifier types (phone, id, email, card) but does not explain the required 'type' field or how these map to it. The 'organizationId' parameter is only hinted via the note about where to get it. This is inadequate for an agent to correctly construct the request object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: 'Get customer information' with a list of possible identifiers (phone, id, email, card, etc.). It identifies the resource and action distinctly, but does not explicitly differentiate from the specific customers__get_customer_by_* siblings, which limits it to a 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 general tool versus the more specific customer lookup tools (by phone, by id, etc.). The description only mentions where to get organizationId and throttling/caching advice, which is operational context, not selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers__get_loyalty_countersARead-only
Счётчики лояльности гостей (кол-во заказов/суммы за периоды).
metrics — CounterMetric (OrdersCount/OrdersSum), periods — CounterPeriod (AllTime/Day/Week/Month/Quarter/Year). Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Read-only nature is already covered by annotations; the description adds a concrete MCP-server rate limit (10 requests per 60 seconds) and advises caching, which is useful behavioral context beyond the annotations. It does not cover response behavior, but that is less critical given the read-only annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with no fluff; the purpose is front-loaded, and the parameter/rate-limit notes are directly actionable. It could be slightly better structured but is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the nested request and no output schema, the description is usable but incomplete: it covers the main inputs and rate limit, but does not explain guestIds or the shape/interpretation of the returned counters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description compensates partly by explaining the metrics and periods enums and telling users where to get organizationId. However, it omits guestIds and does not describe the request wrapper, leaving a clear gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as guest loyalty counters with order counts/sums by period, which is specific enough to distinguish from generic customer info tools. However, it is a noun phrase without an explicit verb and does not name sibling differentiators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides operational guidance—where to obtain organizationId and a throttling/caching recommendation—but it does not explicitly address when to prefer this tool over siblings or state exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deliveries_retrieve__get_customer_deliveriesBRead-only
Заказы клиента по телефону за последние N дней (плоский список).
Даты — локальное время терминала (гарантия доступности — 7 дней). Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| phone | Yes | ||
| organization_ids | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only/non-destructive. The description adds valuable behavior beyond annotations: dates are in local terminal time, data availability is guaranteed for 7 days, the tool is a wrapper consuming underlying API quota, and caching is recommended. This is strong additional transparency, though it omits details like pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with no filler. The first front-loads the purpose, the second bundles three important operational constraints efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers critical operational details (timezone, availability, caching) and indicates a flat list result, but it does not describe return fields or the semantics of organization_ids. Given there is no output schema, this leaves the agent partially under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter documentation. It indirectly explains 'phone' and 'last N days', but never mentions the required organization_ids parameter nor the days parameter's default of 7. This leaves a key parameter undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: retrieve customer orders by phone over the last N days as a flat list. It is clear about the tool's scope, but it does not distinguish it from closely related siblings like deliveries_retrieve__get_deliveries_by_delivery_date_and_phone or deliveries_retrieve__get_delivery_history_by_date_and_phone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides operational advice (cache results, quota consumption, 7-day availability) but gives no explicit guidance on when to choose this tool over alternatives. With many similar deliveries_retrieve siblings, the lack of selection criteria is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deliveries_retrieve__get_deliveries_by_delivery_date_and_phoneARead-only
Заказы по телефону/датам/revision (гарантия — последние 7 дней). Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to restate safety. It adds valuable context about the 7-day data availability guarantee and the throttling constraint (10 req/60s), which are not in the annotations. However, it doesn't mention response size, pagination behavior, or rate limit specifics beyond the basic guidance, so it adds some but not rich behavioral context beyond what annotations already cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (about 3 sentences) and front-loads the key purpose and scoping constraint. The instruction to get IDs and the throttling note are useful, but the throttling detail is somewhat buried at the end. Overall, it's efficient with no fluff, but the parameter guidance is missing, which the conciseness cannot fully compensate for.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (many optional parameters, no output schema, no schema descriptions for parameters), the description is incomplete. It lacks guidance on how to use the filter parameters effectively, what date formats to use, the meaning of startRevision, and the impact of rowsCount/sourceKeys. The annotation says read-only, so the destructive risks are covered, but the operational details are missing. An agent would struggle to correctly fill the request object without additional knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no descriptions for individual parameters (only the request wrapper is described). The description mentions phone, dates, and revision but does not explain the full set of parameters (rowsCount, sourceKeys, startRevision, deliveryDateTo). For a tool with many optional parameters and zero schema descriptions, the description should compensate by explaining key parameters and their formats (e.g., date format, UUID for organizationIds). This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves orders by phone number and date range, and mentions 'revision' as a secondary search mode, distinguishing it from sibling tools like get_delivery_by_id and get_deliveries_by_delivery_date_and_status. It also provides a critical scoping detail: the guarantee is only for the last 7 days, which clarifies the tool's core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells where to get organization IDs (via organizations__get_organizations), which is essential for effective use. It also notes the throttling limit and advises caching, which guides usage behavior. However, it does not explicitly contrast with sibling tools like get_delivery_history_by_date_and_phone for older data, though the schema's deliveryDateFrom description hints at that alternative. The where-to-get-ID guidance is a strong use-case clarification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deliveries_retrieve__get_deliveries_by_delivery_date_and_statusARead-only
Заказы по статусам/датам/курьерам (гарантия — последние 7 дней). Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description adds valuable behavioral constraints: a 10-requests-per-60-seconds MCP-server throttle, a caching recommendation, and the 7-day data availability guarantee. No contradiction with annotations is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler: purpose first, then the ID prerequisite, then the throttling/caching guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only retrieval tool, the description covers the key operational constraints and the organizationIds prerequisite, which is useful. It omits any comparison to nearby sibling tools and does not mention return or pagination behavior, but the annotations and schema provide enough for basic correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage reported at 0%, the description needed to compensate for undocumented parameters, but it only maps high-level filters (statuses/dates/couriers) and tells where to get organizationIds. It leaves date formats, courierIds semantics, statuses, and sourceKeys unexplained, which is weak compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource (orders) and the main filter dimensions (statuses, dates, couriers), which is concrete and specific. It is distinguishable from phone-based, revision-based, and single-ID delivery tools among the siblings, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear operational context: where to obtain organizationIds and a throttling/caching rule for repeated calls. However, it does not explicitly say when to prefer this tool over siblings like search_deliveries or get_deliveries_by_delivery_date_and_phone, so exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deliveries_retrieve__get_deliveries_by_idARead-only
Заказы по id (order_ids XOR pos_order_ids, максимум 200).
Raises: ValueError: оба списка заданы, оба пусты или len > 200 Где взять ID: orderIds → deliveries_retrieve__get_deliveries_by_delivery_date_and_status; organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so no safety surprise. The description adds error conditions (ValueError on invalid input), the XOR constraint, and MCP throttling limit (10/60s) with caching advice. This adds useful behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with main purpose first, then error conditions, ID sources, and throttling. It's well-structured and front-loaded, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only retrieval with a nested request object, the description covers the key constraints (XOR, max 200, error), ID sourcing, and rate limiting. Optional parameters are documented in schema, and no output schema exists, so completeness is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has detailed descriptions for parameters (orderIds, posOrderIds, etc.), but the description adds the XOR constraint, max 200, and where to get IDs. However, it doesn't cover all parameters (returnLockedByUser, returnExternalDataKeys) and relies on schema for those. Since schema coverage is low per context signal, the description only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves orders by ID, with the XOR constraint and maximum 200. It doesn't explicitly differentiate from the sibling get_delivery_by_id (singular), but the plural and list usage make it distinct. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides where to get IDs (from other tools), and mentions throttling/caching, but does not explicitly state when to use this vs alternatives like search_deliveries or get_delivery_by_id. The guidance 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.
deliveries_retrieve__get_deliveries_by_revisionARead-only
Изменённые заказы с ревизии (окно — 3 часа; инкрементальный поллинг). Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare safe read-only behavior, and the description adds meaningful context beyond that: the 3-hour revision window, MCP-server throttling at 10 requests per 60 seconds, and a caching recommendation for the dialogue. There is no contradiction with the readOnlyHint or destructiveHint annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose and window first, then ID sourcing, then rate-limit/caching guidance. Every sentence adds operational value, and there is no filler or repetition of the tool name beyond the minimal necessary context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, the window, the source of organization IDs, and throttling behavior, which is good for a read-only polling tool. However, it does not explain startRevision semantics, sourceKeys, or the response shape, and with no output schema the agent must infer these details from the parameter names alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given the reported 0% schema description coverage, the description carries a heavy burden for explaining parameters, but it only addresses organizationIds by pointing to organizations__get_organizations. The critical startRevision parameter and the optional sourceKeys parameter are not meaningfully explained beyond the generic phrase 'from revision'; an agent is left without enough detail to construct a fully correct request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's function: retrieving orders changed since a revision, with a 3-hour window and incremental polling. It distinguishes itself from the many sibling delivery tools by the revision-based mechanism, so an agent can immediately tell it apart from date-, phone-, status-, or ID-based retrieval tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'incremental polling' and the 3-hour window imply when this tool should be used, and the pointer to organizations__get_organizations for organizationIds is helpful. However, there is no explicit statement of when to prefer this tool over alternatives or when not to use it, so the guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deliveries_retrieve__get_delivery_by_idARead-only
Один заказ по id (None, если не найден). Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes | ||
| organization_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds valuable context: it is a wrapper with no own throttling, consumes the underlying API quota, and recommends caching. It also states the None-return behavior. This exceeds the baseline set by 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. The core purpose is front-loaded, and the caching/quota note is a single addition. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 2 parameters and no output schema, the description covers the return behavior (None if not found) and the caching/quota aspect. It does not describe the structure of the returned order, but that is not required given the absence of an output schema. It 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the parameters order_id or organization_id beyond the generic 'by id'. It fails to clarify that organization_id is required for scoping or that order_id is the primary identifier. The parameter names are self-explanatory, but the description adds no semantic value to compensate for the lack of schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('get'), resource ('delivery by id'), and behavior ('returns None if not found'), which clearly distinguishes it from the plural sibling get_deliveries_by_id. The singular nature is explicit in the text, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly contrast with sibling tools or state when to use this versus alternatives like get_deliveries_by_id or search_deliveries. Usage is implied by the singular 'by id', but no explicit guidance or exclusions are provided, leaving the agent to 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.
deliveries_retrieve__get_delivery_history_by_date_and_phoneARead-only
История заказов по телефону (хранение 90 дней, rows_count <= 200).
Raises: ValueError: rows_count вне 1..200 Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral details beyond that: data retention (90 days), result size cap (rows_count ≤ 200), error behavior (ValueError for rows_count outside 1..200), and server throttling limits. This goes beyond the annotation's safety profile and discloses constraints and failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—three lines in Russian. It front-loads the purpose, then packs constraints, error handling, ID sourcing, and rate limiting into a compact block. Every sentence carries essential information with no filler, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one nested request object) and the read-only annotation, the description covers the essentials: purpose, constraints, error conditions, ID sourcing, and throttling. It lacks an explicit mention of optional date filters or the revision parameter, but those are documented in the schema. The lack of an output schema means return format is not required, so the description is sufficiently complete for a competent agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides guidance for rowsCount (range ≤ 200) and organizationIds (source via organizations__get_organizations), but it does not mention phone, deliveryDateFrom/To, sourceKeys, or startRevision. The schema itself has descriptions for these, but the description adds only partial value over the schema, missing several parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: 'Order history by phone' (История заказов по телефону). It specifies the resource (order history) and filter (phone), and adds constraints (90 days storage, rows_count ≤ 200). It distinguishes from generic 'deliveries' tools but does not explicitly differentiate from the nearly identical sibling 'get_deliveries_by_delivery_date_and_phone', 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete usage guidance: where to obtain organizationIds (organizations__get_organizations), a rate limit (≤10 requests per 60 seconds), and a caching recommendation. It does not mention when to use this tool over alternatives like the sibling 'get_deliveries_by_delivery_date_and_phone', so it lacks explicit exclusions but still offers actionable context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deliveries_retrieve__search_deliveriesARead-only
Поиск заказов по тексту и фильтрам (статусы, проблема, сортировка). Где взять ID: orderIds → deliveries_retrieve__get_deliveries_by_delivery_date_and_status; organizationIds → organizations__get_organizations; terminalGroupIds → terminal_groups__get_terminal_groups. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; the description adds a behavioral constraint beyond that: no more than 10 MCP-server requests per 60 seconds and advice to cache results. This is useful and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences front-load the purpose, then provide ID-sourcing and rate-limit guidance. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search tool with one nested request object, the description covers the main purpose, parameter sources, and operational constraints. It does not describe the response shape, but the tool name and read-only annotations imply a list of deliveries, and the nested schema provides the remaining filter semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds provenance for three key parameters (orderIds, organizationIds, terminalGroupIds) and names filter categories, which is helpful. However, the single top-level request parameter has no description in the schema per the coverage signal, and the description does not explain the request object structure or remaining fields such as deliveryDateFrom/To, rowsCount, or sourceKeys; the nested schema carries most of the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb ('search') and resource ('orders/deliveries') and names the key filters (text, statuses, problem, sorting). It is clear, but it does not explicitly contrast this tool with sibling tools such as get_deliveries_by_delivery_date_and_status, so an agent must infer the differentiation from the mention of text search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives actionable context: it tells where to get orderIds, organizationIds, and terminalGroupIds from sibling tools, and warns about the MCP-server throttle plus caching guidance. It does not state when not to use this tool or name alternatives, but the provided context is concrete enough to guide invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delivery_restrictions__get_allowed_delivery_restrictionsARead-only
Подходящие терминальные группы под адрес/сумму/дату доставки.
Ответ: is_allowed + allowed_items (терминалы с длительностью) и rejected_items с кодами причин отказа. Где взять ID: organizationId → organizations__get_organizations; organizationIds → organizations__get_organizations; streetId → addresses__get_streets_by_city. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 20 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context beyond annotations: the exact response composition (is_allowed + allowed_items with durations + rejected_items with rejection codes) and a server-side throttle of 20 requests/60s that is explicitly distinguished from the iikoCloud limit, with a caching recommendation. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: purpose first, then response shape, then ID sourcing plus throttling/caching guidance. Each sentence earns its place and the most decision-relevant information is front-loaded. The structure is clean and scannable despite the density of information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a complex nested request schema, no output schema, and annotations covering safety, the description covers the essential ground: purpose, summarized response shape, ID sourcing, and rate-limit/caching behavior. Since there is no output schema, the response summary is especially valuable. Minor gaps remain (precise response structure, error behavior, date format), but the tool is adequately callable with this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the parameter-semantics burden. It compensates partially by mapping three key ID fields (organizationId, organizationIds, streetId) to their source tools and stating the core selection criteria (address/sum/date). However, it leaves other fields unaddressed — orderItems structure, the distinction between deliverySum and discountSum, deliveryDate format, and the required isCourierDelivery flag — which is a meaningful gap for a complex nested request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with "Подходящие терминальные группы под адрес/сумму/дату доставки" — a specific purpose (identifying suitable terminal groups for a delivery address/sum/date) with a clear verb+resource. It further clarifies by naming the output fields (is_allowed, allowed_items, rejected_items). It doesn't explicitly contrast with the close sibling delivery_restrictions__get_delivery_restrictions, but the scope is clear enough to prevent confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use/when-not-to-use guidance against sibling tools like delivery_restrictions__get_delivery_restrictions or terminal_groups__check_terminal_groups_availability. However, the description gives practical operational guidance: where to source organizationId/organizationIds/streetId from sibling lookup tools and a directive to cache results due to the rate limit. This is useful but implicit rather than explicit selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delivery_restrictions__get_delivery_restrictionsARead-only
Справочник ограничений доставки (зоны, мин. суммы, интервалы). Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only and non-destructive. The description adds a meaningful behavioral trait beyond those annotations: the MCP server throttles at 1 request per 60 seconds and the result should be cached. This is valuable operational transparency, though it does not cover response format or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the content first, then the ID source, then the throttling and caching guidance. Every clause earns its place with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only, single-parameter tool, the description covers the essential operational context: what is returned, how to get the required IDs, and rate-limiting behavior. The lack of an output schema and explicit sibling differentiation are minor gaps given the low complexity and present annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It tells the agent where to obtain `organizationIds`, which is the key semantic gap. However, it does not explain the `request` wrapper or the expected array/UUID structure, so compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource precisely: a delivery restrictions reference containing zones, minimum amounts, and intervals. It is clear and not a tautology, but it does not explicitly differentiate itself from the closely named sibling `delivery_restrictions__get_allowed_delivery_restrictions`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage context: it tells the agent where to obtain `organizationIds` (from `organizations__get_organizations`) and advises caching because of the 60-second throttle. However, it does not state when to choose this tool over the sibling `get_allowed_delivery_restrictions`, so exclusions/alternatives are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dictionaries__get_cancel_causesARead-only
Получить причины отмены доставки.
Args: cancel_causes_request: Параметры запроса CancelCausesRequest
Returns: Ответ со списком причин отмены Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| cancel_causes_request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds useful behavioral context beyond that: an MCP-level throttling threshold and an explicit caching directive. It does not describe error behavior or response details, but for a read-only dictionary lookup with this annotation support, the added transparency is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, and the Args/Returns/throttle structure is easy to scan. It loses a point because 'Ответ со списком причин отмены Где взять ID' runs two sentences together without a clean break, and the Args line provides little new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 essential facts are present: what is returned, where the required ID comes from, and the throttle/caching constraint. It omits any mention of the similarly purposed sibling dictionaries__get_cancel_causes_by_organization, which is important selection context given the large sibling list, and there is no output schema to cover return-shape details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter is a nested CancelCausesRequest object, and the description's Args line mostly restates the parameter name and type without adding semantic detail. The only real parameter-level addition is 'Где взять ID: organizationIds → organizations__get_organizations', which tells the agent where to source the required IDs. Given the stated 0% schema coverage, this is meaningful but only partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Получить причины отмены доставки' ('Get delivery cancellation causes'), a specific verb-plus-resource statement that clearly identifies what the tool does. It loses the top score because it does not differentiate this tool from the closely named sibling dictionaries__get_cancel_causes_by_organization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides operational guidance: organizationIds can be obtained via organizations__get_organizations, and the MCP server throttles to 1 request per 60 seconds so caching is recommended. It does not, however, tell the agent when to choose this tool over the near-identical sibling or any other dictionary lookup, so exclusion/alternative guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dictionaries__get_cancel_causes_by_organizationARead-only
Получить причины отмены для организации.
Args: organization_id: ID организации (str или UUID)
Returns: Ответ со списком причин отмены организации Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds valuable behavioral context beyond the annotations: it states that the call consumes the quota of an underlying API method, that there is no dedicated throttling, and recommends caching the result in the dialog. This is transparent and useful for an agent planning repeated calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: purpose first, then Args and Returns, then a brief caching note. Every sentence adds information, and there is no filler or redundancy. The front-loaded purpose makes it immediately scannable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no nested objects, no output schema), the description covers the essential points: what it returns, the required parameter, and the quota/caching caveat. The absence of an output schema is mitigated by the explicit statement that the response contains a list of cancellation causes. A minor gap is not naming the generic sibling as an alternative, but overall the agent has enough to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must compensate for missing parameter explanations. It does restate that organization_id is 'ID организации (str или UUID)', which mirrors the schema's anyOf type and format. It adds a human-readable label but no deeper meaning such as where to obtain the ID or validation constraints. For a single simple parameter this is adequate, though not rich.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: getting cancellation causes for an organization. The phrase 'для организации' (for organization) distinguishes this from the sibling 'dictionaries__get_cancel_causes', which likely returns all cancellation causes without organization scoping. This is a specific verb+resource combination that an agent can act on immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the purpose and the required organization_id parameter: call this when you need cancellation causes for a specific organization. However, the description provides no explicit guidance about when to choose this over the similar 'dictionaries__get_cancel_causes' tool, nor does it mention any exclusions or prerequisites. It is adequate but leaves the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dictionaries__get_delivery_order_typesBRead-only
Получить типы заказов доставки.
Args: order_types_request: Параметры запроса OrderTypesRequest
Returns: Ответ со списком типов заказов Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| order_types_request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior. The description adds valuable behavioral context by disclosing the MCP server rate limit (1 request per 60 seconds) and advising caching, plus a hint about the return type (list of order types). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with clear sections for purpose, arguments, returns, and throttling. It is front-loaded with the main purpose and avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one parameter, the description covers the core aspects: purpose, ID source, rate limit, and return type. However, it does not address potential error scenarios or clarify the difference from the sibling tool, leaving some gaps for an agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only repeats the parameter name and type, but does provide a useful pointer to the source of organization IDs (organizations__get_organizations). The schema itself describes organizationIds, but the description adds minimal extra meaning beyond that pointer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves delivery order types, which is a specific verb and resource. However, it does not differentiate from the sibling tool 'dictionaries__get_delivery_order_types_by_organization', which likely serves a similar purpose, so it lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on where to obtain organization IDs and mentions throttling, but does not explain when to use this tool versus alternatives like the by-organization variant. There is no explicit comparison or condition for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dictionaries__get_delivery_order_types_by_organizationBRead-only
Получить типы заказов доставки для организации.
Args: organization_id: ID организации (str или UUID)
Returns: Ответ со списком типов заказов организации Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds beneficial context by noting it is a tool wrapper with no own rate limiting but consumes the underlying API quota and recommends caching. This goes beyond annotation coverage and provides practical behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-organized: a one-line purpose, followed by structured Args and Returns sections, and a brief but important caching note. Every sentence contributes value, 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.
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 parameter and no output schema, the description covers the essentials: what it returns, the shape of the input, and a notable side-effect (API quota). It misses only explicit reference to alternatives, which would improve completeness given the large sibling list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden. However, it only restates the parameter name and type ('ID организации (str или UUID)'), which the input schema already specifies via anyOf string/uuid. It adds minimal semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('типы заказов доставки для организации' = delivery order types for an organization), which is clear. It does not explicitly contrast with the sibling tool dictionaries__get_delivery_order_types (without the organization scope), so it falls short of 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.
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 the sibling dictionaries__get_delivery_order_types or other by_organization variants. The caching note is operational advice, not usage direction. No when/when-not conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dictionaries__get_discountsARead-only
Получить скидки.
Args: discounts_request: Параметры запроса DiscountsRequest
Returns: Ответ со списком скидок Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| discounts_request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by disclosing the MCP-server throttling limit (1 request per 60 seconds) and advising caching—behavioral details not present in annotations. It does not contradict annotations and helps the agent plan for latency and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and covers multiple essential aspects (purpose, args, return, ID sourcing, throttling) in a short space. However, the formatting is a bit run-on—'Response with a list of discounts Where to get ID' lacks clear separation—and mixing Russian/English reduces polish.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 nested parameter and no output schema, the description provides enough to call it: parameter purpose, ID sourcing, return type, and a critical throttling note. It lacks explicit differentiation from a closely related sibling, but that is more a usage-guideline issue than a completeness gap for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though the top-level parameter has no description in the schema (0% coverage signal), the schema's nested DiscountsRequest does describe organizationIds. The description augments this by pointing to organizations__get_organizations as the source for IDs, which is more actionable than the schema's generic '/api/1/organizations' reference. It helps the agent correctly populate the parameter, though it stops short of explaining the full request structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get discounts' with a clear verb and resource, but it does not distinguish this from the sibling tool dictionaries__get_discounts_by_organization. The parameter and return type are mentioned, yet the differentiation needed to pick between these two similar tools is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful context: where to get organization IDs (organizations__get_organizations) and a throttling/caching recommendation. However, it does not explicitly say when to use this tool versus the alternative by_organization variant, nor does it mention any exclusions or prerequisites beyond ID sourcing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dictionaries__get_discounts_by_organizationARead-only
Получить скидки для организации.
Args: organization_id: ID организации (str или UUID)
Returns: Ответ со списком скидок организации Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false. The description adds valuable context: 'Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.' This discloses quota consumption and recommends caching, which goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with the core purpose stated first, followed by a brief parameter list and a practical caching note. No redundant text; each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter getter with readOnlyHint annotations, the description provides the essential context: the parameter meaning, the return type (list of discounts), and the caching advice. It does not describe the discount object structure or error cases, but given the tool's simplicity and no output schema, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter with zero description coverage (0%). The description compensates by documenting the parameter in the Args section: 'organization_id: ID организации (str или UUID)', clarifying the semantic meaning beyond just the type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Получить скидки для организации' (Get discounts for an organization), which is a specific verb+resource. The sibling list includes both 'dictionaries__get_discounts' (without organization) and other per-organization tools, so the purpose is clear even though the description does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'dictionaries__get_discounts' or 'discounts__get_loyalty_programs'. The description only mentions the wrapper nature and caching advice, but does not help an agent choose between sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dictionaries__get_payment_typesBRead-only
Получить типы оплаты.
Args: payment_types_request: Параметры запроса PaymentTypesRequest
Returns: Ответ со списком типов оплаты Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| payment_types_request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context: the MCP server throttling (1 request per 60 seconds) and a caching recommendation, which are not available in annotations. It also mentions where to obtain required IDs, contributing to transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise with a clear Args/Returns structure and an additional note on throttling. It is front-loaded with the purpose and avoids unnecessary fluff, though the separate sections could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 with annotations covering safety, the description covers basic usage and throttling. However, it lacks differentiation from the sibling tool and does not describe the return format beyond 'list of payment types'. Given the existence of a nearly identically named tool, more context about when to use this specific variant is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description only restates the parameter type ('payment_types_request: Параметры запроса PaymentTypesRequest') without explaining its structure or content. However, it does provide a practical hint: organizationIds can be obtained from organizations__get_organizations. The schema itself includes a description for organizationIds, so the description's contribution is limited but non-zero.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Получить типы оплаты' (Get payment types), which clearly identifies the action and resource. However, it does not differentiate from the sibling tool 'dictionaries__get_payment_types_by_organization', so it fails to distinguish between the two similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a useful cross-reference for obtaining organizationIds (via organizations__get_organizations) and warns about rate limiting and caching. However, it gives no guidance on when to use this tool versus the sibling 'dictionaries__get_payment_types_by_organization', which is a significant omission given the similarity in names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dictionaries__get_payment_types_by_organizationBRead-only
Получить типы оплаты для организации.
Args: organization_id: ID организации (str или UUID)
Returns: Ответ со списком типов оплаты организации Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds significant behavioral context: it is a tool wrapper, has no own throttling, consumes quota of the underlying API method, and advises caching the result in the dialog. This goes beyond the annotations and helps the agent understand cost/implications of calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with an Args section, Returns section, and a note about caching. The purpose is front-loaded. There is minor run-on punctuation ('организации Это'), but overall it is efficient and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter) and annotations cover safety. The description explains the return type (list of payment types) and the quota implication. However, it does not mention the closely related sibling 'dictionaries__get_payment_types', nor does it describe the structure of the returned payment types. Given the absence of an output schema and low schema coverage, a bit more context would help, but it is still adequate for a straightforward read-only lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. However, it merely repeats the schema's type information ('ID организации (str или UUID)'), which adds no semantic value beyond what the schema already specifies. It does not explain where to obtain the organization_id, how it is used, or any constraints on the value. The parameter is straightforward but the description barely enhances it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Получить типы оплаты для организации' (get payment types for an organization). It is specific and scoped by organization_id. However, it does not explicitly differentiate from the sibling 'dictionaries__get_payment_types' (which likely fetches all payment types without an organization filter), 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.
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. It does not mention the sibling 'dictionaries__get_payment_types' or state any condition (e.g., 'use this when you need payment types for a specific organization'). The purpose statement implies organization-scoped usage but offers no explicit 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.
dictionaries__get_removal_typesBRead-only
Получить типы списания.
Args: removal_types_request: Параметры запроса RemovalTypesRequest
Returns: Ответ со списком типов списания Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| removal_types_request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context: a strict throttling limit (not more than 1 request per 60 seconds) and a recommendation to cache results. It does not contradict annotations and provides extra operational behavior beyond the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and uses a labeled structure (Args, Returns, where to get ID, throttling). The first sentence clearly states the purpose, and each line adds distinct information. Minor redundancy: 'Returns' restates the tool's purpose, but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers ID sourcing, throttling, and return type, which is sufficient for a single-parameter read-only tool with annotations. However, it fails to clarify the relationship to the sibling 'dictionaries__get_removal_types_by_organization', leaving an agent uncertain about which variant to select. No output schema exists, but the return description is basic yet acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'removal_types_request' is not described at the top level (schema coverage 0%), but the nested schema does describe organizationIds and mentions the API endpoint. The description adds a more direct pointer to the MCP tool 'organizations__get_organizations' for obtaining IDs, which helps. However, it does not further explain the meaning or format of the removal type request beyond what the schema already offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb and resource clearly: 'Получить типы списания' (get removal types). However, it does not differentiate from the sibling tool 'dictionaries__get_removal_types_by_organization', which likely performs a similar operation with a possibly different parameter shape. The purpose is clear but lacks sibling discrimination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the alternative 'dictionaries__get_removal_types_by_organization' or other dictionary tools. The description only gives a throttling hint (1 request per 60s) and caching advice, but does not explain 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.
dictionaries__get_removal_types_by_organizationBRead-only
Получить типы списания для организации.
Args: organization_id: ID организации (str или UUID)
Returns: Ответ со списком типов списания организации Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=true, destructiveHint=false), the description discloses that this is a tool wrapper without its own throttling but consumes the quota of the underlying API method, and recommends caching the result. This adds meaningful behavioral context about quota impact and performance, which is valuable for an agent deciding whether to reuse results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with clear 'Args' and 'Returns' sections. The primary purpose is stated first, and additional behavioral notes are appended. The entire text is brief and to the point, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with annotations, the description is mostly complete. It explains return type (list of types) and quota behavior. However, it fails to mention the sibling tool without organization filtering, which is a key distinction that could lead to incorrect selection. Lacking output schema, the description doesn't detail the response structure, but 'list of types' may suffice. Overall, adequate but with a notable gap in tool-selection context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, organization_id, is described as 'ID организации (str или UUID)' which directly mirrors the schema's anyOf string/uuid. The description adds no information about sources, formats, constraints, or usage beyond the schema. With schema description coverage at 0%, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the function: 'Получить типы списания для организации' (Get write-off types for an organization). It specifies the resource (write-off types) and scope (by organization), making the purpose distinct. However, it does not explicitly differentiate from the sibling tool 'dictionaries__get_removal_types' (without organization filter), though the phrase 'for an organization' implies a scoped version.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, notably the sibling 'dictionaries__get_removal_types' which likely returns all types. It does offer a caching recommendation due to quota consumption, but that addresses invocation behavior, not tool selection. No context on prerequisites or conditions for choosing this tool is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dictionaries__get_tips_typesARead-only
Получить типы чаевых.
Returns: Ответ со списком типов чаевых Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to restate safety. It adds value by disclosing a throttling limit: no more than 1 request per 60 seconds and advises caching. This is important behavioral context beyond annotations. However, it doesn't describe error handling or what happens on rate limit, but that's acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: one for purpose, one for return and throttling. It's front-loaded and every sentence adds value. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no params, no output schema) and annotations covering read-only safety, the description covers the essential information: what it returns and the rate limit with caching advice. It could mention whether it's organization-specific, but the tool name implies a general dictionary. For a simple getter, it's reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema trivially covers all parameters. The description correctly omits parameter details. Baseline 4 applies because there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get tip types' (Получить типы чаевых), which is a specific verb and resource. It clearly distinguishes itself from sibling dictionary tools like dictionaries__get_cancel_causes or dictionaries__get_payment_types by explicitly naming the subject. The name and description align perfectly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention any context, prerequisites, or scenarios. An agent must infer that it's for retrieving tip types. No explicit exclusions or comparisons to sibling tools are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discounts__calculate_loyalty_checkinARead-only
Расчёт скидок/лояльности для заказа (высокочастотный вызов).
Верхнеуровневые coupon/manual_conditions/dynamic_discounts в request — obsolete; передавать через order.loyalty_info. Где взять ID: comboGroupId → menu__get_combos_info; comboId → menu__get_combos_info; comboSourceId → menu__get_combos_info; manualConditionId → discounts__get_loyalty_manual_conditions; marketingSourceId → marketing_sources__get_marketing_sources; operatorId → employees__get_couriers; orderTypeId → dictionaries__get_delivery_order_types; organizationId → organizations__get_organizations; paymentTypeId → dictionaries__get_payment_types; priceCategoryId → menu__get_external_menus; productSizeId → menu__get_nomenclature; programId → discounts__get_loyalty_programs; sizeId → menu__get_nomenclature; sourceId → marketing_sources__get_marketing_sources; terminalGroupId → terminal_groups__get_terminal_groups; tipsTypeId → dictionaries__get_tips_types. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1000 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context: it is a high-frequency call, subject to MCP-server throttling of 1000 requests per 60 seconds, and results should be cached. It also flags obsolete fields and directs the agent to the correct current location, which goes beyond what annotations provide. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main purpose is front-loaded in the first sentence. The long ID lookup list is dense but each entry earns its place, and the throttling/caching note is practical. The structure could be improved with bullet formatting, but it is still efficient and scannable as a logical mapping list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a large nested schema and no output schema, the description covers the critical invocation concerns: deprecated fields, ID sourcing, and rate limiting. It does not explain the return value, but the tool's purpose implies the output. Given the complexity, it is reasonably complete, though a note on expected response would make it fully so.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does this well by mapping many request IDs (comboGroupId, comboId, manualConditionId, marketingSourceId, etc.) to the exact sibling tools that provide them, and by clarifying that coupon/manual_conditions/dynamic_discounts at the top level are obsolete and belong in order.loyalty_info. It does not cover every field, but the most error-prone IDs are addressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Расчёт скидок/лояльности для заказа' which clearly states the tool calculates discounts/loyalty for an order. The verb and resource are specific, but it does not distinguish this from the sibling tool `discounts__calculate_order_loyalty`, so it misses the differentiation that would earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives important usage guidance: which top-level fields are obsolete and where to place them (order.loyalty_info), plus a detailed mapping of ID fields to source tools. However, it never says when to use this tool instead of the closely related `discounts__calculate_order_loyalty`, and no exclusions are given. The context is present but the when-vs-alternative guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discounts__calculate_order_loyaltyARead-only
Расчёт скидок/лояльности заказа (короткая форма calculate).
items собираются через build_product_item / build_compound_item. Купон и ручные условия передаются через order.loyalty_info (верхнеуровневые поля request — obsolete). Где взять ID: comboGroupId → menu__get_combos_info; comboId → menu__get_combos_info; comboSourceId → menu__get_combos_info; productSizeId → menu__get_nomenclature. Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| phone | Yes | ||
| coupon | No | ||
| customer | No | ||
| organization_id | Yes | ||
| terminal_group_id | No | ||
| order_service_type | No | ||
| applicable_manual_conditions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and destructiveHint annotations, the description adds valuable behavioral context: it is a tool wrapper with no throttling, consumes quota of the underlying API method, and recommends caching the result in the dialog. It also flags that top-level request fields are obsolete, directing to order.loyalty_info. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary purpose, followed by practical usage notes and caching advice. It is not overly verbose, though the obsolete-fields note ('верхнеуровневые поля request — obsolete') is somewhat convoluted and could be clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema has 0% coverage and no output schema, the description provides helpful guidance on item construction and ID sourcing, but leaves several parameters unexplained and does not describe the return value or expected output. The ambiguity around order.loyalty_info and the obsolete top-level fields makes the definition incomplete for an agent to call the tool with full confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates somewhat by explaining how to build items and where to obtain combo/nomenclature IDs. However, it references order.loyalty_info which does not appear in the provided schema, creating ambiguity about whether to use top-level fields or a nested structure. Several parameters (phone, organization_id, terminal_group_id, etc.) remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates discounts/loyalty for an order ('Расчёт скидок/лояльности заказа'), which is a specific verb+resource. It aligns with the tool name and distinguishes from sibling calculate_loyalty_checkin by focusing on 'order', though it does not explicitly name the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical guidance on constructing items (via build_product_item / build_compound_item), where to find IDs (menu__get_combos_info, menu__get_nomenclature), and advises caching results. However, it does not explicitly state when to use this tool versus sibling alternatives, nor does it give exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discounts__get_coupon_infoARead-only
Информация о купоне по номеру. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds valuable behavioral context: it specifies MCP-server throttling (10 requests per 60 seconds) and recommends caching results in the conversation. This goes beyond annotations and helps the agent manage 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and efficient, front-loading the core purpose in the first sentence. The additional guidance on organizationId and throttling is relevant and not verbose. Every sentence earns its place without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations covering safety, the description covers purpose, a key parameter source, and throttling. However, it does not explain the 'series' parameter, nor does it describe the return format or potential error conditions. Given the low schema coverage, these gaps leave the description only moderately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for parameter meaning. It implicitly explains 'number' as the coupon number and tells where to get organizationId, but it completely omits the 'series' parameter. The nested 'request' structure is also not clarified. This partial coverage is insufficient for a 3-parameter schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: providing coupon information by number ('Информация о купоне по номеру'). It specifies the resource (coupon) and the key identifier (number). While it doesn't explicitly differentiate from sibling tools like discounts__get_coupon_series, the purpose is unambiguous and not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical guidance on obtaining a required parameter (organizationId) by referencing organizations__get_organizations, and advises throttling and caching. However, it does not explicitly state when to use this tool versus alternatives, nor does it give exclusion criteria or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discounts__get_coupon_seriesARead-only
Серии купонов с неудалёнными неактивированными купонами. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful operational context: MCP-server throttling (1 request per 60s) and caching advice. This goes beyond the annotations and informs the agent about rate limits and caching strategy, which is valuable for correct usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences (or three short clauses) that cover purpose, ID source, and throttling. It front-loads the core purpose first, then practical usage notes. Every sentence earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 required parameter, the description covers the essential usage: what it returns, where to get the ID, and rate-limit considerations. It lacks a description of the return format (no output schema exists), but the tool is straightforward and the annotations cover safety. Given the simplicity, it is nearly complete, though mentioning the output structure would improve it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains where to get organizationId (from organizations__get_organizations) but does not elaborate on the parameter structure beyond that. It gives one useful hint but does not fully explain the meaning or any edge cases. The parameter itself is simple (a UUID), and the description provides minimal extra value beyond the schema field name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns coupon series that have non-deleted, non-activated coupons. It specifies the resource (series) and the filter (non-deleted, non-activated coupons), which is specific. However, it does not explicitly distinguish from sibling tools like discounts__get_non_activated_coupons_by_series, so it misses the chance to preempt confusion. Overall clear but not perfectly differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides helpful guidance on where to obtain the organizationId (from organizations__get_organizations) and gives throttling instructions. However, it does not mention when to use this tool versus alternatives (e.g., discounts__get_coupon_info or discounts__get_non_activated_coupons_by_series). It implies usage for series with non-activated coupons but does not state exclusions or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discounts__get_loyalty_manual_conditionsARead-only
Все ручные условия организации.
Raises: ValueError: organization_id не задан (в модели optional) Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds valuable behavioral details beyond annotations: the specific ValueError condition and the throttling constraint with a caching recommendation. This meaningfully helps the agent anticipate 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: one purpose sentence, one error/source statement, and one throttling note. Every sentence adds practical value, though the error and ID-source details are packed into a single run-on section rather than cleanly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, one-parameter tool with no output schema, the description covers purpose, parameter source, error behavior, and rate limiting. The main gaps are the lack of response-shape details and a fuller explanation of what 'manual conditions' means, but an agent can still invoke it correctly with the given information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining that a missing organizationId raises ValueError despite the schema default null, and directs the agent to organizations__get_organizations for the correct ID. It does not fully describe the 'request' wrapper, but it adds critical parameter meaning that the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Все ручные условия организации' names the resource but lacks an explicit verb; it essentially restates the tool name's object without defining 'manual conditions' or showing how this differs from sibling discount getters. It is not misleading, but it relies on the tool name for action clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete operational guidance: a ValueError is raised when organizationId is missing, the ID should be sourced from organizations__get_organizations, and MCP-server throttling limits calls to 1 per 60 seconds so results should be cached. It does not discuss when to choose this tool over siblings, but for a simple getter the provided context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discounts__get_loyalty_programsARead-only
Все программы лояльности организации. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds the throttling constraint (1 request per 60 seconds) and the caching recommendation, which is valuable behavioral context beyond the annotations. This is a good addition for a read-only tool with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise and front-loaded with the core purpose. The throttling and caching note is relevant but slightly verbose with the parenthetical. Overall, it is well-structured and earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with one required parameter, the description covers the essential aspects: purpose, ID sourcing, and throttling. It lacks details on the output structure (no output schema) but the tool is simple enough that the missing return format is not critical. The throttling guidance is a significant plus.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, but there is only one required parameter (organizationId) and an optional boolean (withoutMarketingCampaigns). The description does not explicitly explain the meaning of withoutMarketingCampaigns, but the schema provides a basic description. Since the description is minimal on parameter detail, it does not fully compensate for the 0% coverage, but the schema itself provides some help, so a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool retrieves all loyalty programs of an organization. It clearly maps to the get_loyalty_programs name and makes the resource explicit. However, it does not explicitly differentiate from sibling tools like discounts__get_coupon_series, though the name and context make the purpose fairly clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear instruction on where to get the organizationId (via organizations__get_organizations) and explicitly warns about throttling with a caching recommendation. It does not explicitly state when not to use this tool versus alternatives, but the guidance is strong for the main use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discounts__get_non_activated_coupons_by_seriesARead-only
Неактивированные купоны серии (page/page_size-пагинация). Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by disclosing the MCP server rate limit (10 requests per 60 seconds) and recommending caching, which is not covered by annotations. This goes beyond the structured metadata and helps the agent manage usage safely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core purpose, and includes essential usage details in two sentences. Every sentence adds value: the first defines what the tool does and the second provides ID sourcing and throttling/caching guidance. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 does not explain the return format or structure. It covers the key input (organizationId, series, pagination) and operational constraints, but it omits details about response fields, potential errors, or behavior when series is null (though the schema mentions it can be null). For a read-only query, this is somewhat sufficient but leaves gaps for an agent expecting to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides minimal field descriptions (only 'series' has a description). The description mentions 'page/page_size-пагинация' which clarifies the purpose of those parameters, but it does not explain each parameter's meaning or defaults. It partially compensates for the low coverage but does not fully describe the nested 'request' object's fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource ('non-activated coupons of a series') and the filtering mechanism (series, pagination). The tool name itself is descriptive, and the description adds the pagination detail. It distinguishes itself from related discount tools by specifying 'non-activated' and 'by series'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on where to obtain the organizationId (from organizations__get_organizations) and advises caching due to throttling. It implies when to use this tool (when needing non-activated coupons of a specific series) but does not explicitly contrast it with alternatives like discounts__get_coupon_series or discounts__get_coupon_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drafts__get_delivery_draft_by_idARead-only
Черновик по id. Где взять ID: orderId → deliveries_retrieve__get_deliveries_by_delivery_date_and_status; organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 20 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds valuable behavioral context by mentioning MCP-server throttling (20 requests/60s) and advising caching, which is not present in annotations. This enriches the agent's understanding of operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences with no fluff. It front-loads the core purpose ('Черновик по id') and immediately provides actionable ID sourcing and rate-limit information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with annotations covering safety and a clear description of ID sourcing and throttling, the description is largely complete. It does not describe the return format, but given the absence of an output schema and the simplicity of the operation, this is a minor gap. The agent has enough to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does so by explaining exactly where to obtain each parameter: orderId from deliveries_retrieve__get_deliveries_by_delivery_date_and_status and organizationId from organizations__get_organizations. This is meaningful guidance beyond the bare UUID type in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Черновик по id' (draft by id), which is a specific verb+resource. It distinguishes itself from siblings like drafts__get_delivery_drafts_by_filter (filter-based) and deliveries_retrieve__get_delivery_by_id (delivery, not draft) by emphasizing the 'by id' retrieval. It also provides explicit guidance on where to obtain the required IDs, reinforcing its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context on how to source the IDs (orderId from a specific tool, organizationId from another) but does not explicitly state when to use this tool versus alternatives like the filter-based draft retrieval. It implies usage when a specific draft ID is known but lacks explicit exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drafts__get_delivery_drafts_by_filterARead-only
Черновики по фильтру (phone, даты, offset/limit-пагинация). Где взять ID: organizationIds → organizations__get_organizations; terminalGroupIds → terminal_groups__get_terminal_groups. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 20 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description correctly does not repeat that. It adds value by disclosing MCP server throttling (max 20 requests per 60 seconds) and advising to cache results, which is behavioral context beyond annotations. It does not describe the return format, but that is not required given the annotations cover safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise—two sentences—and front-loaded with the core purpose ('Drafts by filter'). It efficiently packs essential info: key filters, ID sources, and throttling guidance. Every sentence earns its place without verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only filter tool with a well-documented request schema, the description is largely complete. It provides critical integration details (ID source mappings) and operational constraints (throttling). While it does not describe the response structure, that is not required given the absence of an output schema and the read-only nature. Slight gap: it does not mention that organizationIds is required, but the schema already indicates that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema itself provides detailed descriptions for every parameter, so the description does not need to compensate for missing schema documentation. The description mentions phone, dates, and pagination, which maps to some parameters, but adds little beyond the schema. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves drafts by filter, listing key filters (phone, dates, pagination). It distinguishes from the sibling 'get_delivery_draft_by_id' by implying a list operation. While not explicitly naming the alternative, the purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides helpful context: where to obtain IDs for organizationIds and terminalGroupIds, and mentions throttling and caching. However, it does not explicitly state when to use this tool over alternatives (e.g., when a list of drafts is needed vs. a single draft). The guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
employees__get_active_courier_locationsARead-only
Локации активных курьеров. Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context beyond the annotations: MCP-server throttling limits (not iikoCloud limits), a caching recommendation, and the note that the rate limit applies to the MCP server. This gives the agent actionable information about operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the resource in the first phrase, then provides essential usage and throttling guidance in two short sentences. Every clause earns its place, and there is no redundant restating of the tool name or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one required parameter, no enums, no nested objects) and read-only annotations, the description covers the key operational needs: what the tool returns, where to get the ID, and how to respect rate limits. There is no output schema, so a bit more detail about the shape of the returned locations could be useful, but it is not essential for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a nested description of `organizationIds` as a list of organizations, and top-level schema coverage is 0%. The description compensates by explicitly telling the agent where to source `organizationIds` from (`organizations__get_organizations`), which is highly relevant for correct invocation. It does not fully detail all parameter semantics, but for the single parameter this guidance is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource clearly: 'Локации активных курьеров' (locations of active couriers), which is a specific deliverable and distinct from the sibling tools. It lacks an explicit verb like 'returns' or 'gets', but the tool name plus the noun phrase make the operation unambiguous. The 'active couriers' qualifier helps differentiate it from history or terminal-scoped variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage guidance: where to obtain `organizationIds` (via `organizations__get_organizations`) and that results should be cached due to MCP-server throttling of 10 requests per 60 seconds. It does not explicitly say when to prefer this over `employees__get_active_courier_locations_by_terminal`, but it provides clear practical context for calling the tool safely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
employees__get_active_courier_locations_by_terminalARead-only
Локации курьеров терминала. Где взять ID: organizationId → organizations__get_organizations; terminalGroupId → terminal_groups__get_terminal_groups. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior. The description adds a valuable operational detail beyond annotations: MCP-server throttling (10 requests/60s) and the recommendation to cache results in the conversation. This is relevant behavioral context that helps the agent plan calls correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, ID-source mapping second, rate-limit and caching guidance last. Every sentence earns its place and there is no filler or repetition of schema data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description does not describe what the returned courier locations look like (coordinates, timestamps, courier IDs, etc.). It covers required inputs and rate limiting, but an agent still has to infer the return shape and the 'active' semantics from the tool name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Even though the schema includes descriptions for the nested IDs, schema_description_coverage is 0%, so the description must compensate. It does so by mapping each required parameter to a concrete sibling MCP tool (organizations__get_organizations and terminal_groups__get_terminal_groups), which adds meaning beyond raw field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('courier locations') and the scope ('of the terminal'), which matches the tool name and distinguishes it from global variants like employees__get_active_courier_locations. It is a noun phrase rather than an explicit verb statement, and it does not explicitly say 'active couriers', so it stops short of a fully self-contained purpose definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical guidance on where to obtain organizationId and terminalGroupId, which helps an agent prepare required inputs. However, it does not say when to prefer this tool over the similarly named employees__get_active_courier_locations or employees__get_courier_location_history, so the when-vs-alternatives guidance is only implied by the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
employees__get_courier_location_historyARead-only
История координат курьеров (offset в секундах). Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds behavioral context about MCP-server throttling (not iikoCloud) and suggests caching, which is useful for an agent managing API rate limits. It does not describe return format, but that is not critical given the read-only nature and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first states the purpose and offset, the second provides ID sourcing and throttling advice. It is front-loaded with the core functionality and avoids unnecessary fluff, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 parameters and clear annotations, the description covers the essential aspects: purpose, ID source, and rate limit. It does not explain the exact behavior of offsetInSeconds when null, but the schema already covers that. The lack of output format information is acceptable given no output schema and the straightforward nature of the data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema descriptions for both parameters are detailed, covering offsetInSeconds and organizationIds semantics. The description adds marginal value by explaining offset is in seconds and pointing to where to get IDs, but it largely repeats schema information. With high schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool retrieves courier coordinate history ('История координат курьеров') and specifies the offset parameter. It clearly identifies the resource and action, though it doesn't explicitly contrast with sibling tools like 'get_active_courier_locations'. The word 'История' (history) sufficiently implies the distinction from current-location tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a concrete usage hint: where to obtain organizationIds via 'organizations__get_organizations'. It also gives throttling guidance (max 10 requests per 60s) and recommends caching. However, it does not state when to choose this tool over alternatives like 'get_active_courier_locations', nor does it mention any preconditions beyond ID sourcing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
employees__get_couriersARead-only
Сотрудники-курьеры организаций. Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description discloses a critical behavioral constraint: 'Троттлинг MCP-сервера... не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.' This rate-limit and caching instruction is exactly the kind of behavioral context that adds value beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no fluff: purpose first, then ID source, then throttling/caching. Every sentence carries operational value, and the most important scoping information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with one parameter, the description covers purpose, input sourcing, and a critical rate limit. It lacks explicit differentiation from employees__get_couriers_by_role and has no output schema, but nothing essential about invoking it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does add meaning by explaining where organizationIds come from ('organizationIds → organizations__get_organizations'), but it does not explain the request wrapper structure or the array semantics beyond what the schema already shows. This is partial compensation, not full.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource clearly: 'Сотрудники-курьеры организаций' (organization courier employees), and the tool name supplies the get verb. It is clear this returns couriers for given organization IDs, but it does not differentiate from the sibling employees__get_couriers_by_role, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete prerequisite: 'Где взять ID: organizationIds → organizations__get_organizations' tells the agent exactly how to obtain the required organizationIds. It also adds operational guidance to cache results due to throttling. However, it does not explicitly state when to prefer this tool over alternatives like get_couriers_by_role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
employees__get_couriers_by_roleCRead-only
Курьеры с проверкой ролей. Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds genuinely valuable behavioral context on top: the MCP-server throttling limit of 1 request per 60 seconds (explicitly distinguished from the iikoCloud limit) and the recommendation to cache results within the dialog. This goes beyond what the annotations provide and helps the agent plan calls correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: purpose, ID provenance, and throttling. The most operationally critical detail (rate limit and caching) is placed last but clearly delimited. Slightly verbose phrasing ('не чаще 1 запрос(ов) за 60 с') and the format in Russian is a minor readability cost, but overall it is tight and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations covering the safety profile, the description covers the key operational need (throttling) and the ID source, but leaves gaps: it does not explain rolesToCheck semantics, does not state what the response contains (which fields identify a courier), and offers no guidance on result shape since no output schema exists. Adequate for a competent agent but not self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description only partially compensates: it names organizationIds and gives a concrete cross-reference to organizations__get_organizations, which is more actionable than the schema's raw '/api/1/organizations' hint. However, rolesToCheck — the parameter most likely to confuse an agent ('the short name of employee's position') — receives no explanation, no examples, and no pointer to where role names come from.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Курьеры с проверкой ролей' ('Couriers with role checking') is essentially a paraphrase of the tool name get_couriers_by_role, so it borders on tautology. It hints at the distinguishing feature (role filtering) but never states the actual behavior — that it returns couriers for given organizations who match the specified roles. It adds no verb or resource beyond what the name already conveys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the closely related siblings employees__get_couriers, employees__get_active_courier_locations, and employees__get_courier_location_history. The only usage-adjacent hint is the data-dependency pointer 'organizationIds → organizations__get_organizations', which tells where an input comes from, not when to select this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
employees__get_employee_infoBRead-only
Информация о сотруднике по id. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable extra context: a MCP-server throttle of 1 request per 60 seconds and a caching recommendation, which 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler: the first states the purpose, the second gives a parameter source and throttling advice. It is well-structured and front-loaded, though slightly more detail on the id parameter could be added without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter lookup tool, the description covers purpose, one parameter source, and rate limiting. However, it omits how to obtain the employee id and does not describe the return value or error conditions, leaving the description adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the top level, so the description must compensate for parameter meaning. It only explains how to obtain organizationId via organizations__get_organizations, but leaves the employee id parameter source unexplained, providing incomplete semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides employee information by ID, a specific verb and resource. It is easy to distinguish from sibling employee tools focused on couriers or sessions, though no explicit differentiation is made.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent where to get organizationId via organizations__get_organizations and includes a rate-limit note. However, it does not specify when to use this tool over alternative employee info tools or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
employees__get_personal_session_infoARead-only
Открыта ли личная сессия сотрудника. Где взять ID: employeeId → employees__get_employee_info; organizationId → organizations__get_organizations; terminalGroupId → terminal_groups__get_terminal_groups. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds significant behavioral context beyond annotations by disclosing an MCP-server-specific throttling limit (10 requests per 60 seconds) and recommending caching the result in the conversation, which directly affects how an agent should invoke the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: purpose, ID sourcing, and throttling/caching advice. Each sentence earns its place, the purpose is front-loaded, and there is no redundant filler or repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with a simple nested request and no output schema, the description covers purpose, parameter sourcing, and rate-limit guidance. It does not explicitly describe the return value (e.g., whether it returns a boolean), but the question phrasing implies a yes/no outcome, making it adequately complete though not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It maps each parameter to a specific sibling tool that provides the value (employeeId → employees__get_employee_info; organizationId → organizations__get_organizations; terminalGroupId → terminal_groups__get_terminal_groups), giving the agent actionable parameter sourcing. It does not describe parameter meaning in depth, but this mapping is highly valuable given the minimal schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a direct question 'Открыта ли личная сессия сотрудника' (Is the employee's personal session open), clearly identifying the resource (employee personal session) and the action (checking its status). This distinguishes it from the many getter tools in the sibling list by its unique focus on personal session state, though it is phrased as a question rather than an explicit verb like 'get' or 'check'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance on where to obtain each required ID (employeeId → employees__get_employee_info; organizationId → organizations__get_organizations; terminalGroupId → terminal_groups__get_terminal_groups), which is a useful prerequisite. However, it does not explicitly state when to use this tool over alternatives or provide exclusions/when-not-to-use conditions, leaving the usage context implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
employees__get_terminal_groups_of_employeeBRead-only
Терминальные группы с открытой сессией сотрудника. Где взять ID: employeeId → employees__get_employee_info. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, so the description does not need to repeat that. It adds valuable operational behavior: a rate limit (10 requests per 60s) on the MCP server and a caching recommendation. This goes beyond annotations and helps the agent avoid throttling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. The purpose is front-loaded, followed by a usage hint and a rate-limit note. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, ID source, and rate limiting, which is solid for a simple read-only tool. However, it lacks differentiation from sibling tools and does not describe the response shape (though no output schema exists). Given the many similar tools in the sibling list, more guidance on when to use this one would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for parameters. The description mentions where to get employeeId but does not explain its meaning or any constraints beyond the schema's UUID format. It provides a pointer rather than semantic depth, which is insufficient given the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool returns terminal groups where the employee has an open session. It is specific about the resource and condition, and the tool name already indicates 'get'. It distinguishes from generic terminal group tools by the 'open session' qualifier, but it is phrased as a noun phrase rather than an explicit action sentence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a prerequisite (where to obtain employeeId) but does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusion criteria. No sibling differentiation is provided, so an agent may not know to choose this over terminal_groups__get_terminal_groups or similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__calculate_inventory_cost_pricesARead-only
Рассчитать себестоимость товаров на складах. Где взять ID: organizationId → organizations__get_organizations; productId → menu__get_nomenclature. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 100 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to repeat that. It adds a throttling constraint ('no more than 100 requests per 60 seconds') and a caching recommendation ('cache the result in the dialog'), which are behavioral traits beyond the annotations. This is valuable context for the agent, so a score of 4 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose. It then adds two useful operational notes: where to get IDs and a throttling constraint. It is well-structured and efficient, though the throttling note could be considered extra but is relevant to usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a nested request structure (request object with items array) and no output schema. The description gives ID sourcing and throttling but does not explain the request structure, required fields (like dateIncoming), or the return format. The schema covers the structure, but the description could be more complete about the overall context and expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only provides sourcing hints for organizationId and productId. It does not explain other parameters like dateIncoming, storeId, or amountFactor. The schema itself has descriptions for these fields, but the description fails to compensate for the low coverage beyond two IDs, leaving the agent to rely entirely on the schema for the rest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Calculate the cost of goods in warehouses.' It uses a specific verb ('calculate') and resource ('cost prices of goods in warehouses'), and while it doesn't explicitly name sibling alternatives, none of the listed sibling tools perform this function, so it naturally stands out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 only gives hints on sourcing IDs (organizationId and productId) and a throttling note, which are operational details, not usage context or exclusions. There is no mention of when not to use this tool or how it compares to other invoice_processing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__get_finance_incoming_serviceARead-only
Акт прихода услуг по id. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is known. The description adds a concrete rate-limit warning and caching recommendation, which is valuable behavioral information beyond the annotations. It does not contradict the annotations and provides extra operational detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose, followed by the ID source and throttling note. Each sentence earns its place without redundancy. It could be slightly more compact, but it is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations covering safety, the description covers the main operational aspects: what it retrieves, where to get one required ID, and a rate-limit/caching hint. The missing piece is the source for documentId (likely from a list endpoint), but overall it is adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. The description adds the source for organizationId (from organizations__get_organizations), which is helpful, but it does not explain where documentId comes from or its role. The schema's simple 'GUID' descriptions are minimal, so the description only partially bridges the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Акт прихода услуг по id' which clearly identifies the tool as retrieving an incoming services act by ID. It also provides a pointer for where to obtain the organizationId, adding useful context. However, it does not explicitly differentiate from sibling tools like list_finance_incoming_services or get_finance_outgoing_service, though the name itself is fairly descriptive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: it tells the agent where to get the organizationId (from organizations__get_organizations) and advises caching due to MCP-server throttling (10 requests per 60 seconds). It does not explicitly state when to use this tool versus a list alternative, but the prerequisite and rate-limit guidance are directly useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__get_finance_outgoing_serviceBRead-only
Акт расхода услуг по id. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds a specific throttling constraint (10 requests per 60 seconds) and advises caching results, which is beyond the annotations and gives the agent actionable operational 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that front-load the purpose, then give a sourcing tip, then the rate-limit advice. No unnecessary words or repetition. It is efficient and readable, though it could be more structured with explicit sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, the description covers the purpose, one ID source, and rate limiting. However, it omits how to obtain the documentId, which is essential for calling the tool. Given the annotations cover safety and the schema describes parameter types, the main gap is the missing documentId sourcing, making the description adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for documentId and organizationId individually, but the tool description adds no explanation of how to obtain the documentId, which is a required parameter. It only hints at organizationId sourcing. The description does not clarify that the 'request' parameter is an object containing these two fields, leaving the agent to rely solely on the schema for parameter structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific resource: 'Акт расхода услуг по id' (act of expense of services by id), clearly indicating a retrieval operation. It does not explicitly contrast with the sibling get_finance_incoming_service, but the resource name and the 'расхода' (expense) wording sufficiently distinguish it from the incoming variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on sourcing the organizationId via organizations__get_organizations, which is a useful prerequisite hint. However, it does not explain when to use this tool versus alternatives (e.g., list_finance_outgoing_services to find documentId) or state the condition for invoking it. No exclusions or alternative routing are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__get_inventory_counteragentsARead-only
Список контрагентов. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool's safety profile is covered. The description adds a valuable behavioral constraint: the MCP server rate limit (10 requests/60s) and a recommendation to cache results, which goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the primary purpose, and contains no filler. It efficiently communicates the action, the ID source, and the throttling constraint, making every sentence earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a safe annotation profile, the description covers the essential operational details: purpose, ID sourcing, and rate limiting. It does not describe the response format, but with no output schema and a straightforward list return, this is acceptable. The absence of an explicit note about the 'request' wrapper in the schema is mitigated by the schema itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage at the top level, the description needs to compensate for parameter meaning. It adds one useful piece: how to source organizationId via organizations__get_organizations. However, it does not explain the type, limit, or offset parameters, leaving them entirely to the schema's nested descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List of counterparties' (Список контрагентов), which is a specific verb and resource. It clearly identifies the tool's purpose, and no sibling tool targets the same resource, so it is distinguishable. However, it does not explicitly mention the 'inventory' context beyond the tool name, which slightly limits differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on obtaining the organizationId via organizations__get_organizations, and includes a concrete rate-limit and caching instruction. This gives the agent clear operational context, though it does not explicitly contrast the tool with 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.
invoice_processing__get_inventory_disassemble_documentARead-only
Акт разборки по id. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds valuable behavioral context: MCP-server throttling (max 10 requests per 60 seconds) and a caching recommendation, which are not present in annotations and help the agent plan calls appropriately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise, with three short sentences each serving a distinct purpose: core action, ID source, and throttling guidance. The main purpose is front-loaded, and there is no filler or redundant repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, organizationId source, and throttling, but omits where to obtain the documentId (likely from the list endpoint) and provides no information about the return value. Given the absence of an output schema and the need to call this tool correctly, this is a notable gap in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains where to obtain organizationId, but does not clarify the source of documentId or its relationship beyond 'по id'. This adds partial meaning but leaves the agent to infer documentId semantics from the bare GUID schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Акт разборки по id' (disassembly act by id), which clearly identifies the action and resource. The explicit 'по id' distinguishes it from sibling list tools like list_inventory_disassemble_documents, and the instruction on obtaining organizationId further clarifies the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by explaining where to obtain the organizationId via organizations__get_organizations, implying this tool is for fetching a single document by ID. It does not explicitly mention alternatives or when-not cases, but the get-by-id purpose is evident and no exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__get_inventory_incoming_invoiceBRead-only
Приходная накладная по id. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds genuine behavioral value by disclosing the MCP-server throttling limit (10 requests per 60 seconds) and advising dialog-level caching, which the annotations do not provide. This is useful, non-contradictory context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences each earn their place: purpose is front-loaded, ID sourcing follows, and the rate-limit/cache note is a compact operational warning. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a get-by-ID tool with two required parameters, the description explains only organizationId provenance and omits how documentId is obtained or what its identifier semantics are. It also fails to point to the natural sibling list_inventory_incoming_invoices for discovering document IDs. The rate-limit note is helpful but does not fill these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must compensate, but it only explains how to source organizationId and leaves documentId implicit despite it being a required field. The request-wrapper structure and additional_properties are also unaddressed. Partial value at best.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('Приходная накладная') and the access mode ('по id'), which clearly distinguishes it as an incoming-invoice-by-ID lookup from the many sibling get/list invoice tools. It lacks an explicit verb and does not spell out how it differs from sibling get_inventory_* tools, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a useful prerequisite directive for obtaining organizationId via organizations__get_organizations, but it does not say when to choose this tool over list_inventory_incoming_invoices or over the similar get_inventory_returned_invoice/get_inventory_outgoing_invoice tools. No alternatives or exclusions are mentioned, so usage context is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__get_inventory_incoming_returned_invoiceBRead-only
Входящая возвратная накладная по id. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read operation (readOnlyHint=true, destructiveHint=false). The description adds a concrete rate limit (10 requests per 60 seconds) and advises caching in the dialogue, which meaningfully supplements the safety profile. It does not mention response shape or errors, but the rate-limit and caching guidance is valuable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core purpose comes first, followed by the ID source and then the rate limit. Every sentence earns its place with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, the description covers the purpose and rate limit adequately, but it omits how to obtain documentId and how to distinguish this tool from similar invoice retrieval tools (e.g., get_inventory_returned_invoice). Given the large sibling list and no output schema, these gaps make the description somewhat incomplete for correct tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds only a pointer for organizationId (via organizations__get_organizations). The documentId parameter is entirely unaddressed, and there is no explanation of the request wrapper structure or expected formats. This leaves a critical parameter undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Входящая возвратная накладная по id' clearly identifies the resource (incoming return invoice) and the operation (retrieval by ID). It differentiates from sibling tools like get_inventory_returned_invoice (without 'incoming') and get_inventory_incoming_invoice (without 'returned'), though it does not explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only explains how to obtain organizationId via organizations__get_organizations, which is parameter guidance rather than tool-selection guidance. It provides no conditions, alternatives, or exclusions to help the agent decide when to use this tool over its many invoice-processing siblings, so the agent must rely on the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__get_inventory_internal_transferBRead-only
Документ внутреннего перемещения по id. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds meaningful behavioral context by disclosing MCP-server throttling (10 requests per 60 seconds) and recommending caching in the dialog. This goes beyond the annotations and helps the agent plan its calls. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no unnecessary filler. It front-loads the purpose, then provides ID-sourcing and throttling guidance efficiently. It could be slightly better organized, but it earns high marks for brevity and directness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter getter with no output schema, the description covers the organizationId source and rate limiting, but omits how to obtain documentId (likely via a list call) and what the response contains. Given the low schema coverage, these omissions leave an agent without full calling context. The throttling guidance is a positive but does not complete the picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must compensate, but it only addresses organizationId by pointing to organizations__get_organizations. documentId is not explained at all beyond 'by id', and additional_properties is ignored. The schema itself has basic GUID descriptions, but the description does not add sufficient meaning for the required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Документ внутреннего перемещения по id' clearly indicates a document retrieval by ID, with the tool name confirming the 'get' action. It distinguishes the resource (internal transfer) from sibling getters for incoming invoices, outgoing invoices, and writeoffs, so an agent can identify the target. However, it is a noun phrase rather than an explicit verb phrase, which slightly reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance provided is where to obtain organizationId via organizations__get_organizations. There is no instruction on when to use this tool versus the sibling list_inventory_internal_transfers, nor any mention of prerequisites for documentId. The description does not state that this is for fetching a single document after listing, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__get_inventory_outgoing_invoiceARead-only
Расходная накладная по id. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only and non-destructive. The description adds a concrete rate-limit constraint (max 10 requests/60s) and advises caching, which is useful operational behavior beyond the annotations. It does not disclose return shape or errors, but the main safety profile is covered 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences: purpose first, then ID sourcing, then throttling/caching. No filler; it is front-loaded and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a by-id read tool with only a GUID-pair parameter, the description should at least point to the corresponding list tool for documentId and mention that the result is a single invoice. It only covers organizationId sourcing and throttling, so an agent may be unsure where documentId comes from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the burden of explaining parameters. It only explains where to get organizationId ('organizationId → organizations__get_organizations'), but omits the documentId source and does not clarify that the schema expects a wrapper 'request' object containing both GUID fields. Most parameter meaning is left to the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('расходная накладная' / outgoing waybill) and states it is retrieved by id. It distinguishes it from sibling invoice get tools by the 'outgoing' qualifier, though the verb 'get' is only implicit in the noun phrase rather than explicitly stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent where to obtain organizationId (via organizations__get_organizations) and warns about the MCP-server throttle with a caching instruction. It does not explicitly contrast with sibling list/get tools or state when to prefer this tool, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__get_inventory_production_documentARead-only
Акт производства по id. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a concrete rate limit specific to the MCP server and recommends caching, which is not present in the annotations. Since readOnlyHint=true and destructiveHint=false already cover the safety profile, this additional operational detail earns credit. It does not describe response format, but that is less critical with a read-only annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of three short phrases: purpose, ID source, and throttling/caching. It front-loads the purpose and adds only operational guidance without any fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description leaves the documentId source implicit—it never states that IDs come from list_inventory_production_documents. There is no output schema, so the return format is unknown. It covers organizationId sourcing and throttling well, but for a get-by-id tool the missing pointer to the list tool is a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% at the parameter level. The description mentions organizationId and its source endpoint, but does not explain documentId or the nested request structure. The schema does contain GUID descriptions for the inner properties, but the signal indicates these are not enough; the description should compensate and only partially does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the specific resource (production act) and the lookup by ID, which distinguishes it from list_inventory_production_documents and other get_* siblings. It lacks an explicit verb in the description, but the tool name provides 'get', 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear precondition for obtaining organizationId via organizations__get_organizations and states the throttling limit (10 requests per 60s) with a caching suggestion. It does not explicitly contrast with list tools or mention when not to use, but the 'by id' context and ID source guidance give clear usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__get_inventory_returned_invoiceARead-only
Исходящая возвратная накладная по id. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context beyond annotations by disclosing MCP-server throttling (10 requests per 60 seconds) and advising to cache results in the dialogue. This is exactly the kind of rate-limit and caching information that an agent needs and that 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The primary purpose is front-loaded in the first sentence, and the second sentence efficiently packs two useful pieces of guidance (ID source and throttling/caching). Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-id read tool, the description covers the core purpose, one parameter source (organizationId), and an important behavioral constraint (rate limit). It does not mention where documentId comes from or describe the return shape, but the tool name and schema hints partially compensate, and annotations cover safety. This is nearly complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. The description identifies organizationId's source (organizations__get_organizations) and implies documentId through 'by id', but it does not clarify how to obtain documentId or describe formats beyond the schema's minimal GUID labels. This partial compensation justifies a mid-range score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Outgoing return invoice by id', a specific verb+resource that clearly identifies the tool as a get-by-id operation for outgoing return invoices. It differentiates itself from the incoming counterpart (get_inventory_incoming_returned_invoice) with the word 'outgoing', and the pointer to organizations__get_organizations immediately clarifies what makes this tool distinct and how to source a needed ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should be used when you have an invoice ID and an organization ID, and it provides a prerequisite by pointing to organizations__get_organizations for obtaining organizationId. However, it does not explicitly mention when to use this tool over the list_inventory_returned_invoices or the incoming returned invoice sibling, nor does it state exclusions or alternatives. The usage guidance is mostly implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__get_inventory_sales_documentARead-only
Документ продажи по id. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the tool as read-only and non-destructive, and the description adds beyond that by disclosing a concrete MCP-server rate limit (10 requests per 60 seconds) and advising dialog caching. This is valuable operational behavior that the schema and annotations do 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler: purpose, ID sourcing, and throttling. The critical information is front-loaded and each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers purpose, organizationId provenance, and throttling. However, it omits how to obtain documentId, does not mention the obvious list sibling that provides document IDs, and does not summarize what the response contains. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only explains where to get organizationId; documentId is not explained at all, and additional_properties is ignored. The guidance 'organizationId → organizations__get_organizations' helps one parameter but leaves the other key identifier semantically under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as the sales document and specifies retrieval by ID, which is clear and distinguishes it from sibling list tools like invoice_processing__list_inventory_sales_documents. It lacks an explicit verb (the Russian phrase is a noun phrase, 'Sales document by id'), so it falls just short of the strongest tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context: it tells the agent where to obtain organizationId and warns about throttling with a caching recommendation. However, it does not explicitly state when to use this tool versus the list alternative or any other sibling, leaving the selection criteria 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.
invoice_processing__get_inventory_transformation_documentARead-only
Акт переработки по id. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by disclosing MCP-server throttling (10 requests/60s) and instructing the agent to cache results. These are behavioral details not present in the annotations and are directly relevant to invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose, ID sourcing, then throttling/caching. Each sentence carries operational value, though the shorthand 'organizationId → organizations__get_organizations' is terse and slightly cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool requires two GUID parameters and has no output schema, and the description covers only organizationId acquisition and rate limiting. It does not explain how to get documentId, even though a sibling list tool exists, making the definition incomplete for correct first-time invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents documentId and organizationId as GUIDs, so the description does not need to restate types. It adds a useful pointer for where to obtain organizationId via organizations__get_organizations, but it does not clarify how to find documentId, leaving part of the parameter sourcing burden unresolved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Акт переработки по id' clearly identifies the tool as retrieving a transformation/processing document by its ID, and the 'по id' qualifier distinguishes it from the list-oriented sibling tools. It lacks an explicit verb like 'get', but the tool name supplies it and the resource scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context by pointing to organizations__get_organizations as the source for organizationId and by adding MCP throttling/caching guidance. However, it does not explain when to use this tool versus list_inventory_transformation_documents, nor does it mention how to obtain documentId, leaving the usage boundary implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__get_inventory_writeoff_documentARead-only
Акт списания по id. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description correctly does not repeat that. It adds valuable behavioral context: a throttling limit of 10 requests per 60 seconds and a caching recommendation, which are not in the annotations. This goes beyond the structured fields and helps the agent plan calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, two sentences, and front-loaded with the primary purpose. It packs the ID sourcing and throttling into the second sentence efficiently. No wasted words, though the ambiguity of 'ID' reduces clarity slightly. Still, it is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 indicate what the tool returns – it does not. It also leaves documentId unexplained and does not mention any error conditions or that it is a read-only operation (though annotations cover that). For a tool with two required parameters and no output schema, this is incomplete; an agent would not know what response to expect or how to properly construct the request beyond organizationId.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It explains the source of organizationId (from organizations__get_organizations) but completely omits documentId, which is a required parameter. The phrase 'по id' is ambiguous – it does not clarify that both documentId and organizationId are needed, nor what documentId represents. This is a significant gap for a required parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Акт списания по id' (write-off act by ID) clearly states the tool retrieves a specific write-off document by identifier. It distinguishes itself from sibling tools like list_inventory_writeoff_documents, which list many documents, and other get_* tools by specifying the document type. The verb is implicit ('get') but the resource and action are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit guidance on obtaining the organizationId via organizations__get_organizations, which is directly useful. It also gives throttling and caching advice. However, it does not explicitly state when to use this tool instead of listing tools, though that is implied by the 'by id' nature. The guidance is helpful but not exhaustive on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__list_finance_account_transactionsBRead-only
Проводки по счету за период. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context beyond those annotations: it discloses MCP-server throttling (10 requests per 60 seconds, distinct from the iikoCloud limit) and explicitly instructs caching results in the dialog. This is useful operational information that 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences, each earning its place: one states the purpose, one gives a parameter source, and one gives an actionable throttling/caching note. It is front-loaded and contains 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four required parameters, no output schema, and 0% schema description coverage, the description omits critical information: there is no guidance on finding accountId, no detail on expected response shape, and no mention of date-range constraints or pagination. The throttling and organizationId hints help, but the overall picture is incomplete for an agent to call the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It only explains where to get organizationId; it does not clarify how to obtain accountId or provide any meaning for the from/to date parameters beyond their schema names. This is insufficient given the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Проводки по счету за период' (account transactions for the period), clearly identifying a read/list operation scoped to a finance account and date range. It also distinguishes itself from adjacent invoice_processing siblings by mentioning 'по счету' (by account), though it does not explicitly contrast with similar transaction-list tools like list_finance_document_transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical guidance for obtaining organizationId and caching due to throttling, but it gives no guidance on when to choose this tool versus alternatives such as list_finance_document_transactions or finance service listers. There are no explicit when-to-use or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__list_finance_document_transactionsARead-only
Проводки по документу. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds valuable behavioral context: MCP-server throttling (max 10 requests per 60 seconds) and a caching recommendation, which go beyond the annotations and help the agent avoid rate-limit errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that front-loads the core purpose and then provides operational details (ID source, throttling, caching) without any fluff. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward list operation with two required GUID parameters, the description covers the critical operational aspects: where to get organizationId and rate limiting. It does not explain the output format or where to obtain documentId, but given the simplicity and lack of output schema, these gaps are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for documentId and organizationId ('Document identifier (GUID)' and 'Organization identifier (GUID)'). The description adds the source for organizationId, which is useful but not extensive. Since schema coverage is 0% in the description, it partially compensates by giving operational context for one parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool returns postings/transactions for a document ("Проводки по документу"), which is a clear verb+resource combination. It distinguishes from siblings by focusing on 'document' rather than account, though it doesn't explicitly contrast with similar finance transaction tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on where to obtain organizationId (from organizations__get_organizations) and mentions throttling and caching advice. However, it does not state when to use this tool versus alternatives like list_finance_account_transactions, nor does it give exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__list_finance_incoming_servicesARead-only
Список актов прихода услуг за период. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context beyond those annotations: MCP-server throttling at no more than 10 requests per 60 seconds and an explicit instruction to cache the result in the dialogue. No contradiction with annotations is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded sentences cover the result, the ID acquisition path, and the throttling/caching rule. Every sentence adds operational value with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool this is actionable: it gives the period framing, the organizationId source, and the rate-limit/caching behavior needed to call it correctly. It does not describe the return payload or pagination, but the list semantics and schema make the invocation sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents from/to as YYYY-MM-DD and organizationId as a GUID. The description adds the 'period' semantic and a concrete source for organizationId via organizations__get_organizations, but it does not elaborate on the request-wrapper structure or formatting beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-noun phrase: 'List of acts of receipt of services for a period,' immediately identifying the resource and time scope. It clearly distinguishes this list endpoint from the singular get_finance_incoming_service and from the outgoing-service sibling by using 'прихода услуг.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a concrete prerequisite by pointing to organizations__get_organizations for obtaining organizationId, and it implies the period-based use case. However, it does not explicitly state when to prefer this over get_finance_incoming_service or list_finance_outgoing_services, so the usage guidance remains mostly implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__list_finance_outgoing_servicesARead-only
Список актов расхода услуг за период. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't need to state safety. It adds value by disclosing the rate-limit constraint (not iikoCloud limit but MCP-server throttling) and advising caching. This is behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main purpose, then follows with critical usage details. The rate-limit warning is highly action-relevant for agents and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple schema and the presence of read-only annotations, the description covers the essentials: purpose, parameter source, and rate limiting. It doesn't describe return format, but no output schema exists, so this is a minor gap. Overall, it's strong but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the tool has only one parameter (request wrapper) with three fields (from, to, organizationId) that are self-explanatory from their schema descriptions (dates and GUID). The description adds the 'period' framing but no additional syntax details, so it's minimal but adequate given the simple schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Список актов расхода услуг за период' (list of expense service acts for a period), which is a specific verb+resource+scope. It distinguishes this tool from its siblings like list_finance_incoming_services (incoming vs outgoing) and list_inventory_outgoing_invoices (inventory vs finance).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent where to get the organizationId (from organizations__get_organizations) and provides rate-limit guidance (throttling: max 10 requests per 60s, cache results). This exceeds basic usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__list_inventory_disassemble_documentsARead-only
Список актов разборки за период. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: a throttling limit (max 10 requests per 60 seconds) and a caching recommendation, which are not present in annotations. This goes beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the purpose, then the ID source, then throttling advice. Every sentence earns its place with no fluff, making it appropriately concise and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema, the description covers the essential inputs (period, organizationId) and adds throttling/caching guidance. However, it does not describe the return format, pagination, or any result structure, which might be expected for a list operation. Given the simplicity and the existence of similar sibling tools, it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The top-level parameter 'request' has no description in the schema (coverage 0%), so the description must compensate. It mentions organizationId and how to obtain it, and implies a date range via 'за период'. However, it does not explain the structure of the request object or the exact meaning of 'from' and 'to' beyond what the nested schema fields already state. It adds some but not full compensation for the missing top-level parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists disassembly acts (акты разборки) for a period, specifying the verb 'list' and the resource. It distinguishes itself from sibling tools like list_inventory_writeoff_documents by naming a specific document type, making it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you need disassembly acts, use this tool) but does not explicitly contrast with alternatives or state when not to use it. It gives a hint on how to obtain organizationId, but no guidance on selecting among the many list tools in the same family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__list_inventory_incoming_invoicesARead-only
Список приходных накладных за период. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the read-only nature is covered. The description adds valuable behavioral context: it explicitly notes MCP server throttling (10 requests per 60 seconds) and advises caching, which is not implied by annotations and helps the agent manage rate limits. This goes beyond the structured data 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler. The core purpose is stated first, followed by essential operational hints (ID source and throttling). Every sentence earns its place, and the most critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with 3 parameters and read-only annotations, the description is quite complete. It covers the ID source and rate limiting, which are the main operational concerns. It does not describe the return format or pagination, but for a simple list tool this is acceptable given the name implies a list. The absence of an output schema is mitigated by the clear purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema itself provides descriptions for 'from', 'to', and 'organizationId' (e.g., 'Period start date (YYYY-MM-DD format)'), so baseline is 3. The description adds meaningful guidance for organizationId by specifying where to get it (organizations__get_organizations), which is not in the schema. This extra pointer improves parameter understanding, though it does not add details on 'from' and 'to' beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists incoming invoices (приходных накладных) for a period, using a specific verb 'list' and resource. It distinguishes itself from sibling tools like outgoing invoices by the term 'incoming'. It lacks an explicit statement about what it does not do, but the name and description are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides practical usage guidance: it tells where to obtain organizationId (from organizations__get_organizations) and gives a caching recommendation due to throttling. However, it does not mention when to use this tool versus alternatives (e.g., list_inventory_incoming_returned_invoices) or when not to use it. It focuses on operational context rather than selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__list_inventory_incoming_returned_invoicesARead-only
Список входящих возвратных накладных за период. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context beyond that: an MCP-server throttling limit of 10 requests per 60 seconds and an explicit caching recommendation for the dialog. This is valuable operational information an agent would not otherwise know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences deliver the core purpose, the ID source, and the rate-limit/caching instruction with no filler. The most important information is front-loaded, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers the essential call requirements: period, organizationId source, and throttling behavior. It does not describe response shape, but that is not required here since no output schema exists and the tool is a simple list operation. Slightly more detail about default date ranges or pagination would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents from, to, and organizationId with formats and types. The description adds that organizationId can be obtained from organizations__get_organizations and clarifies the date-range purpose, but it does not go further into parameter formats or constraints. Given the schema covers the basics, this is adequate but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Список входящих возвратных накладных за период' (list incoming return invoices for the period). It is unambiguous about the object being listed, but it does not explicitly differentiate this tool from the similarly named sibling list_inventory_returned_invoices, so it falls short of full sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful context: the period scope and where to obtain organizationId via organizations__get_organizations. However, it gives no guidance on when to choose this tool over related siblings such as list_inventory_returned_invoices or list_inventory_incoming_invoices, and no exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__list_inventory_internal_transfersARead-only
Список документов внутреннего перемещения за период. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive. The description adds valuable behavioral context beyond annotations: MCP-server throttling (10 requests per 60 seconds), a caching recommendation, and guidance for obtaining organizationId from another tool. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the purpose. Every sentence adds value: the purpose, the ID source, and the throttling/caching note. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with one nested parameter and no output schema, the description covers the essential operational aspects: purpose, period, organizationId provenance, and rate limiting. It does not discuss pagination or response shape, but these are not critical for a straightforward read-only list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It partially does: 'за период' clarifies that from/to define the period, and the organizationId source is pointed to organizations__get_organizations. However, it does not explain the exact format of from/to or address additional_properties, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 of internal transfer documents for the period). This clearly distinguishes it from sibling tools like list_inventory_writeoff_documents or list_inventory_production_documents by naming the exact document type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (listing internal transfers over a period) and provides a source for the organizationId. However, it does not explicitly mention alternative tools or when not to use this one, leaving differentiation to 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.
invoice_processing__list_inventory_outgoing_invoicesARead-only
Список расходных накладных за период. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false). The description adds genuinely useful behavioral context beyond the annotations: the MCP-server throttle limit of 10 requests per 60 seconds (explicitly distinguished from the iikoCloud limit) and a recommendation to cache results in the dialogue. This is valuable operational transparency that structured fields do 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, each earning its place: the core purpose is front-loaded, followed by ID sourcing and throttling guidance. There is zero filler or repetition of annotation data. Well-structured for an agent to quickly parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers the essentials: what it lists, the period scope, how to obtain the required organizationId, and the rate limit with a caching strategy. Minor gaps remain: it does not clarify what the response contains or explicitly route away from the lookalike incoming-invoices siblings, but nothing blocks correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter semantics. It explicitly addresses organizationId by telling the agent where to source it, which is genuinely helpful. However, it does not explain the from/to period parameters, though the underlying schema internally does document their YYYY-MM-DD format. The description partially compensates for the coverage gap but not completely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 outgoing waybills for a period). The word 'расходных' (outgoing) distinguishes it from the sibling list_inventory_incoming_invoices, though it does not explicitly name that sibling. It is essentially a translation of the tool name plus period scoping, which is clear but adds little beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides operational usage guidance: where to obtain the organizationId (via organizations__get_organizations) and a throttling/rate-limit reminder. However, it gives no explicit when-to-use vs. alternatives guidance, such as when to prefer this over get_inventory_outgoing_invoice or list_inventory_incoming_invoices, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__list_inventory_production_documentsBRead-only
Список актов производства за период. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds a concrete server-side throttling constraint (max 10 requests per 60 seconds, distinct from iikoCloud limit) and instructs to cache results, which is beyond the structured annotations. It also notes the dependency on organizations__get_organizations for the required ID. These are useful behavioral traits that 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff. It front-loads the purpose, then gives the ID lookup hint, then the throttling note. Every sentence earns its place 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a list operation with one nested object parameter and no output schema. The description omits return structure, pagination, and any ordering/filtering details beyond the period. Annotations cover the read-only safety profile, but the description does not fully equip an agent to predict the output or handle large result sets, especially without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% per the context signal, so the description must compensate. It adds value only for organizationId by directing to organizations__get_organizations. The from/to parameters are only implied by 'period', but their names, requiredness, and formats are not addressed in the description; the schema's property descriptions exist but only partially cover the gap. This is insufficient compensation for the very low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 of production acts for the period' (Список актов производства за период). It clearly identifies the tool as a list operation for production documents and implies a time period filter. It does not explicitly name sibling list tools, so it lacks explicit sibling differentiation, but the resource is distinct enough from siblings like writeoff or sales documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to choose this tool over the many sibling invoice_processing__list_* tools. It only gives a hint for obtaining organizationId and a throttling note. There is no explicit when/when-not or alternative mention, so an agent must rely on the tool name and resource type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__list_inventory_returned_invoicesARead-only
Список исходящих возвратных накладных за период. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the tool is safe. The description adds the rate limiting behavior which is not in annotations, providing critical operational context. This goes beyond what annotations offer, earning a high score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the purpose, and every sentence provides useful guidance. No fluff, and it ends with practical advice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool, the description covers the essential usage: what it lists, the period, and where to get the ID. Since there's no output schema, it doesn't describe the response format, but for a list endpoint that might be acceptable. The rate limit advice adds completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions the period (from/to) and organizationId indirectly, but does not explain each parameter in detail. However, the description names the date range and the organization ID source, which adds value beyond the schema's parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists outgoing return invoices for a period, specifying a verb and resource. It is distinguishable from siblings like list_inventory_incoming_returned_invoices by the word 'исходящих' (outgoing). However, the description is in Russian while the tool name is English, which might be slightly less clear for some agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent where to get the required organizationId (via organizations__get_organizations) and includes a rate limit warning with caching advice. This is unusually helpful and directly guides when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__list_inventory_sales_documentsARead-only
Список документов продажи за период. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description is not required to restate these. It adds valuable behavioral context by disclosing MCP-server throttling limits and recommending caching to avoid hitting those limits. This goes beyond the annotations and provides actionable information about rate limiting, which is crucial for an agent to call the tool correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise—two sentences that front-load the core purpose, then provide the critical organizationId source and throttling guidance. Every sentence earns its place with no filler or redundancy. The structure is efficient and immediately actionable for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and read-only annotations, the description is fairly complete. It covers the purpose, the key parameter's source, and a critical rate-limit constraint. The lack of an output schema is mitigated by the clear semantics of 'list sales documents'. Minor gaps include no explicit mention of response format or pagination, but these are not essential for a basic list operation. Overall, it is complete enough 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's top-level 'request' parameter has no description (coverage 0%), but nested fields (from, to, organizationId) have descriptions. The tool description provides a hint about organizationId (where to get it), which adds some value beyond the schema's 'Organization identifier (GUID)'. However, it does not explain the from/to date formats or any constraints, and it does not compensate fully for the missing top-level parameter description. Given the partial contribution, a score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists sales documents for a period ('Список документов продажи за период'). This is a specific verb-resource pair that distinguishes it from sibling tools like list_inventory_production_documents and list_inventory_writeoff_documents by document type. The name alone already disambiguates, and the description reinforces it with the time period context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a direct pointer for obtaining organizationId via organizations__get_organizations, which is essential for calling the tool. It also includes throttling advice (max 10 requests per 60 seconds) and recommends caching, which guides when and how to use the tool. It does not explicitly compare against alternative list tools, but the document type is evident from the name and description, so the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__list_inventory_transformation_documentsARead-only
Список актов переработки за период. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and non-destructive. The description adds non-obvious behavioral context beyond annotations: MCP-server throttling (no more than 10 requests per 60 seconds) and a recommendation to cache results in the dialog. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, then ID source, then throttling/caching advice. Every sentence contributes unique operational value with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 one nested request parameter, the description covers what is listed, the date window, where to obtain the organization ID, and a rate-limit/caching caveat. It does not describe output fields or pagination, but the list nature is clear and no output schema is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's $defs already document YYYY-MM-DD formats for from/to and GUID for organizationId, and the description adds value by pointing to organizations__get_organizations as the source for organizationId. Given the low reported schema coverage and nested request shape, this is helpful but only partial compensation for the parameter semantics burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Список актов переработки за период', which states a specific list operation over transformation/processing documents bounded by a period. It is distinguishable from sibling inventory document tools by resource type, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete operational guidance: where to obtain organizationId and a throttling/caching constraint. However, it does not explain when to prefer this tool over sibling list_inventory_* tools or state any exclusions, leaving the decision among alternatives implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice_processing__list_inventory_writeoff_documentsARead-only
Список актов списания за период. Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds a throttling constraint (max 10 requests per 60s) and caching recommendation, which are valuable behavioral details beyond annotations. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: the first states purpose, the second covers ID sourcing and throttling. No filler, front-loaded with the core purpose. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with three required parameters, the description provides purpose, ID source, and throttling guidance. It does not mention pagination or response format, but annotations cover read-only safety and the schema documents parameters. Adequate 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema itself provides descriptions for from, to, and organizationId (format and type), so the baseline is 3. The description adds value by telling where to get organizationId (via organizations__get_organizations), which is useful. It does not explain the from/to format further, but the schema already does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool lists write-off acts for a period, which is a specific verb and resource. It distinguishes from get_inventory_writeoff_document (singular) by implying a list, and from other list tools by the resource name. However, it does not explicitly differentiate from sibling list tools like list_inventory_production_documents, though the name does that.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides guidance on where to obtain organizationId and mentions throttling/caching, but it does not explicitly state when to use this tool versus alternatives. It lacks exclusions or comparisons to other list tools or the singular getter, 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.
marketing_sources__get_marketing_sourcesARead-only
Справочник источников маркетинга организаций. Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond annotations by disclosing the MCP-server rate limit (1 request per 60 seconds) and advising to cache the result in the dialogue.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler: the first states the purpose, the second provides the parameter source and a critical caching/rate-limit note. Everything present earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only, one-parameter lookup, the description covers the essential operational details: what the tool returns at a high level, where to get the required ID, and how to respect throttling. It does not describe the expected return shape, but given the low complexity and annotation-covered safety profile, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds a practical pointer for populating organizationIds by naming organizations__get_organizations, which helps the agent source the value. However, it does not explain the request wrapper, the array semantics, or the UUID constraint beyond what the schema itself already states, and schema description coverage is reported as 0%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (organizations' marketing sources) and the organizational scope, and the tool name supplies the get/list verb. It is clear enough to distinguish from the many sibling tools, though the description itself uses a noun phrase rather than 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives actionable context: it tells the agent how to obtain organizationIds via organizations__get_organizations and warns about MCP-server throttling with a caching recommendation. It does not explicitly state when to prefer this over an alternative, but no closely competing sibling tool exists, so the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
messages__check_sms_sending_possibilityARead-only
Проверить возможность отправки SMS для организации.
Args: request: Параметры запроса SmsSendingPossibilityRequest
Returns: Ответ с признаком возможности отправки SMS Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds the MCP server throttling limit (10 requests per 60 seconds) and advises caching, which is behavioral context beyond annotations. It also notes the return type (an indicator of possibility). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with labeled sections (Args, Returns). The throttling note is extra but essential. No redundancy. It front-loads the purpose and then provides essential operational details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter read-only tool with no output schema, the description covers the core purpose, ID source, and throttling. It does not fully specify the output structure (just 'indicator of possibility'), but this is adequate for an agent to call it correctly. Minor gaps in error handling or edge cases are acceptable for such a tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It restates the parameter 'request' and clarifies that organizationId can be sourced from organizations__get_organizations, which adds meaning. However, it does not explain the structure of the request object or what organizationId represents beyond being a UUID. Minimal but helpful compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'check the possibility of sending SMS for an organization.' It distinguishes itself from the sibling messages__check_sms_status (status checking) by focusing on the pre-send capability check. The returns note clarifies it provides an indicator of possibility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context on when to use (when you need to verify SMS sending capability) and gives a pointer to organizations__get_organizations for the required ID. It also includes a throttling note with caching advice. However, it does not explicitly contrast with messages__check_sms_status or mention when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
messages__check_sms_statusARead-only
Получить статусы отправленных SMS по их идентификаторам.
Args: request: Параметры запроса CheckSmsStatusRequest
Returns: Ответ со статусами SMS Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds valuable behavioral context: throttling (max 10 requests per 60s) and a recommendation to cache results. This goes beyond annotations and is operationally useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main purpose. It uses a structured Args/Returns format and includes usage hints. There is no redundancy or filler; every sentence adds some value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the response format is only vaguely described ('Ответ со статусами SMS') without detailing possible statuses. It also does not explain how to obtain smsIds or handle errors. The rate limit advice is useful, but other operational details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage on properties, so the description must compensate. It only mentions the request type and gives a hint for organizationId origin, but does not explain what smsIds represents or the meaning of the fields. The agent must infer from parameter names, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves statuses of sent SMS by their IDs ('Получить статусы отправленных SMS по их идентификаторам'). This is a specific verb+resource that distinguishes it from the sibling messages__check_sms_sending_possibility, which checks sending possibility rather than status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides some usage guidance: where to obtain organizationId (organizations__get_organizations) and a rate limit with caching advice. However, it does not explicitly compare with the sibling tool messages__check_sms_sending_possibility to clarify when to use this tool over that one, so the guidance is partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
operations__get_command_statusARead-only
Статус команды по correlation_id (Success/InProgress/Error).
HTTP 410 — correlationId устарел, polling прекращать. SDK-исключение ApiException со status=410 пробрасывается вызывающему как есть (в проекте нет отдельного исключения для этой ситуации). Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 60 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds substantial behavioral context: HTTP 410 handling (outdated ID, stop polling), SDK exception behavior (ApiException with status=410 thrown as is, no separate exception), and throttling of the MCP server (not iikoCloud) with a caching suggestion. This goes well beyond the annotations and fully discloses expected runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the purpose, then adds error handling, ID sourcing, and throttling guidance. Each line adds value with no fluff. It uses line breaks to separate concepts, making it scannable. It is not overly verbose but could be slightly tighter by merging the ID sourcing note, so a 4 is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status polling tool with no output schema, the description covers the essential aspects: what it does, the possible statuses, the error condition (HTTP 410) and how to handle it, where to get the required ID, and rate-limiting guidance. It does not explain the exact response format (beyond status values) or the polling loop mechanics, but these are not critical for a caller. The presence of a sibling operations__wait_command suggests potential overlap, but the description is self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both correlationId (operation ID) and organizationId (organization the correlation belongs to), so the schema coverage is high. The tool description adds only one extra hint: where to get organizationId (via organizations__get_organizations). It does not add meaning for correlationId beyond the schema. Given the baseline of 3 for high schema coverage, the marginal addition justifies a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool returns the status of a command by correlation_id, listing the possible values (Success/InProgress/Error). It clearly identifies the verb ('get status') and resource ('command by correlation_id'), which is specific enough to distinguish it from generic getters. However, it does not explicitly differentiate from the sibling operations__wait_command, which likely waits for a status rather than returns it, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: it is for polling status, and HTTP 410 signals that the correlationId is outdated and polling should stop. It also instructs where to obtain organizationId (via organizations__get_organizations) and warns about MCP server throttling (60 requests/60s) with a recommendation to cache results. These are explicit usage rules, though it does not mention alternatives like operations__wait_command, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
operations__wait_commandARead-only
Дождаться терминального статуса команды (Success/Error).
Raises: TimeoutError: статус не стал терминальным за timeout correlationId берётся из ответа той команды, исход которой вы ждёте: любой write-тул возвращает его в поле correlationId. Отдельного тула-источника correlationId не существует — этот тул сам принимает его аргументом. Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| timeout | No | ||
| interval | No | ||
| correlation_id | Yes | ||
| organization_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, it discloses that this is a wrapper with no own throttling but consumes underlying API quota, and raises TimeoutError. This adds valuable behavioral context not present in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: purpose first, then error, then correlationId sourcing, then quota/caching note. It is reasonably concise given the complexity, though slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers the core waiting behavior and correlationId sourcing, but omits return value (what happens on success) and leaves interval and organization_id unexplained. For a wrapper with an existing get_command_status sibling, some of this is acceptable, but the gaps are notable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description is responsible for explaining parameters. It explains correlation_id's origin and timeout implicitly via TimeoutError, but interval and organization_id are not described at all, leaving the agent to guess their meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool waits for a terminal status (Success/Error) of a command, distinguishing it from a mere status check. It also names the TimeoutError condition, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when to use (after a write-tool returns correlationId) and advises caching the result to avoid consuming API quota. It implies that for a single status check you'd use the sibling operations__get_command_status, though not explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orders__get_table_orders_by_idBRead-only
Столовые заказы организаций по идентификаторам. Где взять ID: orderIds → deliveries_retrieve__get_deliveries_by_delivery_date_and_status; organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 20 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, covering safety. The description adds valuable behavioral context: a specific throttling limit (20 requests per 60 seconds) and a caching recommendation, which are not in the annotations. This goes beyond the structured data and helps the agent manage rate limits and avoid redundant calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with three focused sentences: purpose, ID sourcing, and throttling advice. Information is front-loaded with the core purpose, and every sentence adds actionable value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested request object and multiple parameters, the description covers the essential purpose, key ID sourcing, and rate limiting. However, it omits clarification on the required choice between orderIds and posOrderIds, and does not mention what the response contains (no output schema provided). While the schema provides some details, the description could be more complete by explicitly noting the parameter exclusivity and required organizationIds, which are critical for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description mentions where to obtain orderIds and organizationIds but does not explain the meanings of other parameters (posOrderIds, sourceKeys, returnExternalDataKeys) or the mutual exclusivity between orderIds and posOrderIds. Although the schema includes descriptions for some parameters, the context signal indicates 0% schema description coverage, so the description should compensate more fully. It partially addresses two parameters but leaves the rest unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource ('table orders of organizations') and the method ('by identifiers'), making the tool's purpose clear. It distinguishes from the sibling 'orders__get_table_orders_by_table' by explicitly specifying lookup by identifiers. However, it lacks an explicit action verb (e.g., 'gets'), relying on the tool name to imply retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides sourcing instructions for two key IDs (orderIds from deliveries_retrieve__get_deliveries_by_delivery_date_and_status; organizationIds from organizations__get_organizations), which helps with parameter preparation but does not clarify when to choose this tool over alternatives like 'orders__get_table_orders_by_table'. No explicit when-to-use or when-not-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orders__get_table_orders_by_tableBRead-only
Столовые заказы организаций по столам. Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 20 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond annotations: it discloses MCP-server throttling (max 20 requests per 60 seconds) and advises caching results in the dialog. This is exactly the kind of non-obvious operational detail that helps an agent avoid rate-limit failures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose, but it mixes three distinct ideas: purpose, ID sourcing, and throttling/caching. Each sentence adds some value, yet the flow is somewhat disjointed. It is not verbose, but the structure could be more coherent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations covering safety and a schema that documents most fields, the definition is partially complete. The throttling disclosure and ID-sourcing hint are useful. However, it omits the 90-day retention noted in the schema, does not explain the response shape, and lacks any comparison to the similar sibling orders__get_table_orders_by_id. Given no output schema and very low parameter coverage, these are meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter documentation, but it does not. The only parameter-level hint is 'Где взять ID' for organization IDs, pointing to organizations__get_organizations. It does not explain tableIds, dateFrom/dateTo, statuses, or sourceKeys. The nested request object is a single parameter, which slightly raises the baseline, but most parameter meaning remains in low-level schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: retrieving table orders for organizations by table. It is clear enough to distinguish from most siblings, though it does not explicitly contrast with the similar orders__get_table_orders_by_id. The phrase 'Столовые заказы организаций по столам' conveys the scope well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as orders__get_table_orders_by_id. The description does provide a hint on where to obtain organization IDs, but that is parameter sourcing, not usage context. No exclusions or selection criteria are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organizations__get_organizationsBRead-only
Получить список организаций.
Args: request: Параметры запроса (по умолчанию пустой GetOrganizationsRequest)
Returns: Ответ со списком организаций Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 10 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral context beyond the annotations (readOnlyHint=true, destructiveHint=false). It discloses throttling limits ('не чаще 1 запрос(ов) за 10 с') and recommends caching ('кэшируйте результат в диалоге'). This is useful operational guidance that the annotations do not cover. However, it does not describe return format, error handling, or other behaviors, but given the annotations cover safety, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately sized but somewhat disorganized. It includes an 'Args' section, a 'Returns' section, and a note about throttling. The 'Where to get ID' phrase is ambiguous and could be clearer. While not overly verbose, the structure mixes Russian and English and lacks a clear, front-loaded statement. It is acceptable but not polished.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is straightforward (listing organizations), and the description covers the core purpose, throttling, and a hint about IDs. However, it does not mention that by default it returns all organizations (though the schema implies this via null organizationIds), nor does it address pagination, error cases, or output structure. Given the lack of an output schema, some additional context about expected response would improve completeness. It is adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description only mentions the 'request' parameter and notes its default empty state. The input schema itself provides detailed descriptions for all sub-fields (includeDisabled, organizationIds, returnExternalData, returnAdditionalInfo) in English, so the schema covers parameter semantics well. The description adds minimal value beyond stating the default, which is already in the schema. With high 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Получить список организаций' (Get list of organizations). It uses a specific verb and resource, and the name is unambiguous. While it doesn't explicitly differentiate from sibling tools, the purpose is distinct and the description includes a hint about obtaining organization IDs, which clarifies its role. However, it doesn't name alternatives, so it's not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal usage guidance. It implies that the tool is used to get organization IDs ('organizationIds → organizations__get_organizations') but does not explicitly state when to use it versus alternatives or when not to use it. It also advises caching due to throttling, which is more behavioral than usage direction. No clear conditions or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
organizations__get_organization_settingsBRead-only
Получить настройки организаций.
Args: request: Параметры запроса (по умолчанию пустой OrganizationsSettingsRequest)
Returns: Ответ с настройками организаций Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 10 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior. The description adds specific behavioral guidance about MCP-server throttling (1 request per 10 seconds) and recommends caching results, which is valuable operational context beyond what annotations provide. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose. It uses a clear structure (Args, Returns, notes) and contains no fluff. The inclusion of throttling and caching advice is useful without excessive length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a complex request object and no output schema, the description is insufficient. It only vaguely states 'Response with organization settings' and does not describe the response structure, available filters, or the meaning of settings parameters. The lack of detail on what can be requested and what is returned makes the tool hard to use correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter documentation. It only mentions the 'request' parameter generically and does not explain its internal structure (organizationIds, includeDisabled, parameters, returnExternalData). The schema itself has descriptions for each field, but the tool description adds no meaningful detail, leaving the agent to rely solely on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get organization settings' which clearly identifies the verb and resource. It also points to organizations__get_organizations for obtaining organization IDs, which helps distinguish it from sibling tools that retrieve organization lists. However, it does not explicitly contrast with other tools or mention what it does not do, so it lacks full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a usage hint by noting where to get organization IDs (organizations__get_organizations) and advises caching due to throttling. However, it does not explicitly state when to use this tool versus alternatives or provide exclusions. The usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report__get_customer_transactions_by_dateARead-only
Получить транзакции клиента за период (постранично).
Даты трактуются как UTC включительно (date_from..date_to).
Args: request: Параметры запроса (customer/organization, период, пагинация)
Returns: Ответ со списком транзакций за период Где взять ID: customerId → customers__get_customer_info; organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint=true and destructiveHint=false, the safety profile is covered. The description adds meaningful behavior beyond annotations: dates are interpreted as UTC-inclusive, the response is paginated, and the MCP server throttles at 10 requests/60s with an explicit caching recommendation. This is exactly the kind of operational context annotations do not provide. No contradiction with the read-only hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact at roughly four sentences, but structurally messy: the 'Returns:' line runs directly into the ID-sourcing note and throttling advice in a single run-on paragraph. The Args/Returns docstring format fights with the prose instructions. Every sentence earns its place, but the organization hurts scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a complex nested request and no output schema, the description covers the input side well (period, pagination, UTC semantics, ID sources, throttling). But it omits response shape details beyond 'list of transactions' — a real gap given no output schema exists — and it never addresses the by_revision alternative. Adequate but a capable agent would still need to inspect sibling tools or guess at the expected answer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the top-level 'request' parameter, so the description must compensate. It partially does by grouping the request contents as customer/organization, period, and pagination, and by clarifying date semantics. However, it leaves per-field details (zero-based pageNumber, pageSize cap behavior, uuid formats) to the nested $def, which only documents four of the six fields. The description bridges the gap but does not fully carry parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+scope: 'Получить транзакции клиента за период (постранично)' (get customer transactions for a period, paginated). This clearly states what the tool does and its period-based, paginated nature. It does not explicitly name the closest sibling report__get_customer_transactions_by_revision, though the tool name itself carries the 'by_date' vs 'by_revision' differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides solid operational prerequisites: where to obtain customerId (customers__get_customer_info) and organizationId (organizations__get_organizations), plus a caching directive for the 10-per-60s MCP throttle. However, it gives no guidance on when to choose this date-based tool versus the sibling report__get_customer_transactions_by_revision — the most relevant alternative an agent would need to disambiguate between.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report__get_customer_transactions_by_revisionARead-only
Получить транзакции клиента инкрементально по ревизии.
Ответ несёт last_revision/last_transaction_id для следующего запроса.
Args: request: Параметры запроса (customer/organization, ревизия, page_size)
Returns: Ответ со списком транзакций и маркерами продолжения Где взять ID: customerId → customers__get_customer_info; organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds important behavioral context beyond the readOnlyHint annotation: it discloses the pagination pattern (response carries last_revision/last_transaction_id for the next request), and it explicitly states MCP-server throttling (10 requests per 60 seconds) with a caching recommendation. This is valuable for the agent to avoid rate limits and manage state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise and well-structured: it starts with the purpose, then explains the continuation mechanism, followed by Args/Returns, ID sourcing, and throttling. Key information is front-loaded, though the throttle and caching note are at the end. No redundant fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description explains that the response contains a list of transactions and continuation markers (last_revision/last_transaction_id). It also covers throttling and caching. It lacks error-handling details or edge cases, but for a read-only incremental fetch with well-described parameters, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides guidance on where to obtain customerId and organizationId by referencing other tools (customers__get_customer_info and organizations__get_organizations). While the schema already describes the fields (revision, lastTransactionId, pageSize), the ID sourcing tip adds practical value. However, the relationship between revision and lastTransactionId is not explained beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves customer transactions incrementally by revision, which distinguishes it from the sibling report__get_customer_transactions_by_date. The verb 'получить' (get) and resource 'транзакции клиента' (customer transactions) are specific, and the incremental-by-revision method is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling report__get_customer_transactions_by_date. It does not mention alternatives or conditions for choosing one over the other. The only usage-related info is where to obtain customerId and organizationId, which is parameter sourcing, not tool selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terminal_groups__check_terminal_groups_availabilityARead-only
Проверить доступность терминальных групп.
Args: request: Параметры запроса TerminalGroupsIsAliveRequest
Returns: Ответ о доступности терминальных групп Где взять ID: organizationId → organizations__get_organizations; organizationIds → organizations__get_organizations; terminalGroupIds → terminal_groups__get_terminal_groups. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint=true and destructiveHint=false, so the bar for added behavioral disclosure is lower. The description adds genuinely new context beyond the annotations: an explicit MCP-server throttle limit (max 10 requests per 60 seconds) and a caching recommendation, which is material behavioral information for an agent deciding how often to call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-organized: purpose first, then Args/Returns, then ID sourcing, then throttling. Minor formatting issues exist — the run-on 'Ответ о доступности терминальных групп Где взять ID:' lacks punctuation — but every sentence carries functional information and the critical constraints are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple availability-check tool with one top-level parameter and no output schema, the description covers the essentials: what the tool does, how to source every input ID, and a rate limit with caching advice. It does not describe the response shape, but given no output schema exists and annotations cover the read-only safety profile, the gaps are minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With top-level schema description coverage at 0%, the description must compensate. It partially does by mapping each nested request field to a source sibling tool (organizationIds from organizations__get_organizations, terminalGroupIds from terminal_groups__get_terminal_groups). However, it otherwise just restates the type name ('Параметры запроса TerminalGroupsIsAliveRequest') without explaining field semantics, which the nested schema descriptions already cover.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource statement: 'Проверить доступность терминальных групп' (check availability of terminal groups). This clearly distinguishes an availability check from the sibling get_* tools like terminal_groups__get_terminal_groups, though it never explicitly names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over alternatives such as terminal_groups__get_terminal_groups or banquets__get_reserve_terminal_groups. It does provide ID-provenance tips (organizationId → organizations__get_organizations, terminalGroupIds → terminal_groups__get_terminal_groups), but those help parameter filling, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terminal_groups__get_terminal_groupsBRead-only
Получить терминальные группы.
Args: request: Параметры запроса TerminalGroupsRequest
Returns: Ответ со списком терминальных групп Где взять ID: organizationIds → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 10 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false. The description adds useful behavior beyond that: MCP-server throttling of 10 requests per 60 seconds and a caching recommendation. It also states the result is a list of terminal groups.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the purpose, and organized into Args/Returns/ID-source/throttling sections. The 'request: Параметры запроса TerminalGroupsRequest' line is somewhat redundant with the schema, but the overall size is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers purpose, parameter sourcing, and rate limiting. It is missing response structure details and does not address the closely related sibling tools, leaving some ambiguity for an agent deciding between them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description names the request object and points the agent to organizations__get_organizations for organizationIds, which adds cross-tool meaning. However, it does not explain includeDisabled or returnExternalData, and with a 0% schema coverage signal it only partially compensates for parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Получить терминальные группы' (get terminal groups). However, it does not distinguish this tool from the sibling terminal_groups__get_terminal_groups_by_organization or check_terminal_groups_availability, so it misses the differentiation required for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to prefer this tool over its siblings. It does explain where to obtain organizationIds from organizations__get_organizations, but that is dependency guidance, not selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terminal_groups__get_terminal_groups_by_organizationBRead-only
Получить терминальные группы для организации.
Args: organization_id: ID организации (str или UUID)
Returns: Ответ со списком терминальных групп Это тул-обёртка: своего троттлинга нет, но вызов расходует квоту нижележащего метода API — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| organization_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/destructiveHint annotations, the description discloses that the tool is a wrapper with no own throttling, consumes quota of the underlying API method, and recommends caching the result. This adds useful operational behavior not present in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose, and the Args/Returns structure is recognizable. However, there is a run-on sentence ('...терминальных групп Это...') with missing punctuation, which slightly hurts readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with annotations and no output schema, the description covers purpose, parameter, return type, and an important caching caveat. It is reasonably complete; only minor details like pagination or empty results are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description merely restates the parameter name and its type ('organization_id: ID организации (str или UUID)'), which duplicates the input schema. With 0% schema description coverage, it adds no deeper semantics such as where to obtain the ID or how it relates to other tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Получить терминальные группы') and a specific scope ('для организации'), which matches the tool name and helps distinguish it from the broader get_terminal_groups sibling. However, it does not explicitly contrast with alternatives, so it stops 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to choose this tool over siblings such as terminal_groups__get_terminal_groups or employees__get_terminal_groups_of_employee. The only additional instruction is about caching and quota, which is operational advice rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
webhooks__get_webhook_settingsARead-only
Получить webhook-настройки организации.
Ответ содержит auth_token — чувствительные данные, не логировать.
Args: request: Параметры запроса (organization_id)
Returns: Ответ с webhook-настройками (web_hooks_uri, auth_token) Где взять ID: organizationId → organizations__get_organizations. Троттлинг MCP-сервера (не лимит iikoCloud): не чаще 1 запрос(ов) за 60 с — кэшируйте результат в диалоге.
| Name | Required | Description | Default |
|---|---|---|---|
| request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description discloses that the response contains auth_token as sensitive data to not log, and adds an MCP-server rate limit (1 request/60s) with a caching recommendation. These are meaningful behavioral facts not present in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and every sentence carries information, but the structure is run-on: docstring-style Args/Returns sections are fused with the 'Где взять ID' pointer and a throttling note appended at the end without clear separation. It would benefit from tighter organization.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, it covers the return fields (web_hooks_uri, auth_token), the sensitive-data caveat, and server throttling. An agent has enough to call it correctly; only a brief note on what webhook settings are used for is absent, which is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% top-level schema coverage, the nested $defs already document organizationId as a UUID. The description's 'request: Параметры запроса (organization_id)' mostly restates the schema, but the pointer 'organizationId → organizations__get_organizations' adds real value by telling the agent where to source the value. Partial compensation for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Получить webhook-настройки организации' — a specific verb + resource + scope. It is clearly distinct from the many sibling get_*_by_organization tools (e.g., organizations__get_organization_settings), and no other sibling covers webhook settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit context for the prerequisite: 'Где взять ID: organizationId → organizations__get_organizations' routes the agent to the correct sibling for obtaining the parameter value. It does not state when-not-to-use or name alternatives, but no competing tool for webhook settings exists, so exclusions are less critical.
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.
106 tool updates
v0.1.0- First observed
addresses__get_cities - First observed
addresses__get_regions - First observed
addresses__get_streets_by_city - First observed
addresses__get_streets_by_id - First observed
banquets__get_reserve_available_organizations - First observed
banquets__get_reserve_restaurant_sections - First observed
banquets__get_reserve_statuses_by_id - First observed
banquets__get_reserve_terminal_groups - First observed
banquets__get_restaurant_sections_workload - First observed
customer_categories__get_customer_categories - First observed
customers__get_customer_by_card_number - First observed
customers__get_customer_by_card_track - First observed
customers__get_customer_by_email - First observed
customers__get_customer_by_id - First observed
customers__get_customer_by_phone - First observed
customers__get_customer_info - First observed
customers__get_loyalty_counters - First observed
deliveries_retrieve__get_customer_deliveries - First observed
deliveries_retrieve__get_deliveries_by_delivery_date_and_phone - First observed
deliveries_retrieve__get_deliveries_by_delivery_date_and_status - First observed
deliveries_retrieve__get_deliveries_by_id - First observed
deliveries_retrieve__get_deliveries_by_revision - First observed
deliveries_retrieve__get_delivery_by_id - First observed
deliveries_retrieve__get_delivery_history_by_date_and_phone - First observed
deliveries_retrieve__search_deliveries - First observed
delivery_restrictions__get_allowed_delivery_restrictions - First observed
delivery_restrictions__get_delivery_restrictions - First observed
dictionaries__get_cancel_causes - First observed
dictionaries__get_cancel_causes_by_organization - First observed
dictionaries__get_delivery_order_types - First observed
dictionaries__get_delivery_order_types_by_organization - First observed
dictionaries__get_discounts - First observed
dictionaries__get_discounts_by_organization - First observed
dictionaries__get_payment_types - First observed
dictionaries__get_payment_types_by_organization - First observed
dictionaries__get_removal_types - First observed
dictionaries__get_removal_types_by_organization - First observed
dictionaries__get_tips_types - First observed
discounts__calculate_loyalty_checkin - First observed
discounts__calculate_order_loyalty - First observed
discounts__get_coupon_info - First observed
discounts__get_coupon_series - First observed
discounts__get_loyalty_manual_conditions - First observed
discounts__get_loyalty_programs - First observed
discounts__get_non_activated_coupons_by_series - First observed
drafts__get_delivery_draft_by_id - First observed
drafts__get_delivery_drafts_by_filter - First observed
employees__get_active_courier_locations - First observed
employees__get_active_courier_locations_by_terminal - First observed
employees__get_courier_location_history - First observed
employees__get_couriers - First observed
employees__get_couriers_by_role - First observed
employees__get_employee_info - First observed
employees__get_personal_session_info - First observed
employees__get_terminal_groups_of_employee - First observed
invoice_processing__calculate_inventory_cost_prices - First observed
invoice_processing__get_finance_incoming_service - First observed
invoice_processing__get_finance_outgoing_service - First observed
invoice_processing__get_inventory_counteragents - First observed
invoice_processing__get_inventory_disassemble_document - First observed
invoice_processing__get_inventory_incoming_invoice - First observed
invoice_processing__get_inventory_incoming_returned_invoice - First observed
invoice_processing__get_inventory_internal_transfer - First observed
invoice_processing__get_inventory_outgoing_invoice - First observed
invoice_processing__get_inventory_production_document - First observed
invoice_processing__get_inventory_returned_invoice - First observed
invoice_processing__get_inventory_sales_document - First observed
invoice_processing__get_inventory_transformation_document - First observed
invoice_processing__get_inventory_writeoff_document - First observed
invoice_processing__list_finance_account_transactions - First observed
invoice_processing__list_finance_document_transactions - First observed
invoice_processing__list_finance_incoming_services - First observed
invoice_processing__list_finance_outgoing_services - First observed
invoice_processing__list_inventory_disassemble_documents - First observed
invoice_processing__list_inventory_incoming_invoices - First observed
invoice_processing__list_inventory_incoming_returned_invoices - First observed
invoice_processing__list_inventory_internal_transfers - First observed
invoice_processing__list_inventory_outgoing_invoices - First observed
invoice_processing__list_inventory_production_documents - First observed
invoice_processing__list_inventory_returned_invoices - First observed
invoice_processing__list_inventory_sales_documents - First observed
invoice_processing__list_inventory_transformation_documents - First observed
invoice_processing__list_inventory_writeoff_documents - First observed
marketing_sources__get_marketing_sources - First observed
menu__calculate_combo_price - First observed
menu__check_products_in_stop_list - First observed
menu__get_combos_info - First observed
menu__get_external_menu_by_id - First observed
menu__get_external_menus - First observed
menu__get_nomenclature - First observed
menu__get_stop_lists - First observed
menu__get_stop_lists_by_organization - First observed
messages__check_sms_sending_possibility - First observed
messages__check_sms_status - First observed
operations__get_command_status - First observed
operations__wait_command - First observed
orders__get_table_orders_by_id - First observed
orders__get_table_orders_by_table - First observed
organizations__get_organization_settings - First observed
organizations__get_organizations - First observed
report__get_customer_transactions_by_date - First observed
report__get_customer_transactions_by_revision - First observed
terminal_groups__check_terminal_groups_availability - First observed
terminal_groups__get_terminal_groups - First observed
terminal_groups__get_terminal_groups_by_organization - First observed
webhooks__get_webhook_settings
TDQS
Scored across 106 tools
Many tools are duplicated with two arg styles (e.g., dictionaries__get_cancel_causes vs dictionaries__get_cancel_causes_by_organization), making it hard to pick the right one. Customer lookup tools also overlap heavily, and deliveries_retrieve has several similar retrieval variants. Descriptions are detailed, but boundaries between many tools remain unclear.
Tools follow a consistent category__verb_noun snake_case pattern throughout (e.g., customers__get_customer_by_id, invoice_processing__list_inventory_writeoff_documents). Minor inconsistencies exist such as get_delivery_by_id vs get_deliveries_by_id and mixed singular/plural forms, but the overall convention is predictable and readable.
106 tools is far beyond a manageable MCP surface, and many are thin wrappers or duplicate variants of the same operation. Even for a broad iikoCloud API, this is an extreme count that will overwhelm an agent and increase misselection.
The toolset is overwhelmingly read-only: there are no create/update/delete tools for customers, orders, deliveries, menu, or webhooks, despite including operations__wait_command that references write-tools. Gaps like send_sms (only checks) and no mutation endpoints mean agents cannot complete lifecycle workflows. The read side is broad, but the surface is incomplete for real operations.
Maintenance
Related MCP Connectors
- APIVerveOAuthcom.apiverve
350+ production-ready APIs through one MCP server — weather, geocoding, validation, financial data.
MCP server with quote and live cryptocurrency price tools, local and cloud-deployed transports.
Marketplace gateway: 100+ services and 1,400+ tools behind one MCP connection with unified auth
Unified MCP server for 70+ eCommerce platforms: products, orders, customers, and more.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA production-grade multi-tenant MCP server that provides different tools and configurations to different clients using API key-based routing.1-
- AlicenseNot gradedqualityDmaintenanceA generic MCP server that dynamically converts OpenAPI-defined REST APIs into tools for LLMs like Claude. It supports multiple authentication methods and transport protocols, enabling seamless interaction with any OpenAPI-compliant API.8 npmMIT
- AlicenseAqualityCmaintenanceA single MCP server that fronts multiple REST APIs, each configured via environment variables, allowing Claude to orchestrate across several SaaS backends with namespaced tools.21MIT
- FlicenseNot gradedqualityBmaintenanceAn MCP server with HTTP/stdio support, a web admin panel for managing services, capabilities, and user permissions with Bearer token authentication, enabling relay and access control for MCP tools.-