Skip to main content
Glama
theYahia

retailcrm-mcp

by theYahia

MCP-сервер для RetailCRM — заказы, клиенты и товары интернет-магазина через ИИ

Если вы искали, как подключить RetailCRM к нейросети, поднять заказ или карточку клиента и не собирать отчёты руками — это оно. 39 инструментов и 2 навыка поверх API v5: заказы, клиенты, товары, складские остатки, оплаты, задачи, справочники и аналитика. Спрашиваете «что с заказом 12345» — получаете статус, состав и оплату одним ответом.

Промышленный MCP-сервер для e-commerce CRM RetailCRM. 39 инструментов + 2 навыка-промпта для работы с заказами, клиентами, товарами, остатками, оплатами, задачами, справочниками и аналитикой через API v5.

npm Smithery

Ответы экономят токены по умолчанию

Читающие инструменты возвращают компактную структурированную сводку только из тех полей, которые нужны агенту, а не весь ответ RetailCRM. Подробность настраивается на каждый вызов:

Параметр

Что делает

(по умолчанию)

detail:"summary" — ключевые поля + блок pagination

detail:"full"

Все структурированные поля (позиции, доставка, оплаты, адрес…)

raw:true

Нетронутый ответ RetailCRM (для отладки)

⚠️ v3 ломает совместимость с v2: по умолчанию отдаётся структурированная сводка, а не сырой JSON. Передайте raw:true, чтобы вернуть прежний формат.

Related MCP server: MoySklad MCP Server

Инструменты (39)

Заказы

Инструмент

Описание

list_orders

Список заказов по статусу, клиенту, номеру, периоду

get_order

Один заказ по ID или externalId

create_order

Создать заказ; привязать существующего клиента (customer_id/customer_external_id) или завести нового прямо в вызове

update_order

Изменить статус, клиента, доставку, комментарии

orders_history

История изменений заказов, включая смены статусов (инкрементальная синхронизация)

Клиенты

Инструмент

Описание

list_customers

Поиск клиентов по имени, e-mail, телефону, дате

get_customer

Один клиент по ID или externalId

create_customer

Создать клиента

update_customer

Изменить существующего клиента

merge_customers

Объединить дубли (разрушающая операция)

customers_history

Лог изменений клиентов (прирост/отток, инкрементальная синхронизация)

Товары и остатки

Инструмент

Описание

list_products

Товары каталога по названию, группе, активности, цене

list_product_groups

Дерево товарных категорий

store_inventories

Остатки и себестоимость по торговым предложениям и складам

Оплаты

Инструмент

Описание

order_payment_create

Зафиксировать оплату по заказу

order_payment_edit

Изменить оплату

order_payment_delete

Удалить оплату (разрушающая операция)

Заметки и задачи

Инструмент

Описание

customer_notes_list / customer_notes_create / customer_notes_delete

Произвольные заметки по клиенту

tasks_list / tasks_create / tasks_edit

Задачи и напоминания

Маркетинг и финансы

Инструмент

Описание

list_segments

Сегменты клиентов (RFM и маркетинговые когорты)

list_costs / create_cost

Записи расходов для аналитики маржи

Файлы

Инструмент

Описание

files_list / files_get / files_upload

Прикрепление и получение файлов (загрузка сырым octet-stream)

Справочники

Инструмент

Описание

list_statuses / list_delivery_types / list_payment_types / list_stores

Справочники статусов, доставок, оплат и магазинов

list_sites

Сайты, доступные ключу API (для заполнения параметра site)

list_countries / list_order_types / list_order_methods

Справочники адресов и заказов

Аналитика

Инструмент

Описание

get_orders_summary

Статистика заказов за период: точное количество и выручка, средний чек, распределение по статусам

get_customers_summary

Количество новых клиентов за период

Навыки-промпты (2)

Навык

Описание

new-orders

Быстрый ежедневный обзор сегодняшних заказов

customer-search

Найти клиента по имени, e-mail или телефону

Настройка

  1. В RetailCRM откройте Настройки → Интеграция → Ключи API.

  2. Создайте ключ API с нужными правами (заказы, клиенты, склад, справочники). Для мультисайтового ключа передавайте код site в инструментах создания и изменения (см. list_sites).

  3. Запомните свой домен (часть yourstore из yourstore.retailcrm.ru).

Переменные окружения

Переменная

Обяз.

Описание

RETAILCRM_DOMAIN

да

Домен вашего RetailCRM (например, yourstore.retailcrm.ru)

RETAILCRM_API_KEY

да

Ключ API (передаётся в заголовке X-API-KEY)

RETAILCRM_READONLY

нет

1 — оставить только читающие инструменты (скрыть create/update/merge/delete)

RETAILCRM_RATE_LIMIT

нет

Клиентское ограничение запросов в секунду (RetailCRM допускает ~10/с)

PORT / HOST

нет

Привязка HTTP-сервера (по умолчанию 3000 / 127.0.0.1, только в режиме --http)

RETAILCRM_HTTP_ALLOWED_HOSTS

нет

Разрешённые значения Host через запятую для защиты от DNS-rebinding

RETAILCRM_DNS_PROTECTION

нет

off — отключить защиту от DNS-rebinding (HTTP-режим)

RETAILCRM_URL по-прежнему принимается как запасной вариант для RETAILCRM_DOMAIN.

Подключение к Claude Desktop

{
  "mcpServers": {
    "retailcrm": {
      "command": "npx",
      "args": ["-y", "@theyahia/retailcrm-mcp"],
      "env": {
        "RETAILCRM_DOMAIN": "yourstore.retailcrm.ru",
        "RETAILCRM_API_KEY": "your-api-key"
      }
    }
  }
}

Режим Streamable HTTP

Запуск в виде HTTP-сервера вместо stdio:

RETAILCRM_DOMAIN=yourstore.retailcrm.ru \
RETAILCRM_API_KEY=your-key \
npx @theyahia/retailcrm-mcp --http
  • POST /mcp — эндпоинт MCP Streamable HTTP (stateless: на каждый запрос создаётся новый сервер)

  • GET /health — проверка состояния (JSON с версией и числом инструментов)

  • GET/DELETE /mcp405 (в stateless-режиме не используются)

  • Привязка по умолчанию: 127.0.0.1:3000. Защита от DNS-rebinding для локальных привязок включена по умолчанию.

Smithery

npx @smithery/cli install @theyahia/retailcrm-mcp

Демо-промпты

1. Обзор заказов за день: «Покажи все заказы, созданные сегодня, в статусе „новый“. Дай итоговое количество и выручку.»

2. Клиент и его история заказов: «Найди клиента с почтой anna@example.com. Покажи полный профиль и последние заказы.»

3. Проверка остатков: «Есть ли товар с externalId SKU-42 в наличии и на каком складе?»

Вебхуки и триггеры

RetailCRM не умеет создавать вебхуки через API. Используйте Триггеры в админке (Настройки → Триггеры), чтобы отправлять HTTP-запросы на внешние эндпоинты по событиям заказов и клиентов.

Обработка ошибок

  • Лимиты запросов и 5xx: автоматический повтор с экспоненциальной задержкой и джиттером (до 3 попыток).

  • Ошибки API: детали ошибки RetailCRM разбираются и возвращаются модели как результат инструмента с isError: true, чтобы агент мог исправиться сам (например, повторить с by:"externalId").

  • Таймауты: 15 секунд на запрос с повтором.

Разработка

npm install
npm test          # vitest (на моках; живой ключ API не нужен)
npm run lint      # eslint
npm run typecheck # tsc --noEmit
npm run dev       # dev-режим stdio (tsx)
npm run build     # очистка + сборка в dist/

Лицензия

MIT


Часть WWmcp · Telegram: @vhodvai

Available Tools

39 tools
create_costA

