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

Открывает страницу витрины этого магазина так, как её получает посетитель, и сохраняет HTML на этом компьютере. С полем post отправляет форму.

Право

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

Параметры

Параметр Тип Что это
[url] строка адрес страницы от корня сайта, со строкой запроса: /catalog/, /?mod=melbis_basket. По умолчанию /. Полный адрес принимается, только если это адрес этого магазина
[find] строка показать места страницы, где встречается этот текст, вместо её начала
[debug] да/нет добавить отчёт отладчика
[post] объект поля формы — вызов становится отправкой формы
[cookies] объект куки посетителя, имя → значение: те, что пришли в прошлом ответе, чтобы продолжить того же посетителя. Без них — новый посетитель
[headers] объект заголовки запроса, имя → значение: Sec-CH-UA-Mobile, Accept-Language, Referer и другие. User-Agent встаёт после метки MelbisShop-MCP и кода доступа, по которому запрос пропускает прокси

Значение поля post — строка, число или да/нет; список значений уходит как имя[]=… по одному на значение, пустой список не уходит вовсе. Что меняет отправка и как вести одного посетителя через несколько вызовов — «Витрина».

Ответ

{"url": "https://shop.example.com/", "debug": false, "post": null,
 "cookies": {"MELBIS_SHOP": "k3fq9…"}, "status": 200,
 "headers": {"Server": "nginx", "Content-Type": "text/html; charset=UTF-8",
             "Set-Cookie": "MELBIS_SHOP=k3fq9…; path=/; secure; HttpOnly; SameSite=Lax"},
 "bytes": 9742, "time": 63, "title": "Home page",
 "file": "D:\\Melbis\\shop.example.com\\mcp\\claude-code\\prices-sept\\pages\\index.html",
 "report": null, "found": null}

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

Поле Что это
url адрес страницы, без кода отладчика
debug запрошен ли отчёт
post тело формы в том виде, в каком оно ушло: func=Plus&id=12; null при чтении
cookies куки после запроса: переданные в вызове и записанные сайтом. Удалённых сайтом здесь нет
status код ответа HTTP. Страница ошибки — не отказ: она сохраняется и приходит так же
headers заголовки ответа сайта, имя → значение; повторяющиеся, обычно Set-Cookie, — через перевод строки. Переадресацию Windows проходит сам, поэтому это заголовки конечной страницы
bytes размер страницы
time сколько шёл запрос, мс
title текст <title>
file где сохранена страница
report отчёт отладчика; null без debug
found найденные места; null без find

Файл страницы. Имя берётся из адреса: буквы, цифры, - и _ остаются, остальное становится _. / сохраняется как index.html, /catalog/?page=2 — как catalog_page_2.html. Каждый вызов с тем же адресом файл перезаписывает.

Отчёт

"report": {"file": "D:\\Melbis\\shop.example.com\\mcp\\claude-code\\prices-sept\\pages\\index.report.json",
           "compile": 0.0099, "sql_count": 6, "sql_time": 0.0057, "cache": true,
           "template": "default", "lang": "ru",
           "units": {"columns": ["unit", "cache_on", "cache_allow", "queries", "query_time"],
                     "rows": [["melbis_base_page", false, false, 1, 0.0008],
                              ["melbis_base_head", false, false, null, null]]}}
Поле Что это
file весь отчёт — тот JSON, который панель отладчика скачивает кнопкой «Download Reports»
compile время генерации страницы, с
sql_count, sql_time число запросов страницы и их общее время, с
cache включено ли кеширование в магазине
template, lang группа шаблонов и язык страницы
units модули страницы: cache_on — у модуля включён кеш; cache_allow — кеш модуля работает: он включён и в магазине, и у модуля, и модуль отслеживает таблицы; queries и query_time — его запросы и их время, null у модуля без запросов

Что значат числа отчёта и как его разбирать — «Средства отладки». Если файл отчёта не удалось записать, report приходит null, а текст ответа начинается с The report could not be saved: и причины.

Найденное

"found": [{"at": 873, "text": "…/statics/bundle.melbis.css?25\">…"}]

До пяти мест. at — позиция совпадения в файле страницы в байтах, считая с 1; text — совпадение и по сотне байт до и после. Регистр не учитывается у латинских букв. Пустой список — текста на странице нет.

Отказы

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

Подписи на оригинальном языке могут отличаться.

Общие отказы — «Ответы и отказы».