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, а контейнер читает файлы из смонтированной папки.
Углубиться
- Документация, канонический гайд: How to extract tables from documents into structured data
- Центр документации: GroupDocs.Parser MCP Server
- Справочник по инструменту:
extract_tablestool reference - Начать здесь: 3 ways to extract document data with AI agents and MCP (text, tables, images)
- Связано: Enforce consistent data capture with automated extraction workflows using MCP
- Связано: Scan-to-record automation with AI agents
- On‑premise и модель безопасности: 3 architectures for AI document processing, and the one that keeps files inside your network
- Вопросы: GroupDocs Parser forum
- Исходный код: GroupDocs.Parser.Mcp on GitHub