AI‑агент не должен читать таблицу. Он должен вызвать инструмент, который возвращает таблицу, а затем выполнять арифметические операции над строками. При локальном запуске GroupDocs.Parser.Mcp в Docker клиент ИИ, такой как Claude Desktop или Cursor, может извлекать таблицы из PDF, Word и Excel‑файлов и получать их в виде JSON:

Извлечь позиции из invoice.pdf в формате JSON и подсчитать столбец суммы.

Пошаговая версия с настройками и устранением неполадок находится в документации: How to extract tables from documents into structured data.

Что происходит, когда модель читает таблицу сама?

Обычный рабочий процесс — вставить PDF в чат и попросить вывести таблицу. Модель видит «плоский» поток текста, пытается определить, где были столбцы, и выводит строки обратно. Каждая ячейка тогда становится предсказанием. Пропущенный столбец, объединённая строка или сдвинутый десятичный знак не вызывают ошибку; они дают уверенно отформатированную таблицу, которая слегка неверна. Для списка фруктов это не важно. Для сумм в счёте это имеет огромное значение.

Ошибка трудно обнаруживается, потому что вывод выглядит правильно. Ни в одном ответе чата нет указания, какие ячейки были прочитаны из файла, а какие восстановлены.

Какова альтернатива тому, чтобы модель угадывала?

Перенести чтение из модели. Инструмент extract_tables обнаруживает таблицы движком документа и возвращает их как данные:

  • По умолчанию в Markdown, как секции ### Table N (page N, R×C), которые отображаются напрямую в чате, VS Code и GitHub.
  • В JSON с параметром format: "json", как массив объектов { table, page, rows, columns, data }, где data — сетка строк.

Модель никогда не транскрибирует ячейку. Она получает data и работает с ними, поэтому её задача сводится к тому, что она делает надёжно: суммирование, сравнение, фильтрация и объяснение. Инструмент поддерживает PDF, DOCX, XLSX, PPTX и HTML, так что один и тот же запрос покрывает счёт‑фактуру поставщика, отчёт Word и электронную таблицу.

Как получить таблицу в виде JSON?

Укажите формат в запросе.

Извлечь позиции в формате JSON и подсчитать столбец суммы.

Example session (abridged)
You:    Extract the line items from invoice-014.pdf as JSON and total the amount column.
Agent:  [calls extract_tables with format "json"]
        {"table": 1, "page": 1, "rows": 4, "columns": 3,
         "data": [["Item", "Qty", "Amount"],
                  ["Paper A4", "10", "48.00"],
                  ["Toner", "2", "170.00"],
                  ["Delivery", "1", "22.00"]]}
        Total of the Amount column: 240.00 across 3 line items.

Поскольку агент хранит строки, дальнейшие шаги — обычные вопросы: какая строка самая большая, совпадает ли итог с цифрой, напечатанной в тексте, записать строки в CSV в папке вывода. Когда важна арифметика, попросите агента перечислить строки, которые он суммировал, чтобы вы могли их проверить.

Когда следует запрашивать Markdown вместо JSON?

Используйте Markdown, когда результат будет читать человек, а JSON — когда будет обрабатывать код. Markdown является значением по умолчанию и позволяет быстро взглянуть на таблицу и оценить, правильно ли она найдена. Переключайтесь на JSON для подсчётов, перекрёстных проверок и всего, что попадает в электронную таблицу или базу данных. Если знаете, где находится таблица, сузьте запрос:

Extract the table on page 4.

Параметр page ограничивает обнаружение одной страницей, что быстрее и, при лицензировании с учётом объёма, дешевле.

Какие случаи всё ещё требуют человеческого взгляда?

Честные ограничения важнее для таблиц, чем для простого текста.

  • Сканы не содержат таблиц. При отсутствии текстового слоя нет структуры таблицы, и извлечение возвращает пустой результат. В этом сервере нет OCR.
  • Сложные макеты различаются. Объединённые ячейки, вложенные таблицы и таблицы, продолжающиеся на нескольких страницах, не всегда сохраняются в виде чистой сетки. Проверьте один документ перед запуском на две сотни.
  • Режим оценки ограничен. Без лицензии извлечение ограничено; точные ограничения указаны на странице лицензирования библиотеки. Попросите агента вызвать get_license_status перед реальным запуском.

Установить одной командой

Сервер распространяется только как Docker‑образ, поэтому команды dnx нет. Зарегистрируйте его в Claude Code так, заменив путь на папку с вашими документами:

claude mcp add groupdocs-parser -- docker run --rm -i \
  -v /path/to/documents:/data ghcr.io/groupdocs-parser/parser-net-mcp:latest

Cursor, Claude Desktop, VS Code с GitHub Copilot, Windsurf, Cline и Codex используют тот же контейнер с клиент‑специфичным файлом конфигурации; каждый из них перечислен в Register in AI clients.

FAQ

Claude точно читает таблицы PDF?
Это зависит от файла и от того, как клиент «сплющивает» его, поэтому проверяйте, а не полагайтесь на предположения. С extract_tables строки берутся из обнаружения таблиц движком документа, возвращаются как сетка строк, и Claude работает с этими данными.

Как извлечь таблицу из PDF в Excel с помощью ИИ?
Запросите таблицу в формате JSON, затем попросите агента записать строки в CSV в папке вывода, который откроет Excel. Преобразование строк в CSV — шаг агента; значения ячеек поступают из инструмента.

Можно ли извлекать таблицы из Word и Excel файлов локально?
Да. extract_tables обрабатывает DOCX и XLSX так же, как PDF, а контейнер читает файлы из смонтированной папки.

Углубиться