Create an expense record, optionally attributed to an order. Returns {success, id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite (store) symbolic code. Required on create/edit when the API key is scoped to multiple sites (see list_sites).
summYesCost amount
commentNoFree-text comment
date_toNoCost period end (YYYY-MM-DD)
order_idNoAttribute the cost to an order RetailCRM ID
cost_itemYesCost item code (expense category)
date_fromYesCost period start (YYYY-MM-DD)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate mutating (readOnlyHint=false) and non-destructive (destructiveHint=false). Description adds return format '{success, id}' and optional order attribution, but no further behavioral traits like permissions or side effects.

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

Conciseness5/5

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

Single sentence with no wasted words, includes return value and key behavior. Perfectly concise.

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

Completeness4/5

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

For a simple creation tool with well-described parameters, the description is complete. It explains purpose and return value. Missing details like error handling or idempotency but not critical given the tool's simplicity.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions. The description adds minimal extra meaning beyond the schema, only clarifying the optional order attribution context.

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

Purpose5/5

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

Description clearly states verb 'Create', resource 'expense record', and optional attribution to an order. It distinguishes from sibling list_costs which is a read operation.

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

Usage Guidelines3/5

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

Description implies usage when needing to record an expense, but provides no explicit guidance on when to use or not use 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.

create_customerB

Create a customer with name, contacts, address, optional externalId. Returns {success, id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite (store) symbolic code. Required on create/edit when the API key is scoped to multiple sites (see list_sites).
emailNoCustomer email
phonesNoArray of phone numbers
last_nameNoCustomer last name
first_nameYesCustomer first name
patronymicNoCustomer patronymic (middle name)
external_idNoExternal system ID for linking
address_cityNoCity
address_textNoFull address as free text
address_regionNoRegion/state

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate non-read-only and non-destructive. Description adds return format {success, id}, but no additional behavioral traits like permissions or side effects.

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

Conciseness5/5

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

Single sentence, front-loaded with key info, no unnecessary words.

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

Completeness2/5

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

For a creation tool with 10 parameters and no output schema, the description is too minimal. Does not explain required field, defaults, or behavior for missing optional fields.

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

Parameters3/5

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

Schema covers 100% of parameters with descriptions. Description lists only a few fields (name, contacts, address, externalId), adding no significant meaning beyond schema.

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

Purpose5/5

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

Description clearly states 'Create a customer' with key fields, distinguishing it from update/merge siblings. Verb and resource are explicit.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like update_customer or merge_customers. Missing explicit context or exclusions.

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

create_orderA

Create an order with line items and delivery. Link an existing customer via customer_id/customer_external_id, or pass first_name (+phone/email) to create one inline. Returns {success, id, order?}.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite (store) symbolic code. Required on create/edit when the API key is scoped to multiple sites (see list_sites).
emailNoCustomer email
itemsYesOrder items (at least one required)
phoneNoCustomer phone number
statusNoInitial order status code (e.g. 'new')
last_nameNoCustomer last name
first_nameNoCustomer first name (omit only when linking by customer_id/customer_external_id)
order_typeNoOrder type codeeshop-individual
customer_idNoLink the order to an EXISTING customer by RetailCRM ID (mutually exclusive with inline name/phone/email)
delivery_codeNoDelivery type code
delivery_costNoDelivery cost
delivery_addressNoDelivery address as free text
customer_external_idNoLink the order to an EXISTING customer by externalId

TDQS

A4.2/5.0
Behavior3/5

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

Annotations indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that it returns '{success, id, order?}', but does not elaborate on side effects, idempotency, or error cases. Thus it adds some value beyond annotations but not substantial behavioral detail.

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

Conciseness5/5

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

Two sentences: first covers the core action and customer linking decisions, second provides return format. No redundant information. Highly efficient.

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

Completeness4/5

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

With 13 parameters, 1 required, and no output schema, the description covers the critical decision logic (customer handling) and return shape. Schema covers remaining param details. Could mention items requirement, but it's inferred from the main action. Good for the complexity level.

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

Parameters4/5

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

Schema description coverage is 100%, providing baseline 3. The description adds meaning by explaining the two mutually exclusive customer linking modes and which parameters to use together (customer_id/external_id vs first_name+phone/email). This goes beyond schema descriptions.

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

Purpose5/5

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

The description clearly states 'Create an order with line items and delivery', specifying the verb (create) and resource (order). It distinguishes from sibling tools like update_order by focusing on creation and customer linking methods.

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

Usage Guidelines4/5

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

The description explains when to use each customer linking method (existing vs inline creation). While it doesn't explicitly exclude alternative tools like create_customer, the context is clear for order creation. No explicit when-not guidance, but the sibling tools are distinct actions.

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

customer_notes_createA

Add a note to a customer (by id or externalId). Returns {success, id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite (store) symbolic code. Required on create/edit when the API key is scoped to multiple sites (see list_sites).
textYesNote text
manager_idNoAuthor manager ID
customer_idNoCustomer RetailCRM ID the note attaches to
customer_external_idNoCustomer externalId (alternative to customer_id)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds behavioral context: it returns a {success, id} object and supports two identification methods, which are not 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.

Conciseness4/5

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

The description is concise, one sentence with clear information on action, identification methods, and return value. It is efficient, although it could mention the optionality of parameters for better structure.

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

Completeness3/5

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

The description covers the core operation and return format, but lacks details on error scenarios, authentication requirements, or the need for 'site' in multi-site contexts (though schema covers that). For a simple create tool, it is adequate but not fully comprehensive.

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

Parameters3/5

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

Input schema has 100% coverage with descriptions for all parameters. The description mentions 'by id or externalId' but does not add significant semantics beyond the schema. The schema already explains parameter roles, so the description adds limited value.

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

Purpose5/5

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

The description clearly states the tool adds a note to a customer and specifies identification by id or externalId. It also mentions the return value, and the action is distinct from sibling tools like customer_notes_list and customer_notes_delete.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives (e.g., customer_notes_list for reading, customer_notes_delete for deletion). No prerequisites or exclusions are mentioned, leaving the agent to infer usage from context.

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

customer_notes_deleteB
Destructive

Delete a customer note by id. Returns {success}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote ID to delete

TDQS

B3.4/5.0
Behavior2/5

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

The description only adds 'Returns {success}', which is minimal. Annotations already provide destructiveHint=true, readOnlyHint=false, so the description adds little behavioral insight beyond what is structured.

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

Conciseness5/5

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

The description is a single efficient sentence that immediately states the purpose and output, with no wasted words.

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

Completeness4/5

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

For a simple tool with one required parameter and no output schema, the description is adequate. It covers the essential action and result, though it could mention deletion is irreversible.

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

Parameters3/5

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

Schema coverage is 100% with the description 'Note ID to delete' for the id parameter. The description adds no additional meaning beyond the schema, warranting a baseline score of 3.

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

Purpose5/5

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

The description explicitly states 'Delete a customer note by id', clearly identifying the verb and resource, and distinguishes from sibling tools like customer_notes_create and customer_notes_list.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as customer_notes_create or customer_notes_list, leaving the agent without context for selection.

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

customer_notes_listA
Read-only

List free-text notes attached to customers. Returns {notes[], pagination}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
limitNoResults per page (max 100)
filter_customer_idNoFilter notes by customer RetailCRM ID
filter_customer_external_idNoFilter notes by customer externalId

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's listing behavior is consistent. It adds the return format but lacks further behavioral details like sorting, rate limits, or auth requirements.

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

Conciseness5/5

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

The description is a single concise sentence that directly communicates the tool's purpose and return value, with no wasted words.

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

Completeness4/5

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

Given the lack of output schema, the description helpfully mentions the return shape. However, it omits potential details like default sorting or any other implicit filters, which are not critical for a simple list tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description does not add extra meaning or usage tips beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'List' and resource 'free-text notes attached to customers'. It also specifies the return format, distinguishing it from sibling tools like customer_notes_create and customer_notes_delete.

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

Usage Guidelines3/5

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

The description implies listing notes but provides no explicit context on when to use this tool versus alternatives, nor any prerequisites or restrictions.

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

customers_historyA
Read-only

Customer field-change log for growth/churn signals and incremental sync. Returns {history[], pagination}.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).
pageNoPage number
limitNoResults per page (max 100)
filter_date_toNoChanges on/before this date (YYYY-MM-DD)
filter_since_idNoReturn changes after this history entry ID (incremental sync)
filter_date_fromNoChanges on/after this date (YYYY-MM-DD)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds that this is a log (non-destructive) and returns paginated history, reinforcing transparency. No contradictions.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads purpose and return type. Every word adds value; no redundancy or fluff.

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

Completeness5/5

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

Given no output schema, the description explicitly states the return shape ({history[], pagination}). All parameters are described in schema, and the tool's purpose is fully covered. Complete for a log tool.

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

Parameters3/5

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

Schema coverage is 100% with each parameter described. The description does not add meaning beyond the schema beyond summarizing the return shape, which is not parameter-specific. Baseline 3 is appropriate.

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

Purpose5/5

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

The description states the tool returns a customer field-change log for growth/churn signals and incremental sync, clearly indicating the verb ('log'), resource ('customer field-change'), and scope. It distinguishes from siblings like orders_history by specifying 'customer' and the use cases.

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

Usage Guidelines3/5

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

The description hints at usage for growth/churn signals and incremental sync, providing context, but does not explicitly state when not to use it or compare with alternatives like get_customer or customers list. Some implicit guidance exists.

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

files_getA
Read-only

Get a file's metadata by id. Returns {file}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesFile ID to fetch metadata for

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. Description adds no extra behavioral details beyond returning a file object. Minimal value added.

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

Conciseness5/5

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

Two sentences with no wasted words. Fully front-loaded with purpose and return value.

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

Completeness5/5

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

For a simple read tool with one required parameter and no output schema, the description adequately covers input and output expectations.

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

Parameters3/5

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

Schema coverage is 100% with a clear description for the id parameter. Description does not add additional meaning beyond the schema.

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

Purpose5/5

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

Description clearly states verb 'Get', resource 'file metadata', and method 'by id'. It distinguishes from siblings like files_upload (upload) and files_list (list).

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

Usage Guidelines3/5

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

No explicit guidance on when to use vs alternatives. While implied by the straightforward retrieval, it doesn't state exclusions or context.

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

files_listA
Read-only

List files attached to orders/customers. Returns {files[], pagination}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
limitNoResults per page (max 100)
filter_filenameNoFilter by filename (partial match)
filter_order_idNoFilter files attached to an order
filter_customer_idNoFilter files attached to a customer

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description doesn't need to reiterate safety. The description adds the return structure ({files[], pagination}), which is useful context but doesn't disclose additional behavioral traits beyond annotations.

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

Conciseness5/5

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

Two sentences, zero waste. Front-loaded with purpose and return shape. Every sentence earns its place.

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

Completeness4/5

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

Given 5 parameters all documented in schema and annotations providing readOnlyHint, the description is sufficiently complete. It describes the return shape, which compensates for the lack of an output schema. Slight room for improvement in ordering or default behavior, but overall adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema fully documents all 5 parameters. The description adds no further meaning beyond what the schema provides, resulting in a baseline score of 3.

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

Purpose5/5

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

Description clearly states the verb 'List', resource 'files', and scope 'attached to orders/customers'. It also specifies the return shape. This effectively distinguishes it from sibling tools like list_orders or list_customers.

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

Usage Guidelines3/5

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

The description implies usage for listing files but provides no guidance on when to use this tool versus alternatives (e.g., files_get for a single file). No exclusions or prerequisites mentioned.

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

files_uploadA

Upload a file (UTF-8 text or base64 binary). Returns {success, file}.

ParametersJSON Schema
NameRequiredDescriptionDefault
base64NoSet true if `content` is base64-encoded binary
contentYesFile content (UTF-8 text, or base64 when base64=true)
filenameYesFilename for the uploaded file
content_typeNoMIME type (default application/octet-stream)

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate non-read-only and non-destructive. The description adds that it returns {success, file}, but does not disclose potential side effects like overwriting existing files, storage limits, or authentication requirements.

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

Conciseness4/5

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

The description is concise (two short sentences) and front-loads the main action and supported content types. It is efficient but could be slightly more structured.

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

Completeness3/5

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

Given the rich schema (100% coverage) and absence of output schema, the description adequately explains the return and content types but lacks context on limits, overwriting, and error scenarios.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents each parameter. The description adds no additional semantic value beyond what is in the schema.

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

Purpose5/5

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

The description clearly states the verb 'Upload' and the resource 'file', and specifies the two supported content types (UTF-8 text or base64 binary). It is distinct from sibling tools like files_list and files_get.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives, nor any prerequisites or conditions. Usage is implied but not guided.

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

get_customerA
Read-only

Get a single customer by id or externalId. Returns a shaped customer; detail:'full' adds address and contact details.

ParametersJSON Schema
NameRequiredDescriptionDefault
byNoLookup field: 'id' (RetailCRM ID) or 'externalId'id
idYesCustomer ID or externalId to retrieve
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).
detailNoOutput verbosity: 'summary' (compact, default — saves tokens) or 'full' (all shaped fields incl. line items, delivery, payments).summary

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. The description adds useful behavioral context: results are shaped, and the detail parameter controls verbosity (adding address/contact). This goes beyond the schema and annotations.

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

Conciseness5/5

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

A single, information-dense sentence. It front-loads the core action (Get a single customer) and efficiently covers key parameters.

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

Completeness4/5

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

The description is complete enough given the tool's simplicity and the rich input schema (4 parameters with full descriptions). It explains the two lookup fields and the detail toggle. No output schema exists, but the description hints at the return shape adequately.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds semantic value by explaining that detail:'full' includes address and contact details, which reinforces the enum options. It also clarifies the two lookup methods via the 'by' parameter.

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

Purpose5/5

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

The description clearly states it retrieves a single customer by id or externalId, and mentions the shaped output and detail levels. This distinguishes it from list_customers which returns multiple customers.

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

Usage Guidelines3/5

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

The description implies use for single customer retrieval, but does not explicitly state when to use this tool versus alternatives like list_customers or search tools. No when-not-to-use guidance is provided.

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

get_customers_summaryA
Read-only

Period-scoped new-customer count for a date range. Returns {period, newCustomers}.

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toYesEnd date (YYYY-MM-DD)
date_fromYesStart date (YYYY-MM-DD)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description adds moderate value by stating the return shape {period, newCustomers}. However, it does not discuss potential limitations or side effects, beyond what the annotation provides.

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

Conciseness5/5

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

Extremely concise: two sentences that front-load the purpose and return shape. No wasted words; every sentence serves a purpose.

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

Completeness3/5

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

The description states the return shape, which is helpful given no output schema. However, the term 'period-scoped' is vague and could be more explicit (e.g., daily, monthly). Given the tool's simplicity, it is mostly complete but leaves some ambiguity.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both parameters. The description's mention of 'period-scoped' adds minimal extra meaning; the schema already specifies date format and required fields.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Period-scoped new-customer count for a date range.' It distinguishes from siblings like list_customers (which lists all customers) and get_orders_summary (which summarizes orders) by specifying it focuses on new customers over a date range.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. While the purpose is clear, there is no mention of when not to use it or what other tools (e.g., get_orders_summary) are better suited for order summaries.

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

get_orderA
Read-only

Get a single order by RetailCRM id or externalId. Returns a shaped order; detail:'full' adds items, delivery, payments, comments.

ParametersJSON Schema
NameRequiredDescriptionDefault
byNoLookup field: 'id' (RetailCRM ID) or 'externalId'id
idYesOrder ID or externalId to retrieve
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).
detailNoOutput verbosity: 'summary' (compact, default — saves tokens) or 'full' (all shaped fields incl. line items, delivery, payments).summary

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=true, which is consistent with a read operation. The description adds context about shaping a response and mentions the raw parameter for debugging, which is helpful beyond annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with key action and resource. Every word serves purpose; no redundant phrases.

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

