AI‑агент должен задать документу три вопроса перед тем, как отрисовать хотя бы одну страницу: сколько у него страниц, какого размера каждая страница и нужен ли пароль. Сервер GroupDocs.Viewer.Mcp отвечает на первые два вопроса одним дешёвым вызовом (get_view_info), который выполняется локально на вашем компьютере, а вопрос о пароле решается в подсказке. Затем агент отрисовывает только те страницы, которые действительно нужны:

Что это за contract.docx — сколько страниц и какого размера страницы?

Пошаговая версия с настройкой и устранением неполадок находится в документации: How to check a document’s pages before rendering them.

Почему сначала нужно проверять?

Каждая страница, которую генерирует инструмент render_page, возвращается агенту в виде встроенного PNG‑файла, часто несколько сотен килобайт. Агент, который отрисовывает 60‑страничный файл, чтобы найти одну таблицу, тратит ресурсы на 59 лишних изображений — и в времени, и в окне контекста. Инструмент проверки get_view_info ничего не отрисовывает. Он возвращает небольшой JSON‑объект, поэтому решение о том, что отрисовывать, принимается на основе фактов, а не догадок.

Эту схему можно использовать в любом клиенте: Claude Desktop, Claude Code, Cursor, VS Code с GitHub Copilot или Windsurf. Это привычка, которую вы включаете в подсказку, а не функция, которую нужно настраивать.

Вопрос 1: Сколько страниц?

get_view_info возвращает pageCount. Это единственная защита от известного острого края: render_page не проверяет номер страницы относительно документа. Если запросить страницу 40 в 12‑страничном файле, вы всё равно получите изображение <name>_page40.png страницы, которой нет.

Подсказка, включающая эту защиту:

Сколько страниц в отчёте? Затем покажи мне последнюю.

Для электронных таблиц количество страниц имеет ещё большее значение. Движок разбивает лист на страницы, и их число может быть значительно больше, чем выглядит лист. Зная это заранее, агент не будет отрисовывать их все.

Вопрос 2: Какого размера каждая страница?

Какого размера страницы в этом PDF — Letter или A4?

Ответ содержит number, width и height для каждой страницы в пунктах. 612 × 792 — US Letter; около 595 × 842 — A4. Документ с одной альбомной страницей среди портретных покажет её в списке размеров, и именно эта страница часто содержит таблицу или чертёж, о котором спрашивают.

Два дополнительных поля, name и visible, заполняются, если формат их поддерживает (например, имена листов и скрытые слайды или листы). В остальных случаях они имеют значения null и true.

Вопрос 3: Требуется ли файлу пароль?

У get_view_info нет поля защиты, поэтому тип файла и количество страниц не подсказывают, нужен ли пароль. Файл, защищённый паролем, требует его при каждом вызове любого инструмента. Укажите пароль сразу в подсказке:

Пароль для contract.pdf находится в моём сообщении. Проверьте, сколько страниц в нём, затем покажите страницу 2.

Без пароля вызов завершится ошибкой, и агент может попросить его у вас, вместо того чтобы гадать. Если вызов не удался, get_view_info возвращает текст, начинающийся с View-info lookup failed for, за которым следуют тип исключения и сообщение, так что агент может понять причину и запросить пароль или правильное имя файла.

Переиспользуемая подсказка «проверить‑затем‑отрисовать»

Прежде чем отрисовывать что‑либо из файла, указанного ниже, проверьте его тип, количество страниц и размеры страниц. Сообщите, что вы нашли, а затем отрисуйте только те страницы, которые нужны для ответа на мой вопрос. Файл: contract.docx. Вопрос: где находится пункт о расторжении договора?

Агент вызывает get_view_info, сообщает тип файла и количество страниц, выбирает нужные страницы и вызывает render_page для каждой из них. Инструмент get_license_status — третий инструмент на сервере; используйте его, когда нужно узнать, будет ли отрисованная страница помечена водяным знаком.

Пример сеанса

Иллюстрация, основанная на документированной форме ответа, а не на реальном скриншоте.

You:   Inspect report.pdf before rendering anything.

Agent: [calls get_view_info on report.pdf]
       report.pdf: Portable Document Format File (.pdf), 2 pages.
       Page 1: 612 x 792 points (US Letter). Page 2: 612 x 792 points.
       Which page would you like me to render?

Что решает агент, а что делает движок?

Шаг Агент Движок
Выбор файла Берёт имя файла из вашей подсказки Находит его в папке хранилища, выводит список доступных файлов, если имя не совпадает
Проверка Определяет, какие вопросы важны Возвращает тип файла, количество страниц и размеры страниц
Выбор страниц Привязывает ваш вопрос к номерам страниц —
Отрисовка Вызывает render_page для каждой выбранной страницы Генерирует PNG

Честные ограничения

  • Режим оценки. Отрисованные страницы снабжены водяным знаком оценки, а процесс сервера открывает не более 15 документов. Спросите «Лицензирован ли сервер Viewer?», чтобы агент вызвал get_license_status перед тем, как вы будете полагаться на вывод.
  • Количество страниц не выбирает страницы за вас. get_view_info сообщает, какие страницы существуют, но не указывает, где находится ответ. Для этого отрисуйте страницу содержания или несколько кандидатов.
  • Только PNG. У render_page нет опции выбора формата.

FAQ

Как AI‑агент может получить количество страниц PDF? Если сервер Viewer подключён, Claude может вызвать get_view_info и прочитать pageCount, не отрисовывая ничего. Ответ берётся из документа, а не из догадки.

Может ли инструмент MCP с информацией о документе подсказать агенту, какие страницы отрисовывать? Да. Сначала дайте ему количество страниц и их размеры, затем укажите, что вы ищете. Он отрисует только те страницы, которые отвечают на вопрос.

Загружает ли проверка документа куда‑либо файл? Нет. Сервер читает файл из указанной вами папки и возвращает небольшой JSON‑объект вашему клиенту.

Углубиться