AI‑агент повинен запитати у документа три речі перед тим, як він відобразить одну сторінку: скільки сторінок у нього, який розмір кожної сторінки і чи потрібен пароль. Сервер GroupDocs.Viewer.Mcp відповідає на перші два за допомогою одного дешевого виклику (get_view_info), який виконується локально на вашій машині, а питання про пароль вирішується у підказці. Потім агент відображає лише потрібні сторінки:
Що це за contract.docx — скільки сторінок і який розмір сторінки?
Покрокова версія з налаштуванням та усуненням проблем знаходиться в документації: Як перевірити сторінки документа перед їх відображенням.
Чому спочатку перевіряти?
Кожна сторінка, яку створює інструмент 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‑об’єкт вашому клієнту.
Поглибити
- Документація, канонічний посібник: Як перевірити сторінки документа перед їх відображенням
- Центр документації: 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