Completeness4/5

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

No output schema, but description explains return values at different detail levels and the raw mode. For a simple read tool with 4 parameters, this is sufficient.

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

Parameters4/5

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

Schema covers all parameters (100% coverage). The description adds value by explaining 'shaped order,' 'untouched RetailCRM payload' for raw, and implications of detail values, going beyond simple enum labels.

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

Purpose5/5

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

Description clearly states 'Get a single order by RetailCRM id or externalId,' specifying the resource and lookup methods. It effectively distinguishes from sibling tools like list_orders or update_order.

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

Usage Guidelines4/5

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

The description explains the detail parameter: 'summary' (compact) vs 'full' (adds items, delivery, payments). It implies when to use each but does not explicitly state when not to use the tool or mention alternatives.

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

get_orders_summaryA
Read-only

Period-scoped order summary: exact totalCount for the date range plus revenue, average order value, and status distribution aggregated over up to max_pages×100 orders (partial:true if the window exceeds that).

ParametersJSON Schema
NameRequiredDescriptionDefault
date_toYesEnd date for the summary period (YYYY-MM-DD)
date_fromYesStart date for the summary period (YYYY-MM-DD)
max_pagesNoPages of 100 orders to aggregate (revenue/status are computed over this window; the count is always exact)
filter_statusNoRestrict the summary to a single status code

