Вы можете попросить LLM или AI‑агента извлечь данные из документов, и ответ будет получен от движка документов, а не от чтения модели вставленного файла. При локальном запуске сервера GroupDocs.Parser.Mcp в Docker‑контейнере один запрос возвращает текст, таблицу, встроенные изображения или значение штрих‑кода:

Что говорит invoice.pdf и что находится в его таблице?

Пошаговая версия с настройкой и устранением неполадок находится в документации: Как извлечь данные из документов с помощью AI‑агентов, используя MCP.

Зачем AI‑агенту вообще нужен инструмент извлечения?

Чат‑модель знает только то, что помещено в её окно контекста. Вставьте PDF в чат, и модель работает с тем текстом, который клиент смог из него «сплющить», поэтому столбцы схлопываются, сканы оказываются пустыми, и никто не может сказать, что из этого произошло. Сервер извлечения переносит этот шаг из модели: агент вызывает инструмент, движок документов читает файл внутри контейнера, и агент получает результат. Затем модель делает то, что у неё получается лучше всего — рассуждает над полученными значениями.

GroupDocs.Parser.Mcp предоставляет семь инструментов клиентам, совместимым с MCP, таким как Claude Desktop, Claude Code, Cursor, VS Code с GitHub Copilot и Windsurf. Пять извлекают данные (extract_text, extract_tables, extract_images, extract_barcodes, extract_metadata), один проверяет (get_document_info) и один сообщает о лицензировании (get_license_status).

Способ 1: Запросить значение и позволить агенту выбрать инструмент

Сформулируйте запрос как вопрос о документе. Агент сопоставит вопрос с инструментом.

Вы спрашиваете Инструмент, вызываемый агентом
“Что в нём сказано?” extract_text
“Что находится в таблице?” extract_tables
“Кто её написал и когда?” extract_metadata
“Сохранить изображения.” extract_images
“Что кодирует штрих‑код?” extract_barcodes

extract_text поддерживает PDF, DOCX, XLSX, PPTX, TXT, HTML, CSV, EML, MSG, RTF, ODT, EPUB и более 50 дополнительных форматов, поэтому один и тот же запрос работает и для письма, и для таблицы. Очень большие выводы обрезаются маркером, поэтому для длинного отчёта запрашивайте постранично:

Извлеките текст этого 40‑страничного отчёта постранично и суммируйте каждый раздел.

Пример сеанса (сокращённый):

You:    What does invoice.pdf say, and what is in its table?
Agent:  [calls extract_text, extract_tables]
        Invoice 2026-0412 from Northwind Supplies, dated 3 October.
        The table has 3 rows (item, quantity, amount); the amounts add up to 1,240.00.

Способ 2: Проверить текстовый слой перед тем как доверять пустому результату

PDF, созданный в цифровом виде, содержит текстовый слой; скан‑PDF — нет. На отсканированной странице extract_text возвращает мало или ничего, что является корректным описанием файла. Заставьте агента проверить это перед извлечением:

Сколько страниц у этого документа и содержит ли он извлекаемый текст?

get_document_info возвращает имя файла, тип, количество страниц и размер без каких‑либо изменений, а одностраничный вызов extract_text показывает, существует ли текст. Два дешевых вызова отделяют «этот файл пуст» от «этот файл — изображение». В этом сервере нет шага OCR, поэтому напечатанные слова в скане остаются пикселями. Штрих‑коды — исключение, о них расскажет Способ 3.

Способ 3: Вытащить то, чего не может достичь текстовое извлечение

Таблицы, изображения и штрих‑коды имеют отдельные инструменты, потому что преобразование их в текст теряет их полезность.

  • extract_tables возвращает таблицы в формате Markdown, которые отображаются в чате, или строки JSON, если передать format: "json".
  • extract_images сохраняет каждое встроенное изображение в папку вывода как <basename>_image<N>.<ext>.
  • extract_barcodes декодирует Code128, QR Code, PDF417, DataMatrix, EAN-13, EAN-8, UPC, Aztec и другие, включая отсканированные страницы, поскольку модели движка обнаруживают коды в растровом изображении.

Извлеките позиции строк из invoice.pdf в формате JSON, затем сохраните изображения со страницы 1.

Нужен ли агенту извлечение или конвертация?

Это разные задачи, и выбор неправильного сервера приводит к путанице.

Вы хотите Сервер
Значения из документа: текст, таблица, штрих‑код, свойства GroupDocs.Parser.Mcp
Документ в другом формате, сохранив макет GroupDocs.Conversion.Mcp
Чистый Markdown всего документа для RAG GroupDocs.Markdown.Mcp
Метаданные, отредактированные или удалённые, а не только прочитанные GroupDocs.Metadata.Mcp

Во многих конвейерах используют два сервера: конвертируют для загрузки, парсят для извлечения.

Запустите локально с Docker

Этот сервер распространяется только как Docker‑образ. Движок включает около 234 МБ моделей ONNX, что делает NuGet‑пакет больше 250 МБ, поэтому команды dnx нет. Смонтируйте папку с документами как /data:

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

Ваш AI‑клиент запускает контейнер как дочерний процесс через stdio. Входящих портов нет, и документы остаются на машине. Конфигурация для каждого клиента (Claude Desktop, Claude Code, VS Code, Cursor, Windsurf, Cline и Codex) находится в Регистрация в AI‑клиентах.

Каковы ограничения?

  • Evaluation mode. Без лицензии извлечение ограничено; точные ограничения указаны на странице лицензирования. Сначала попросите агента выполнить get_license_status и рассматривайте вывод без лицензии как пробный тест, а не полное чтение.
  • No OCR. Текст в скане нельзя извлечь.
  • Docker only. Требуется установленный Docker; образ большой, поэтому загрузите его один раз.

Часто задаваемые вопросы

Можно ли извлечь текст из PDF с помощью Claude локально, без загрузки файла?
Да. Сервер работает в контейнере на вашем компьютере, а Claude Desktop общается с ним через stdio, поэтому файл читается из смонтированной папки и не отправляется в сервис извлечения.

Почему агент ничего не возвращает для некоторых PDF?
Файл, вероятно, является сканом без текстового слоя. Попросите агента выполнить get_document_info и одностраничный вызов extract_text для подтверждения, затем используйте extract_barcodes для кодов или OCR‑инструмент для слов.

Есть ли команда dnx для GroupDocs.Parser.Mcp?
Нет. Этот продукт доступен только через Docker, поэтому каждый запуск использует docker run или запись клиента MCP, которая запускает Docker.

Углубиться