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‑объект вашему клиенту.
Углубиться
- Документация, канонический how‑to: How to check a document’s pages before rendering them
- Центр документации: GroupDocs.Viewer MCP Server
- Начните здесь: Multimodal agents need pixels, not just text
- Связанное: Automate screenshot-grade page images for reports with MCP
- Связанное: When the answer is in the chart: AI agents reading diagrams and scans via MCP
- On‑premise и модель безопасности: 3 architectures for AI document processing, and the one that keeps files inside your network
- Вопросы: GroupDocs Viewer forum
- Исходный код: GroupDocs.Viewer.Mcp on GitHub