TDQS

A3.9/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true. Description adds transparency about partial aggregation (partial:true if window exceeds max_pages×100) and exact count. Could mention more about performance or limits.

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

Conciseness5/5

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

Single sentence with parenthetical clarification is efficient and front-loaded. Every word adds value; no redundancy.

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

Completeness3/5

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

Describes key return fields and partial flag, but without output schema, it lacks detail on edge cases (e.g., empty result, structure of status distribution). Could be more thorough.

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

Parameters4/5

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

Schema covers 100% of parameters. Description adds context about computed fields (revenue, AOV, status distribution) and how max_pages affects aggregation window, filling gaps not in schema.

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

Purpose5/5

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

The description clearly states the tool returns a period-scoped order summary with specific metrics (totalCount, revenue, average order value, status distribution). It distinguishes from siblings like list_orders and get_customers_summary.

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

Usage Guidelines3/5

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

Description implies use for aggregated summaries vs. individual order views, but no explicit guidance or alternatives are mentioned. Could specify when to use over list_orders or get_customers_summary.

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

list_costsA
Read-only

List expense records (for margin/profit analytics) by date and cost group. Returns {costs[], pagination}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
limitNoResults per page (max 100)
filter_date_toNoCosts created on/before (YYYY-MM-DD)
filter_date_fromNoCosts created on/after (YYYY-MM-DD)
filter_cost_groupsNoFilter by cost group code

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true. Description adds useful behavioral context: purpose (profit analytics), return format ({costs[], pagination}), and constraints (by date/cost group). No contradictions.

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

Conciseness5/5

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

Two sentences, front-loaded with verb and resource, efficiently states purpose and return format. No wasted words.

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

Completeness5/5

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

For a simple read-only list tool with full schema coverage and annotations, the description covers purpose, filtering scope, and return structure. No output schema is needed given the textual hint.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. Description just reiterates 'by date and cost group' without adding new detail beyond schema. Baseline 3 is appropriate.

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

Purpose4/5

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

Description specifies verb (list), resource (expense records/costs), and purpose (margin/profit analytics). It is clear but does not explicitly differentiate from sibling list tools beyond the specific filters mentioned.

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

Usage Guidelines3/5

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

Implied usage from description (by date and cost group), but no explicit when-to-use, when-not-to-use, or alternative tools mentioned. Context signals show many list tools with overlapping functionality.

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

list_countriesA
Read-only

Valid country ISO codes for addresses/delivery.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description adds the behavioral context of returning ISO codes. However, it does not detail output format (e.g., list of strings) beyond that, nor mention any other traits.

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

Conciseness5/5

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

The description is extremely concise (5 words) and front-loaded with the key purpose. No wasted words; it earns its place.

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

Completeness3/5

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

Given the tool's simplicity (one optional param, no output schema), the description provides the essential purpose but lacks details on output structure or additional context. It is adequate but could be more complete.

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

Parameters3/5

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

Schema description coverage is 100% for the single 'raw' parameter, so the description need not add more. Baseline 3 is appropriate as the schema sufficiently documents the parameter.

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

Purpose5/5

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

The description clearly states the tool returns 'Valid country ISO codes' and specifies the context 'for addresses/delivery'. This distinguishes it from sibling tools that list other entities (e.g., products, orders).

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It implies usage for obtaining country codes but lacks 'when not to use' or alternative suggestions.

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

list_customersA
Read-only

List/search customers by name, email, phone, created-date. Returns (summary): pagination + array of {id, name, email, phone, ordersCount, totalSpent}. detail:'full' adds address/externalId/all phones.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).
pageNoPage number
limitNoResults per page (max 100)
detailNoOutput verbosity: 'summary' (compact, default — saves tokens) or 'full' (all shaped fields incl. line items, delivery, payments).summary
filter_nameNoFilter by customer name (partial match)
filter_emailNoFilter by email address
filter_phoneNoFilter by phone number
filter_date_toNoFilter customers created on/before (YYYY-MM-DD)
filter_date_fromNoFilter customers created on/after (YYYY-MM-DD)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety of the operation is clear. The description adds value by describing the return format and the effect of the detail parameter, but does not disclose additional behaviors like pagination limits or rate limits.

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

Conciseness5/5

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

Two sentences efficiently convey purpose, filters, and return format. No wasted words or repetition of schema. Front-loaded with key information.

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

Completeness3/5

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

Given 9 parameters and no output schema, the description covers the main intent and partial return format. However, it omits details on pagination structure (page/limit) and the raw parameter, leaving some gaps for an agent to infer from the schema alone.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds specific meaning beyond the schema by detailing what fields are included in summary vs full detail. For example, 'summary: {id, name, email, phone, ordersCount, totalSpent}' and 'full adds address/externalId/all phones' provides concrete context that the schema's generic 'compact' vs 'full' description lacks.

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

Purpose5/5

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

The description clearly states the tool lists/searches customers by specific fields (name, email, phone, created-date) and describes the return format. It uses specific verb+resource, and the resource 'customers' distinguishes it from sibling tools like list_products or list_orders.

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

Usage Guidelines3/5

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

The description implies usage for listing or filtering customers but does not explicitly discuss when to use this tool versus alternatives like get_customer (single) or create_customer. No exclusions or when-not-to-use guidance is provided.

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

list_delivery_typesA
Read-only

All delivery types with codes, names, default costs.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description adds that the output includes codes, names, and default costs. No additional behavioral traits (e.g., pagination, rate limits) are disclosed. Adequate but minimal value added.

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

Conciseness4/5

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

The description is extremely concise (7 words) and front-loaded. Every word contributes, but it could potentially include a bit more context without losing efficiency.

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

Completeness3/5

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

For a simple read-only list tool with no required parameters and no output schema, the description is mostly sufficient but lacks mention of the 'raw' parameter and any ordering/filtering details. Adequate but leaves some gaps.

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

Parameters3/5

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

