Для ИИ-агентов и интеграторов
7 инструментовMCP и REST без ключа · каталог, расчёт, заявки
Подключите ассистента к каталогу agrodiler.com: он найдёт подшипник по номеру, ГОСТу или размеру, посчитает итог с доставкой и отправит заявку от имени покупателя. Ключ и регистрация не нужны. Денег API не списывает: покупатель подтверждает заявку кодом из письма, потом с ним связывается менеджер.
Подключение— один адрес, без ключа
https://www.agrodiler.com/mcpБез сессии и входа: добавьте адрес как удалённый MCP-сервер в настройках клиента. Ревизия протокола 2026-07-28, клиенты на ревизиях 2025 года тоже работают. В официальном реестре MCP сервер записан как com.agrodiler/catalog.
https://www.agrodiler.com/api/agent/v1/Те же инструменты: 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-productsget_productОдна позиция: номер, бренд, размер, наличие, минимальная партия и цена. Цены нет — её назовёт менеджер.REST: get-productquoteИтог по правилам корзины сайта: цены, минимальный заказ, доставка; для ЕС отдельно доставка и НДС. Заказ не создаёт.REST: quotecart_linkСсылка на сайт с заполненной корзиной и формой заказа — если покупатель хочет закончить сам.REST: cart-linkplace_orderОтправляет заявку, когда покупатель согласился с позициями и суммой. Ему на почту уходит 6-значный код.REST: place-orderconfirm_orderПодтверждает заявку кодом, который назвал покупатель. Код не угадывать: 8 попыток на заявку.REST: confirm-orderresend_codeНовый код, если письмо не пришло или код истёк (живёт 30 минут). Не больше 2 раз на заявку.REST: resend-codeКак оформляется заказ— это заявка, а не покупка: оплаты через API нет
search_productsАгентНаходит позиции и берёт их handle.
quoteАгентСчитает итог. Покупатель видит сумму и соглашается; total_minor из ответа идёт дальше.
place_orderАгентПередаёт позиции, имя и почту покупателя, expected_total_minor и новый idempotency_key. Получает order_number и order_secret.
- Код из письмаПокупатель
Получает 6-значный код, он действует 30 минут. Называет его агенту или подтверждает ссылкой из письма.
confirm_orderАгентПередаёт код с order_number и order_secret. Заявка уходит менеджеру.
- МенеджерАгродилер
Проверяет наличие и цену, связывается с покупателем. Дальше договор и счёт.
- Сумма изменилась после quote — придёт ошибка price_changed и новая сумма в new_total. Покажите её покупателю и отправьте заявку с ней.
- Оборвалась связь на place_order — повторите с тем же idempotency_key: вернётся та же заявка, второй не будет.
- order_secret нужен только для confirm_order и resend_code. Не выводите его в чат и в публичные логи.
- Крупная заявка приходит с needs_phone_check: менеджер позвонит покупателю до подтверждения.
- Не подтвердили за 48 часов — контакты покупателя обезличиваются, код перестаёт действовать; сама заявка остаётся.
- Покупатель хочет оформить сам — cart_link даст ссылку на сайт с заполненной корзиной и формой заказа.
Рынки, языки, валюты— выбираются параметром lang
ЕС, цены в евро, доставка в страны ЕС. get_product отдаёт цену без НДС, quote добавляет НДС страны доставки.
Обязателен ship_to.country — код страны: DE, PL, FR. Минимальный заказ — 49,00 € без НДС.
Украина, цены в гривнах с НДС, доставка Новой почтой. ship_to не передавать. Если lang не указан, берётся uk.
Минимальный заказ — 1 000 грн.
Поля с окончанием _minor — в копейках или центах: 3300 означает 33,00. price_hint приходит в гривнах или евро. Названия товаров — на языке lang, служебные сообщения API — на английском.
Лимиты— на один сетевой адрес, для IPv6 — на сеть /64
Всего, по всем инструментам.
place_order.
confirm_order.
На один почтовый ящик — письма с кодом, первые и повторные. Ещё потолки в час: 5 писем на адрес, 10 на подсеть (IPv4 /24, IPv6 /48).
На одну заявку. Новый код попытки не сбрасывает.
resend_code на одну заявку; прежний код перестаёт работать.
Сверх лимита — ответ HTTP 429 и заголовок Retry-After: через сколько секунд повторить.
Если что-то не так— Пн–Пт 8:00–17:00 по киевскому времени
Пришлите запрос, ответ целиком и время, когда он ушёл. Код ошибки — в поле error, пояснение — в message. Почта: info@agrodiler.com