Ви можете дозволити AI‑агенту переглянути сторінку документа замість того, щоб читати її текстовий дамп. Сервер GroupDocs.Viewer.Mcp рендерить будь‑яку сторінку PDF, Word, Excel або PowerPoint файлу у PNG і повертає її агенту, причому робить це локально на вашому комп’ютері:

Скільки сторінок у report.pdf? Потім покажи мені останню.

Крок‑за‑кроком версія з конфігурацією та усуненням проблем знаходиться в документації: Як дозволити AI‑агенту переглядати сторінки документів.

Чому вилучення тексту не працює на реальних документах?

Текстовий екстрактор повертає символи у порядку читання. Він не повертає стовпчикову діаграму між двома абзацами, штамп «APPROVED» у куті, колонкову розкладку таблиці цін або сторінку, яка є сканованою і не містить жодних символів. AI‑агент, що працює з цим виводом, впевнено відповідає щодо документа, який він бачив лише наполовину, а відсутня половина зазвичай є тією частиною, про яку ви запитували.

Вирішенням не є кращий підказка. Це інший вхід: сторінка у вигляді зображення, передана моделі, яка приймає зображення.

Неправильний підхід: пропускати все через текстовий екстрактор

Звичний за замовчуванням підхід — конвертувати документ у текст, вставляти текст у вікно контексту та ставити питання. Це працює для прозових текстів. Він ламається у чотирьох випадках, які ви можете перевірити на будь‑якому вашому документі:

  • Розмітка зникає, тому питання «чи сума знаходиться у правій колонці?» не може бути відповідано.
  • Фігури всередині діаграм та схем зникають, оскільки вони намальовані, а не надруковані.
  • Штампи, підписи та рукописний текст зникають.
  • Сканований PDF не містить тексту.

Модель не може відновити інформацію, яка була втрачена до того, як вона побачила документ.

Правильний підхід: рендерити сторінку PDF у зображення для LLM

render_page рендерить одну сторінку у PNG, повертає зображення інлайн агенту та зберігає копію у вашій вихідній папці як <name>_page<N>.png. Сервер підтримує понад 170 форматів, включаючи PDF, DOCX, XLSX, PPTX, ODT, RTF, HTML, EML та MSG. Модель, що підтримує зображення, тоді бачить сторінку так, як би ви її бачили.

Агент не повинен вгадувати номери сторінок, тому він поєднує render_page з get_view_info, який повертає тип файлу, кількість сторінок та розмір кожної сторінки без рендерингу. Третій інструмент, get_license_status, повідомляє про активний режим ліцензування.

Як запустити сервер для Claude, Cursor або Copilot?

Docker‑образ є самодостатнім:

docker run --rm -i -v $(pwd)/documents:/data \
  ghcr.io/groupdocs-viewer/viewer-net-mcp:latest

Після встановлення .NET 10 SDK, dnx GroupDocs.Viewer.Mcp --yes запускає той самий сервер без Docker. Зареєструйте його у Claude Desktop, Claude Code, Cursor, VS Code з GitHub Copilot, Windsurf та інших клієнтів; сторінка hub містить точну конфігурацію для кожного. Клієнт запускає сервер як дочірній процес і спілкується з ним через стандартний ввід‑вивід, тому немає вхідного порту і кінцевої точки, яку треба захищати.

Приклад сеансу

Це ілюстрація, створена на основі задокументованої поведінки двох інструментів, а не захоплений скріншот.

You:   How many pages does report.pdf have? Then show me the last one.

Agent: [calls get_view_info on report.pdf]
       report.pdf is a PDF with 2 pages, both 612 x 792 points (US Letter).
       [calls render_page with page = 2]
       Page 2 of 'report.pdf' Saved to: <output folder>/report_page2.png
       Here is what page 2 shows: ...

Зображення відображається інлайн у клієнтах, які його підтримують. Текстова відповідь — це опис агента того, що він бачить на сторінці.

Що вирішує агент, а що робить движок?

Агент вирішує, яка сторінка відповідає на питання, і що запитати модель щодо неї. Движок виконує ту частину, яка має бути точною: відкриває файл, розбиває його на сторінки так, як це робить документ, і створює PNG. Моделі ніколи не доводиться вгадувати розмітку сторінки, оскільки вона отримує вже відрендерену сторінку.

Чесні обмеження

  • Режим оцінки. Без ліцензії відрендерені сторінки містять водяний знак оцінки, а процес сервера відкриває не більше 15 документів. Водяний знак може закривати саме ту деталь, про яку ви запитуєте. Запитайте у агента «Чи ліцензовано сервер переглядача?», щоб він викликав get_license_status перед тим, як ви покладетеся на його дані.
  • Тільки PNG. Вихід — це PNG‑зображення; варіант формату відсутній.
  • Перевірка номера сторінки відсутня. render_page не відхиляє номер сторінки, що перевищує останню. Спочатку перевірте кількість за допомогою get_view_info.
  • Модель повинна приймати зображення. Якщо модель працює лише з текстом, агент все одно отримує шлях до збереженого файлу, але не може сказати, що знаходиться на сторінці.
  • Зображення великі. Кожна сторінка — це інлайн PNG, часто кілька сотень кілобайт. Рендерьте лише ті сторінки, які потрібні для завдання, а не весь файл.
  • Один елемент залишає машину. Відрендерене зображення надходить агенту, а звідти — до будь‑якої моделі, яку він використовує. Локально розгорнута модель тримає все на машині.

FAQ

Чи може Claude бачити мою PDF‑сторінку та її розмітку? Так, якщо PDF‑сторінка рендериться у зображення, а модель Claude, яку ви використовуєте, приймає вхідні зображення. render_page створює це зображення локально і повертає його клієнту.

Чи потрібно завантажувати документ кудись для його рендерингу? Сервер читає файл з папки, яку ви підключаєте, і записує зображення поруч; документ не завантажується сервером. Однак зображення сторінки надходить до моделі вашого агента.

Чи працює це для Excel та PowerPoint, а не лише для PDF? Так. PowerPoint рендерить одне зображення на кожен слайд, а листи Excel розбиваються на сторінки, кількість яких можна побачити за допомогою get_view_info.

Поглибити