Schema description coverage is 100% for the single 'raw' parameter, which is well-described in the schema. The description does not mention this parameter or add meaning beyond the schema, so baseline of 3 is appropriate.

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

Purpose5/5

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

The description 'All delivery types with codes, names, default costs' clearly states what the tool does (lists delivery types) and includes specific fields returned. It distinguishes from sibling tools like list_product_groups.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternatives are mentioned. The readOnlyHint implies safe use, but without guidance, usage is inferred only from the tool's name and description. Sibling tools exist but no differentiation is provided.

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

list_order_methodsC
Read-only

All order methods (acquisition channels).

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).

TDQS

C2.9/5.0
Behavior2/5

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

The annotation already declares readOnlyHint=true, indicating a safe read operation. The description adds no behavioral details beyond that, such as whether pagination, sorting, or filtering is supported. It does not disclose any limitations or side effects, missing an opportunity to add context.

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

Conciseness5/5

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

The description is a single concise sentence, front-loaded with the core purpose. No unnecessary words or repetition. Every word earns its place.

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

Completeness2/5

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

The description is minimal and lacks details like return format, error handling, or pagination. With no output schema, the agent needs more context on what the list items contain. Incomplete for a list tool.

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

Parameters3/5

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

The parameter 'raw' is fully described in the schema (100% coverage), so the baseline is 3. The description does not mention the parameter at all, so it adds no semantic value beyond the schema. Adequate but no extra benefit.

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

Purpose4/5

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

The description 'All order methods (acquisition channels)' clearly states that the tool retrieves a list of acquisition channels. The verb 'list' is implied by the name and the description confirms it returns all order methods. It is specific and not a tautology, though it could be more explicit about the output format.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like list_order_types or list_payment_types. There is no mention of prerequisites, exclusions, or context for its use.

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

list_ordersA
Read-only

List orders with filters by status, customer name, number, and created-date range. Returns (summary): pagination + array of {id, number, status, total, customer, phone, itemCount, createdAt}. Use detail:'full' for line items/delivery/payments, raw:true for the untouched payload.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).
pageNoPage number
limitNoResults per page (max 100)
detailNoOutput verbosity: 'summary' (compact, default — saves tokens) or 'full' (all shaped fields incl. line items, delivery, payments).summary
filter_numberNoFilter by order number
filter_statusNoFilter by order status code (e.g. 'new', 'complete'). Call list_statuses for valid codes.
filter_date_toNoFilter orders created on/before this date (YYYY-MM-DD)
filter_customerNoFilter by customer name (partial match)
filter_date_fromNoFilter orders created on/after this date (YYYY-MM-DD)

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, which is consistent. The description adds behavioral details: pagination return structure, the effect of detail and raw parameters, and date format requirement. No contradictions.

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

Conciseness5/5

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

Two sentences, no redundant text. Front-loaded with core purpose and filter types, followed by return summary and additional options. Every sentence adds essential information.

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

Completeness4/5

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

Given 9 parameters and no output schema, the description adequately explains the return structure (pagination + array) and key options. It could be more specific about pagination details (e.g., page/limit defaults), but these are in the schema.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds value by explaining the effect of detail and raw parameters beyond their schema descriptions. However, it does not elaborate on other parameters beyond restating their purpose.

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

Purpose5/5

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

The description clearly states 'List orders with filters' and lists the specific filter criteria, distinguishing it from single-order retrieval (get_order) and other operations. The return structure is also outlined.

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

Usage Guidelines4/5

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

The description implies usage for listing with filters and mentions options like detail:'full' and raw:true, but does not explicitly exclude cases where get_order or orders_history would be more appropriate. Sibling tool names provide context but no direct 'when-not-to-use' guidance.

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

list_order_typesA
Read-only

All order types (codes/names) — valid values for create_order's order_type.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds that the tool returns codes and names, which is valuable beyond annotations. No contradictory or missing behavioral details.

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

Conciseness5/5

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

The description is a single sentence, front-loaded with the key output, and every word is necessary. No waste.

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

Completeness5/5

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

For a simple list tool with one optional parameter and no output schema, the description fully covers purpose, output (codes/names), and usage context (valid values for create_order). No gaps.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter, so the description does not need to add parameter info. Baseline 3 applies; no extra value added.

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

Purpose5/5

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

The description clearly states that the tool lists all order types (codes/names) and explicitly ties them to create_order's order_type, distinguishing it from sibling list tools for other entities.

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

Usage Guidelines4/5

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

The description implies usage when needing valid order types for create_order, providing clear context but no alternatives or exclusion criteria.

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

list_payment_typesA
Read-only

All payment types with codes and names.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true. The description adds that it returns 'all' payment types with codes and names, but does not disclose any additional behavioral traits such as pagination, ordering, or potential omissions.

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

Conciseness5/5

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

Single, front-loaded sentence with no wasted words. Appropriate for a simple list tool.

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

Completeness4/5

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

Given the tool's simplicity (list with one optional boolean parameter, no output schema), the description covers the return content adequately, though it could mention if the list is exhaustive or paginated.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not mention the 'raw' parameter or add any meaning beyond the schema description.

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

Purpose5/5

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

The description 'All payment types with codes and names' clearly states the verb (list) and resource (payment types), and distinguishes it from sibling tools like list_delivery_types and list_statuses.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no context about prerequisites or 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.

list_product_groupsA
Read-only

List product groups (category tree). Returns {productGroup[], pagination}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
limitNoResults per page (max 100)
filter_activeNoFilter by active status
filter_parent_groupNoRestrict to children of this parent group ID

TDQS

A3.9/5.0
Behavior3/5

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

The readOnlyHint annotation already marks it as read-only, and the description adds minimal context about the category tree. No additional behavioral traits disclosed.

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

Conciseness5/5

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

Two sentences, no wasted words, front-loaded with purpose and return structure.

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

Completeness5/5

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

For a simple listing tool with readOnlyHint, fully documented parameters, and no output schema requirements, the description is complete.

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

Parameters3/5

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

Schema coverage is 100% with all parameters described. The description does not add extra meaning beyond the schema, so baseline score of 3 applies.

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

Purpose5/5

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

The description explicitly states 'List product groups (category tree)' and specifies the return format '{productGroup[], pagination}', clearly distinguishing it from sibling tools like list_products which deal with individual products.

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

Usage Guidelines3/5

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

Usage is implied as a listing tool, but there is no explicit guidance on when to use this tool versus alternatives or 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.

list_productsA
Read-only

List catalog products with filters by name, active, group, price range. Returns pagination + array of {id, name, article, active, url, groups, offers}.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).
pageNoPage number
limitNoResults per page (max 100)
filter_nameNoFilter by product name (partial match)
filter_activeNoFilter by active status (true = active only)
filter_groupsNoFilter by product group ID (see list_product_groups)
filter_max_priceNoMaximum price filter
filter_min_priceNoMinimum price filter

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description confirms it returns data without side effects. It adds context on pagination and the 'raw' debug flag, which goes beyond annotations.

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

Conciseness5/5

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

Two sentences, no extraneous information. Every word adds value, clearly describing the tool's purpose and output.

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

Completeness5/5

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

For a read-only list tool with no output schema, the description covers the return format (pagination + array of fields) and the key filtering capabilities. No gaps are apparent given the tool's simplicity.

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

Parameters3/5

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

Schema description coverage is 100%, so the description does not add new parameter semantics. It briefly summarizes available filters, but this does not surpass the baseline for full schema coverage.

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

Purpose5/5

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

The description clearly states the verb 'list' and resource 'catalog products', and enumerates specific filters (name, active, group, price range). It distinguishes from sibling tools like list_product_groups by focusing on products themselves.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives like list_product_groups. Usage is implied through the filter parameters, but no direct guidance or exclusion is provided.

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

list_segmentsA
Read-only

