Вы можете позволить ИИ‑агенту просматривать страницу документа вместо того, чтобы читать её текстовый дамп. Сервер GroupDocs.Viewer.Mcp рендерит любую страницу PDF, Word, Excel или PowerPoint файла в PNG и возвращает её агенту, делая это локально на вашем компьютере:
Сколько страниц в report.pdf? Затем покажи последнюю.
Пошаговая версия с конфигурацией и устранением неполадок находится в документации: Как позволить ИИ‑агенту видеть страницы документов.
Почему извлечение текста не работает с реальными документами?
Текстовый извлекатель возвращает символы в порядке чтения. Он не возвращает столбчатую диаграмму между двумя абзацами, штамп «APPROVED» в углу, колонковую разметку таблицы цен или страницу, которая является сканированным изображением и не содержит символов вовсе. Агент, работающий с таким выводом, уверенно отвечает о документе, который он увидел лишь наполовину, а недостающая половина обычно является той частью, о которой вы спрашивали.
Исправление — не лучший запрос. Это другой ввод: страница в виде изображения, передаваемая модели, принимающей изображение.
Неправильный подход: пропускать всё через извлечение текста
Обычный вариант — конвертировать документ в текст, вставить текст в окно контекста и задавать вопросы. Это работает для прозы. Он ломается четырьмя способами, которые вы можете проверить на любом своём документе:
- Разметка исчезает, поэтому вопрос «находится ли итог в правой колонке?» нельзя ответить.
- Графики внутри диаграмм исчезают, потому что они нарисованы, а не набраны.
- Печати, подписи и рукописный текст исчезают.
- Отсканированный 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 и других клиентах; страница хаба перечисляет точную конфигурацию для каждого. Клиент запускает сервер как дочерний процесс и общается с ним через стандартный ввод и вывод, поэтому нет входного порта и конечной точки для защиты.
Пример сеанса
Это иллюстрация, построенная на задокументированном поведении двух инструментов, а не захваченный скриншот.
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. Модели никогда не нужно угадывать разметку страницы, потому что она получает уже отрендеренную страницу.
Честные ограничения
- Evaluation mode. Без лицензии отрендеренные страницы содержат водяной знак оценки, а процесс сервера открывает не более 15 документов. Водяной знак может закрывать именно ту деталь, о которой вы спрашиваете. Спросите у агента «Лицензирован ли сервер Viewer?», чтобы он вызвал
get_license_statusперед тем, как вы будете полагаться на прочитанное. - PNG only. Вывод — изображение PNG; вариантов формата нет.
- No page-number check.
render_pageне отклоняет номер страницы, превышающий последнюю. Сначала проверьте количество с помощьюget_view_info. - The model must accept images. При модели, принимающей только текст, агент всё равно получает путь к сохранённому файлу, но не может сказать, что находится на странице.
- Images are large. Каждая страница — встроенный PNG, часто несколько сотен килобайт. Рендерьте только те страницы, которые нужны задаче, а не весь файл.
- One thing leaves the machine. Отрендеренное изображение отправляется агенту и оттуда к используемой модели. При локально размещённой модели всё остаётся на машине.
Часто задаваемые вопросы
Может ли Claude увидеть мою страницу PDF и её разметку? Да, если страница PDF отрендерена в изображение и используемая модель Claude принимает ввод изображений. render_page создаёт это изображение локально и возвращает его клиенту.
Нужно ли где‑то загружать документ для рендеринга? Сервер читает файл из папки, которую вы монтируете, и записывает изображение рядом с ним; документ сервером не загружается. Изображение страницы всё же отправляется модели вашего агента.
Работает ли это с Excel и PowerPoint, а не только с PDF? Да. PowerPoint рендерит одно изображение на каждый слайд, а листы Excel разбиваются на страницы, количество которых видно через get_view_info.
Подробнее
- Documentation, canonical how-to: Как позволить ИИ‑агенту видеть страницы документов
- Documentation hub: GroupDocs.Viewer MCP Server
- Next: 3 вопроса, которые ИИ‑агент должен задать документу перед рендерингом
- Next: Автоматизировать создание скриншотов страниц для отчетов с помощью MCP
- Next: Когда ответ находится в диаграмме: ИИ‑агенты читают схемы и сканы через MCP
- On-premise and security model: 3 архитектуры обработки документов ИИ, и та, которая хранит файлы внутри вашей сети
- Questions: Форум GroupDocs Viewer
- Source: Исходный код GroupDocs.Viewer.Mcp на GitHub