3. Описание MCP-сервера › 3.7 Витрина › shop_module

Открывает веб-модуль этого магазина так, как его открывает программа в своих окнах: от имени пользователя сессии и с полями окна. Для проверки и разработки встроенных и внешних модулей — «Веб-модули».

Право

Не требуется: права на модуль проверяет сам модуль по ключу, как в окне программы; с debug — «Прямой доступ → Разработка → Получить конфигурацию» (AGENT_ENGINE_DEV_CONFIG).

Параметры

Параметр Тип Что это
url строка адрес, по которому программа открывает модуль: /?mod=melbis_web_sample. Полный адрес принимается, только если это адрес этого магазина
[post] объект поля окна — order_id, store_id, topic_id и другие — и func, чтобы вызвать функцию модуля
[cookies] объект куки прошлого ответа, имя → значение, чтобы остаться в той же сессии модуля. Без них — новая сессия
[headers] объект заголовки запроса — как у shop_page; без своего Accept-Language уходит язык программы
[find] строка показать места ответа, где встречается этот текст, вместо его начала
[debug] да/нет добавить отчёт отладчика

Каждый вызов — POST. Сервер сам добавляет к полям login, stamp и sign пользователя сессии, как программа с флажком «Требуется идентификация пользователя»; через агента они не проходят: если модуль печатает свои переменные, подпись в его ответе и в файле заменена на <sign>. Какие поля шлёт каждое окно — «Веб-модули». Значение поля post — строка, число или да/нет; список значений уходит как имя[]=… по одному на значение.

Куки — как у shop_page: приходят в ответе и уходят с вызовом, сервер их не хранит. Сессия модуля длится, пока агент передаёт куки дальше. Без них каждый вызов открывает новую сессию, а вход подписью идёт при каждом вызове.

Язык — как у браузера программы: сервер ставит язык программы в Accept-Language, если в headers не задан свой, и модуль узнаёт его так же, как в окне программы — «Веб-модули», раздел «Язык пользователя».

Ответ

{"url": "https://shop.example.com/?mod=melbis_web_sample", "debug": false,
 "post": "order_id=1&func=GetGoods", "cookies": {"MELBIS_SHOP": "p81sd…"}, "status": 200,
 "headers": {"Content-Type": "text/html; charset=UTF-8"},
 "bytes": 1840, "time": 71, "title": "",
 "file": "D:\\Melbis\\shop.example.com\\mcp\\claude-code\\prices-sept\\modules\\mod_melbis_web_sample.html",
 "report": null, "found": null}

Затем текстом — первые 2000 символов ответа модуля, если не заданы ни find, ни debug.

Поля — как у shop_page; post — поля, которые передал агент, без login, stamp и sign, или null. Ответ модуля сохраняется в modules\ папки разговора, имя файла берётся из адреса.

Отказы

Ответ Когда
url is required… не указан url
Only pages of this store can be fetched: … в url полный адрес другого сайта
The field [<имя>] of post takes a value or a list of values… в поле post объект или список в списке
cookies takes an object…, The cookie [<имя>] cannot be sent…, headers takes an object…, The header [<имя>] … куки или заголовки переданы не так — как у shop_page
ACCESS_DENIED… и The code of the debugger is read through engine_dev_config… debug без права «Получить конфигурацию»
Cannot connect to …, HttpSendRequest failed, code … сайт не отвечает этому компьютеру

Отказ самого модуля — например, Access denied у функции без права на модуль — приходит обычным ответом в тексте. Общие отказы — «Ответы и отказы».