List customer segments (RFM/marketing cohorts). Returns {segments[], pagination}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
limitNoResults per page (max 100)
filter_typeNoSegment type
filter_activeNoOnly active segments

TDQS

A3.8/5.0
Behavior3/5

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

The annotation already sets readOnlyHint=true. The description adds the return structure with pagination but does not disclose other behavioral details (e.g., is the list ordered? any limits beyond pagination?). Some value added, but limited.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the purpose and covers the key output. No extraneous words.

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

Completeness4/5

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

For a simple list operation with no output schema, the description covers the basic intent and pagination. It could be improved by specifying fields in the segments[] array, but it is sufficient for an agent to understand the tool.

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

Parameters3/5

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

All four parameters have descriptions in the input schema, so the description does not add additional semantic meaning beyond what the schema provides. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'customer segments (RFM/marketing cohorts)'. It also describes the return structure as {segments[], pagination}, making it specific and distinct from sibling list tools.

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

Usage Guidelines3/5

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

The description implies the tool is for listing customer segments but does not provide explicit guidance on when to use it versus alternatives like list_customers or list_products. No exclusions or prerequisites are mentioned.

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

list_sitesA
Read-only

All sites/stores the API key can act on — use the returned code as the site param on multi-site create/edit.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).

TDQS

A4.3/5.0
Behavior4/5

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

The description adds value beyond the readOnlyHint annotation by explaining that the tool returns codes for use in other API calls. It does not contradict annotations, and the readOnlyHint is consistent with a list operation.

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

Conciseness5/5

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

The description is one concise sentence that front-loads the purpose and secondary usage. No wasted words.

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

Completeness5/5

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

For a simple list tool with no output schema, the description adequately explains what the tool returns (site codes) and how to use them. No additional information is needed.

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

Parameters3/5

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

Schema coverage is 100%, with the single 'raw' parameter already described in the schema. The description does not add extra parameter details, but the baseline of 3 is appropriate as the schema fully documents the parameter.

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

Purpose5/5

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

The description clearly states the tool lists all sites/stores the API key can act on, which is a specific verb+resource. It distinguishes from sibling tools that deal with orders, customers, etc., by focusing on site enumeration.

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

Usage Guidelines4/5

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

The description explicitly says to use the returned code as the 'site' param in multi-site create/edit operations, providing clear context for when to use this tool. It does not mention when not to use, but alternatives are not needed as sibling tools have different purposes.

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

list_statusesA
Read-only

All order statuses (codes, names, groups, ordering). Call before filtering/updating orders by status.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint: true, so the description does not need to repeat that. It adds context about the returned data (codes, names, groups, ordering), but does not describe any other behavioral traits. This is adequate for a read-only tool.

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

Conciseness5/5

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

The description is a single sentence that conveys the core purpose and usage hint without any redundant words. It is front-loaded and efficient.

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

Completeness5/5

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

For a simple list tool with one optional parameter and no output schema, the description provides sufficient information: what the tool returns and when to use it. The parameter is well-documented in the schema.

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

Parameters3/5

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

The single parameter 'raw' is fully documented in the input schema with a clear description. The tool description does not add extra information about parameters, but schema coverage is 100%, so the description is not required to elaborate further.

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

Purpose5/5

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

The description clearly states 'All order statuses (codes, names, groups, ordering)', which explicitly identifies the tool's purpose and the data it returns. It is distinct from sibling tools like list_product_groups or list_orders.

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

Usage Guidelines4/5

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

The description provides explicit guidance: 'Call before filtering/updating orders by status.' This tells the agent when to use the tool, though it does not mention alternatives or when not to use it, which is acceptable for a simple read-only tool.

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

list_storesA
Read-only

All warehouses/stores (codes, names, types).

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already mark the tool as read-only. The description adds that it returns codes, names, and types, but does not mention pagination or limits. Adds some 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.

Conciseness4/5

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

The description is short and to the point, with no wasted words. Could be slightly more structured but is efficient.

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

Completeness4/5

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

For a simple list tool with one optional parameter and no output schema, the description sufficiently states what is returned. It is complete enough for its simplicity.

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

Parameters3/5

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

Schema description coverage is 100%, with the single 'raw' parameter already explained. The description adds no further meaning to parameters.

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

Purpose5/5

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

The description clearly states the tool lists all warehouses/stores with codes, names, and types. It distinguishes from sibling tools that deal with orders, customers, products, etc.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives. Usage is implied by the simple nature of listing stores, but no exclusions or context provided.

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

merge_customersA
Destructive

Merge duplicate customers into a target; merged records are DELETED. Returns {success}.

ParametersJSON Schema
NameRequiredDescriptionDefault
result_customer_idYesID of the customer to keep (the merge target)
merged_customer_idsYesIDs of customers to merge into the target (will be deleted)

TDQS

A4/5.0
Behavior4/5

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

Description explicitly states that merged records are deleted and returns {success}, adding behavioral context beyond the annotation's destructiveHint=true. However, it does not mention side effects like handling of associated data or rollback.

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

Conciseness5/5

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

Single sentence conveys purpose, key behavior (deletion), and return value. No wasted words; front-loaded with essential information.

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

Completeness4/5

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

With two well-documented parameters, destructive annotation, and simple return, the description is mostly complete. It lacks details about conflict resolution or handling of related records, but these are edge cases.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both parameters. The description adds no additional parameter-level meaning, so baseline score of 3 applies.

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

Purpose5/5

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

Description clearly states the action ('merge duplicate customers'), the resource ('customers'), and key outcomes (target kept, merged deleted). This distinguishes it from other customer tools like create_customer, update_customer, etc.

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

Usage Guidelines3/5

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

Description implies usage when duplicates exist but does not explicitly state when to use this tool versus alternatives (e.g., update_customer) or conditions/limitations. No guidance on when not to use.

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

order_payment_createA

