Для ИИ-агентов и интеграторов

7 инструментов

MCP и REST без ключа · каталог, расчёт, заявки

Подключите ассистента к каталогу agrodiler.com: он найдёт подшипник по номеру, ГОСТу или размеру, посчитает итог с доставкой и отправит заявку от имени покупателя. Ключ и регистрация не нужны. Денег API не списывает: покупатель подтверждает заявку кодом из письма, потом с ним связывается менеджер.

Подключение— один адрес, без ключа

MCP-сервер · Streamable HTTPhttps://www.agrodiler.com/mcp

Без сессии и входа: добавьте адрес как удалённый MCP-сервер в настройках клиента. Ревизия протокола 2026-07-28, клиенты на ревизиях 2025 года тоже работают. В официальном реестре MCP сервер записан как com.agrodiler/catalog.

REST API · OpenAPI 3.1, версия 1.1.0https://www.agrodiler.com/api/agent/v1/
Открыть openapi.yaml

Те же инструменты: POST с JSON в теле, ответ в JSON. В openapi.yaml описаны все поля, ошибки и лимиты.

Для языковых моделей · простой текстhttps://www.agrodiler.com/ru/llms.txt

Разделы сайта, шаблоны адресов страниц и рынки — коротко, чтобы ассистенту не пришлось обходить сайт целиком.

Поиск подшипника 6205 2RS · рынок Украины, три позицииcurlстроки листаются вбок

curl -X POST https://www.agrodiler.com/mcp \
  -H 'content-type: application/json' \
  -H 'accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"search_products",
         "arguments":{"query":"6205 2RS","lang":"ru","limit":3}}}'
curl -X POST https://www.agrodiler.com/api/agent/v1/search-products \
  -H 'content-type: application/json' \
  -d '{"query":"6205 2RS","lang":"ru","limit":3}'

Ответ · 14.11.2026, сокращёнв MCP — внутри result.structuredContentтело ответа

{
  "query": "6205 2RS",
  "match": "all_words",
  "total": 31,
  "items": [
    {
      "handle": "ct-6205-2rs",
      "section": "bearing",
      "title": "Подшипник CT 6205 2RS",
      "brand": "CT",
      "in_stock": true,
      "stock_qty": 15762,
      "price_hint": { "amount": 33, "currency": "uah" },
      "url": "https://www.agrodiler.com/ru/podshipnik/ct-6205-2rs/"
    },
    { "handle": "ct-6205-2rs-c3", … "price_hint": { "amount": 35, … } },
    { "handle": "nte-6205-2rs", … "price_hint": { "amount": 40, … } }
  ],
  "note": "price_hint is the catalog price in UAH at site build time …"
}
  • total: 31 — столько позиций нашлось всего. В ответе первые 3, как просили в limit (можно до 20).
  • handle передавайте дальше: в get_product, quote, cart_link и place_order.
  • price_hint — цена каталога на момент сборки сайта. Сумму, за которую отвечаем, считает quote.

Что умеет API— в REST те же имена через дефис

Каталогтолько читают: ничего не резервируют и не меняют
search_productsПоиск, как на сайте: номер детали, обозначение подшипника, номер ГОСТ (180205 станет 6205-2RS), размер 25x52x15, бренд или название.REST: search-products
get_productОдна позиция: номер, бренд, размер, наличие, минимальная партия и цена. Цены нет — её назовёт менеджер.REST: get-product
quoteИтог по правилам корзины сайта: цены, минимальный заказ, доставка; для ЕС отдельно доставка и НДС. Заказ не создаёт.REST: quote
cart_linkСсылка на сайт с заполненной корзиной и формой заказа — если покупатель хочет закончить сам.REST: cart-link
Заявкасоздают и подтверждают заявку, оплату не берут
place_orderОтправляет заявку, когда покупатель согласился с позициями и суммой. Ему на почту уходит 6-значный код.REST: place-order
confirm_orderПодтверждает заявку кодом, который назвал покупатель. Код не угадывать: 8 попыток на заявку.REST: confirm-order
resend_codeНовый код, если письмо не пришло или код истёк (живёт 30 минут). Не больше 2 раз на заявку.REST: resend-code

Как оформляется заказ— это заявка, а не покупка: оплаты через API нет

  1. search_productsАгент

    Находит позиции и берёт их handle.

  2. quoteАгент

    Считает итог. Покупатель видит сумму и соглашается; total_minor из ответа идёт дальше.

  3. place_orderАгент

    Передаёт позиции, имя и почту покупателя, expected_total_minor и новый idempotency_key. Получает order_number и order_secret.

  4. Код из письмаПокупатель

    Получает 6-значный код, он действует 30 минут. Называет его агенту или подтверждает ссылкой из письма.

  5. confirm_orderАгент

    Передаёт код с order_number и order_secret. Заявка уходит менеджеру.

  6. МенеджерАгродилер

    Проверяет наличие и цену, связывается с покупателем. Дальше договор и счёт.

  • Сумма изменилась после quote — придёт ошибка price_changed и новая сумма в new_total. Покажите её покупателю и отправьте заявку с ней.
  • Оборвалась связь на place_order — повторите с тем же idempotency_key: вернётся та же заявка, второй не будет.
  • order_secret нужен только для confirm_order и resend_code. Не выводите его в чат и в публичные логи.
  • Крупная заявка приходит с needs_phone_check: менеджер позвонит покупателю до подтверждения.
  • Не подтвердили за 48 часов — контакты покупателя обезличиваются, код перестаёт действовать; сама заявка остаётся.
  • Покупатель хочет оформить сам — cart_link даст ссылку на сайт с заполненной корзиной и формой заказа.

Рынки, языки, валюты— выбираются параметром lang

en

ЕС, цены в евро, доставка в страны ЕС. get_product отдаёт цену без НДС, quote добавляет НДС страны доставки.

Обязателен ship_to.country — код страны: DE, PL, FR. Минимальный заказ — 49,00 € без НДС.

uk, ru

Украина, цены в гривнах с НДС, доставка Новой почтой. ship_to не передавать. Если lang не указан, берётся uk.

Минимальный заказ — 1 000 грн.

Поля с окончанием _minor — в копейках или центах: 3300 означает 33,00. price_hint приходит в гривнах или евро. Названия товаров — на языке lang, служебные сообщения API — на английском.

Лимиты— на один сетевой адрес, для IPv6 — на сеть /64

60 вызовов в минуту

Всего, по всем инструментам.

3 заявки в час

place_order.

10 подтверждений в час

confirm_order.

3 письма в час

На один почтовый ящик — письма с кодом, первые и повторные. Ещё потолки в час: 5 писем на адрес, 10 на подсеть (IPv4 /24, IPv6 /48).

8 попыток кода

На одну заявку. Новый код попытки не сбрасывает.

2 повторных кода

resend_code на одну заявку; прежний код перестаёт работать.

Сверх лимита — ответ HTTP 429 и заголовок Retry-After: через сколько секунд повторить.

Если что-то не так— Пн–Пт 8:00⁠–⁠17:00 по киевскому времени

Пришлите запрос, ответ целиком и время, когда он ушёл. Код ошибки — в поле error, пояснение — в message. Почта: info@agrodiler.com