Record a payment against an order (amount, type, status, paid_at). Returns {success, id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite (store) symbolic code. Required on create/edit when the API key is scoped to multiple sites (see list_sites).
typeYesPayment type code (see list_payment_types)
amountYesPayment amount
statusNoPayment status code (e.g. 'paid')
paid_atNoPaid timestamp 'YYYY-MM-DD HH:MM:SS'
order_idNoOrder RetailCRM ID the payment belongs to
order_external_idNoOrder externalId (alternative to order_id)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, indicating a mutation operation. The description adds the return format but not side effects, idempotency, or error conditions. Minimal additional 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.

Conciseness5/5

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

Single clear sentence with no wasted words. Perfectly concise and front-loaded.

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

Completeness3/5

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

Given 7 parameters, no output schema, and simple annotations, the description covers the basic purpose and return but lacks guidance on order identifier selection (order_id vs order_external_id) and required field interpretation beyond the schema.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all 7 parameters. The description adds a concise list of key parameters but no deeper semantics. Baseline of 3 is appropriate.

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

Purpose5/5

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

Clearly states the action (record a payment against an order), lists key parameters (amount, type, status, paid_at), and describes the return value ({success, id}). Distinguishes from sibling tools like order_payment_edit and order_payment_delete.

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

Usage Guidelines2/5

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

Does not provide explicit guidance on when to use this tool versus alternatives like order_payment_edit or order_payment_delete. No mention of prerequisites or conditions for use.

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

order_payment_deleteB
Destructive

Delete an order payment by id. Returns {success}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPayment ID to delete

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already indicate destructive behavior; description adds only a minimal return format. No additional side effects or authorization needs mentioned.

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

Conciseness5/5

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

Two short sentences, no unnecessary information; concise and well-structured.

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

Completeness3/5

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

Adequate for a simple delete operation, but missing context such as success conditions or error handling for a destructive action.

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

Parameters3/5

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

Schema coverage is 100% and the description does not add meaning beyond the existing parameter description.

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

Purpose5/5

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

Clearly states the action of deleting an order payment by id, distinguishing it from create and edit sibling tools.

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

Usage Guidelines2/5

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

No guidance on when to use versus alternatives like order_payment_edit or order_payment_create; no prerequisites or context provided.

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

order_payment_editB

Edit an existing order payment (amount/status/paid_at). Returns {success}.

ParametersJSON Schema
NameRequiredDescriptionDefault
byNoLookup fieldid
idYesPayment ID (or externalId) to edit
siteNoSite (store) symbolic code. Required on create/edit when the API key is scoped to multiple sites (see list_sites).
amountNoUpdated amount
statusNoUpdated payment status code
paid_atNoUpdated paid timestamp 'YYYY-MM-DD HH:MM:SS'

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds no extra behavioral context such as side effects, permissions, or reversibility. It only says 'Edit' and 'Returns {success}'.

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

Conciseness4/5

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

The description is one sentence, concise, and front-loaded with verb and resource. It could include a brief usage hint, but overall efficient.

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

Completeness2/5

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

With no output schema, the description only mentions 'Returns {success}' which is minimal. It does not specify whether the response includes the updated payment object or just a success flag. For a mutation tool, more detail on return value and error handling is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter already has a description. The description summarizes editable fields but adds no new meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'Edit' and resource 'existing order payment', and lists editable fields (amount/status/paid_at). It distinguishes from sibling tools like order_payment_create and order_payment_delete.

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

Usage Guidelines3/5

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

The description implies usage when editing an existing payment but does not explicitly state when to use, when not to use, or compare with alternatives like update_order.

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

orders_historyA
Read-only

Order change history incl. status transitions; supports incremental sync via filter_since_id and a date window. Returns {history[], pagination}.

ParametersJSON Schema
NameRequiredDescriptionDefault
rawNoIf true, return the untouched RetailCRM payload (for debugging; verbose).
pageNoPage number
limitNoResults per page (max 100)
filter_date_toNoChanges on/before this date (YYYY-MM-DD)
filter_order_idNoRestrict to a single order's history by RetailCRM ID
filter_since_idNoReturn changes after this history entry ID (incremental sync)
filter_date_fromNoChanges on/after this date (YYYY-MM-DD)

TDQS

A4.7/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true, and description confirms read-only behavior. It adds context about incremental sync and paginated return, which aligns with annotations and provides useful behavioral details beyond what annotations cover.

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

Conciseness5/5

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

Two sentences, front-loaded with core purpose, no fluff. Every sentence adds value: purpose, sync support, return format.

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

Completeness5/5

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

For a read-only history tool with 7 parameters and no required fields, the description adequately covers return format and incremental sync. No output schema, but the return structure is described explicitly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. Description highlights key parameters (filter_since_id, date window) for sync, adding context beyond schema descriptions. Not all parameters are elaborated, but the most important ones are emphasized.

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

Purpose5/5

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

Description clearly states it retrieves order change history with status transitions and supports incremental sync. It distinguishes from related tools like get_order (single order) and list_orders (list of orders).

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

Usage Guidelines4/5

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

Description explains when to use the tool (for history with incremental sync via filter_since_id and date window), but does not explicitly mention when not to use or contrast with sibling tools like customers_history.

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

store_inventoriesA
Read-only

Stock levels (and cost prices) per offer/warehouse. Use details:true for the per-store breakdown. Returns {offers[], pagination}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
siteNoSite (store) symbolic code. Required on create/edit when the API key is scoped to multiple sites (see list_sites).
limitNoResults per page (max 100)
detailsNoInclude per-store breakdown (sets filter[details]=1)
filter_product_activeNoOnly offers of active products
filter_offer_external_idNoFilter by offer externalId

TDQS

A4.2/5.0
Behavior4/5

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

The description matches the readOnlyHint annotation and adds detail about the return structure (pagination, offers). No hidden side effects or permissions are disclosed, but the tool is safe and simple.

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

Conciseness5/5

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

Two sentences convey the core purpose, key parameter usage, and return format without extraneous information. Front-loaded with the most important data.

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

Completeness4/5

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

Given the tool has 6 parameters all documented in schema and no output schema, the description covers the essential return structure. It could elaborate on the offers[] contents, but the tool is a straightforward listing endpoint.

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

Parameters3/5

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

Schema coverage is 100%, so the description adds limited value beyond the schema. It does clarify the effect of the details parameter, but others are already well-documented in the schema.

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

Purpose5/5

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

The description clearly states it returns stock levels and cost prices per offer/warehouse, with an option for per-store breakdown. This distinguishes it from sibling tools that handle orders, customers, or products.

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

Usage Guidelines4/5

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

It provides practical guidance on using the details parameter for per-store breakdown. While it doesn't explicitly state when not to use this tool, the read-only nature and clear data returned make usage straightforward.

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

tasks_createA

Create a task (text, due datetime, performer, linked order/customer). Returns {success, id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteNoSite (store) symbolic code. Required on create/edit when the API key is scoped to multiple sites (see list_sites).
textYesTask text / what to do
datetimeNoDue datetime 'YYYY-MM-DD HH:MM:SS'
order_idNoLink to order RetailCRM ID
commentaryNoAdditional commentary
customer_idNoLink to customer RetailCRM ID
performer_idNoAssign to manager ID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate non-destructive mutation. Description adds that it returns {success, id}, but doesn't disclose details like permissions needed, behavior on duplicate text, or how linked entities are validated.

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

Conciseness5/5

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

Single sentence, front-loaded with action and result. No wasted words. Perfectly concise.

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

Completeness4/5

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

No output schema, but description covers return format. Tool is simple with 1 required param. Could mention that site is required when API key is scoped to multiple sites, but that's in schema. Overall adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds a concise grouping of parameter purposes (due datetime, performer, linked order/customer), but adds little beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the verb 'Create' and resource 'task', listing key fields (text, due datetime, performer, linked order/customer). It implicitly distinguishes from sibling tools like tasks_list (list) and tasks_edit (edit).

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives, but the purpose is clear and the sibling names imply that tasks_list and tasks_edit cover other operations. Could benefit from a note on prerequisites like site parameter.

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

tasks_editA

Edit a task or mark it complete. Returns {success}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask ID to edit
siteNoSite (store) symbolic code. Required on create/edit when the API key is scoped to multiple sites (see list_sites).
textNoUpdated task text
completeNoMark the task completed
datetimeNoUpdated due datetime 'YYYY-MM-DD HH:MM:SS'
commentaryNoUpdated commentary
performer_idNoReassign to manager ID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already mark readOnlyHint=false and destructiveHint=false. The description adds that it returns {success}, but does not disclose permissions, side effects, or limitations.

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

Conciseness5/5

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

Two sentences with no redundant words. Front-loaded with the core action.

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

Completeness2/5

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

Despite 7 parameters and no output schema, the description is minimal. It does not explain the return value beyond {success}, constraints like site requirement for multi-site keys, or behavior of marking complete vs editing.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds no additional parameter meaning beyond the schema.

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

Purpose5/5

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

The description clearly states 'Edit a task or mark it complete', specifying the verb (edit) and resource (task). It distinguishes from sibling tools like tasks_list and tasks_create.

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

Usage Guidelines3/5

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

The description implies usage when editing a task, but does not explicitly state when to use this tool versus tasks_create or tasks_list, nor provides exclusion criteria.

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

tasks_listA
Read-only

List follow-up tasks/reminders, filterable by status/performer/customer. Returns {tasks[], pagination}.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
limitNoResults per page (max 100)
filter_statusNoFilter by completion status
filter_customerNoFilter by customer name/contact (text match — RetailCRM v5 has no numeric customer-ID task filter)
filter_performer_idNoFilter by assigned manager ID

TDQS

A4/5.0
Behavior4/5

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

Consistent with readOnlyHint annotation. Adds return structure details ({tasks[], pagination}) and filter options, which provides 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.

Conciseness5/5

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

Single sentence with front-loaded action and key details. Every element is necessary and no wasted words.

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

Completeness4/5

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

Given no output schema, description adequately specifies return structure and filter parameters. Annotations cover safety. Could mention sorting order, but not critical for completeness.

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

Parameters3/5

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

Schema coverage is 100% with detailed per-parameter descriptions. Description provides a high-level summary of filter capabilities but does not add significant new meaning beyond the existing schema.

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

Purpose5/5

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

Description clearly states verb (list), resource (tasks), filterable fields (status/performer/customer), and return structure. Differentiates from sibling task tools (tasks_create, tasks_edit) and other list tools.

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

Usage Guidelines3/5

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

Describes what the tool does and filter options, but lacks explicit guidance on when to use this tool vs alternatives (e.g., tasks_create for new tasks, list_orders for orders). No exclusions or prerequisites mentioned.

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

update_customerA

Edit an existing customer (name, email, phones, address) by id or externalId. Only the fields you pass are sent. Returns {success}.

ParametersJSON Schema
NameRequiredDescriptionDefault
byNoLookup fieldid
idYesCustomer ID or externalId to edit
siteNoSite (store) symbolic code. Required on create/edit when the API key is scoped to multiple sites (see list_sites).
emailNoUpdated email
phonesNoReplace phone numbers
last_nameNoUpdated last name
first_nameNoUpdated first name
patronymicNoUpdated patronymic
address_cityNoUpdated city
address_textNoUpdated full address text
address_regionNoUpdated region/state

TDQS

A3.8/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds 'Edit' (a write operation) and the return value '{success}', but does not disclose additional behaviors such as idempotency, authorization requirements, or side effects beyond the partial update characteristic.

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

Conciseness5/5

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

Two concise sentences. First sentence encapsulates purpose and identification method. Second covers partial update behavior and return value. No wasted words and front-loaded.

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

Completeness4/5

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

Given the 11 simple parameters and full schema coverage, the description is sufficient. However, it could mention that the customer must exist, or that some fields may be conditionally required based on site settings. No output schema, but return value is specified.

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

Parameters4/5

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

With 100% schema description coverage, baseline is 3. The description adds value by noting that only passed fields are sent (partial update) and that identification can be by id or externalId, which informs the 'by' parameter usage beyond its schema description.

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

Purpose5/5

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

The description clearly states the verb 'Edit', the resource 'existing customer', and the identification method 'by id or externalId'. It lists the updatable fields (name, email, phones, address), which distinguishes it from customer creation or retrieval tools among siblings.

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

Usage Guidelines3/5

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

The description implies use when modifying an existing customer but does not explicitly state when to use this tool versus alternatives like create_customer or merge_customers. No exclusion or prerequisite conditions are provided.

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

update_orderA

Update an order (status, customer, delivery, comments). Only the fields you pass are sent. Returns {success}.

ParametersJSON Schema
NameRequiredDescriptionDefault
byNoLookup fieldid
idYesOrder ID to update
siteNoSite (store) symbolic code. Required on create/edit when the API key is scoped to multiple sites (see list_sites).
emailNoUpdated customer email
phoneNoUpdated customer phone
statusNoNew status code
last_nameNoUpdated customer last name
first_nameNoUpdated customer first name
customer_idNoRe-link the order to an existing customer by RetailCRM ID
delivery_codeNoUpdated delivery type code
delivery_costNoUpdated delivery cost
manager_commentNoInternal manager comment
customer_commentNoCustomer-visible comment
delivery_addressNoUpdated delivery address
customer_external_idNoRe-link the order to an existing customer by externalId

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=false and destructiveHint=false. The description adds that it performs an update and returns '{success}'. It also clarifies the partial-update behavior. No contradictions, but could include error handling details.

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

Conciseness5/5

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

Two concise sentences with no redundant information. Every sentence adds value: the first states what the tool does, the second explains the partial-update and return format.

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

Completeness4/5

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

Given the tool's complexity (15 parameters, partial update), the description covers core behavior and return. No output schema exists, but the return is simple. Slightly lacking on error cases and prerequisites, but adequate for an update tool.

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

Parameters3/5

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

Schema coverage is 100% with individual parameter descriptions. The description groups parameters into categories (status, customer, delivery, comments) and explains the partial-update semantics, adding moderate value beyond the schema.

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

Purpose5/5

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

The description clearly states 'Update an order' with specific fields (status, customer, delivery, comments). It distinguishes from sibling tools like get_order, create_order, and orders_history by focusing on update functionality.

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

Usage Guidelines3/5

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

The description indicates 'Only the fields you pass are sent', implying partial update behavior. However, it does not explicitly state when to use this tool versus alternatives (e.g., create_order) or define prerequisites like order existence.

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. Dates show when Glama detected each change.

  1. 39 tool updatesv3.0.0
    • First observedcreate_cost
    • First observedcreate_customer
    • First observedcreate_order
    • First observedcustomer_notes_create
    • First observedcustomer_notes_delete
    • First observedcustomer_notes_list
    • First observedcustomers_history
    • First observedfiles_get
    • First observedfiles_list
    • First observedfiles_upload
    • First observedget_customer
    • First observedget_customers_summary
    • First observedget_order
    • First observedget_orders_summary
    • First observedlist_costs
    • First observedlist_countries
    • First observedlist_customers
    • First observedlist_delivery_types
    • First observedlist_order_methods
    • First observedlist_order_types
    • First observedlist_orders
    • First observedlist_payment_types
    • First observedlist_product_groups
    • First observedlist_products
    • First observedlist_segments
    • First observedlist_sites
    • First observedlist_statuses
    • First observedlist_stores
    • First observedmerge_customers
    • First observedorder_payment_create
    • First observedorder_payment_delete
    • First observedorder_payment_edit
    • First observedorders_history
    • First observedstore_inventories
    • First observedtasks_create
    • First observedtasks_edit
    • First observedtasks_list
    • First observedupdate_customer
    • First observedupdate_order

TDQS

B3.4/5.0
Disambiguation5/5

Each tool targets a distinct operation (list, get, create, update, delete, history, summary) on a specific entity (orders, customers, products, payments, etc.). Descriptions clearly differentiate them, even where naming patterns vary.

Naming Consistency3/5

Tool names mix verb-first (e.g., list_orders, create_customer) and noun-first patterns (e.g., orders_history, customer_notes_list, order_payment_create). While readable, the inconsistency in naming convention increases ambiguity.

Tool Count2/5

With 39 tools, the surface is heavy. Many reference data tools (list_statuses, list_delivery_types) add bulk without deepening functionality. The count is unnecessarily high for the scope.

Completeness2/5

Several fundamental CRUD operations are missing: no order delete, no customer delete, no product create/update/delete, no note update, no task delete, no file delete. These gaps will hinder autonomous agent workflows in a retail CRM.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server for managing WooCommerce stores through AI assistants like Claude. Provides 101 tools covering products, orders, customers, coupons, shipping, taxes, webhooks, settings, reports, and more.
    100
    139
    2
    MIT
  • A
    license
    C
    quality
    B
    maintenance
    MCP server for MoySklad (МойСклад) warehouse and CRM management API. 21 tools covering the full order lifecycle: products, stock, counterparties, customer orders, shipments, supplies, warehouses, organizations, reports, and webhooks.
    60
    100
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A production-ready MCP server for Method CRM API integration. It enables LLMs to interact with Method CRM data through tools for tables, files, users, events, and API key management.
    3
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Self-hosted MCP server that connects AI assistants to Kommo CRM (API v4), enabling real-time CRM actions such as creating/managing leads, tasks, notes, and more through 29 tools.
    29
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/theYahia/retailcrm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server