You can ask an LLM or AI agent to extract data from documents and have the answer come from a document engine, not from the model’s reading of a pasted file. With the GroupDocs.Parser.Mcp server running locally in a Docker container, one prompt returns the text, a table, the embedded images or a barcode value:
What does invoice.pdf say, and what is in its table?
The step-by-step version with config and troubleshooting is in the documentation: How to extract document data with AI agents using MCP.
Why does an AI agent need an extraction tool at all?
A chat model only knows what is placed in its context window. Paste a PDF into a chat and the model works from whatever text the client managed to flatten out of it, so columns collapse, scans arrive empty and nobody can tell which of the two happened. An extraction server moves that step out of the model: the agent calls a tool, a document engine reads the file inside the container, and the agent receives the result. The model then does what it is good at, which is reasoning over values it was handed.
GroupDocs.Parser.Mcp exposes seven tools to MCP-compatible clients such as Claude Desktop, Claude Code, Cursor, VS Code with GitHub Copilot and Windsurf. Five extract data (extract_text, extract_tables, extract_images, extract_barcodes, extract_metadata), one inspects (get_document_info) and one reports licensing (get_license_status).
Way 1: Ask for the value, and let the agent pick the tool
Phrase the request as a question about the document. The agent maps the question to a tool.
| You ask | Tool the agent calls |
|---|---|
| “What does it say?” | extract_text |
| “What is in the table?” | extract_tables |
| “Who wrote it, and when?” | extract_metadata |
| “Save the figures.” | extract_images |
| “What does the barcode encode?” | extract_barcodes |
extract_text supports PDF, DOCX, XLSX, PPTX, TXT, HTML, CSV, EML, MSG, RTF, ODT, EPUB and more than 50 further formats, so the same prompt works on an email and on a spreadsheet. Very large outputs are truncated with a marker, so for a long report ask page by page:
Extract the text of this 40-page report page by page and summarize each section.
Example session (abridged):
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.
Way 2: Check the text layer before you trust an empty result
A born-digital PDF carries a text layer; a scan does not. On a scanned page extract_text returns little or nothing, which is a correct statement about the file. Make the agent test this before it extracts:
How many pages is this, and does it have extractable text?
get_document_info returns the file name, type, page count and size without modifying anything, and a one-page extract_text call shows whether text exists. Two cheap calls separate “this file is empty” from “this file is an image”. There is no OCR step in this server, so printed words in a scan stay pixels. Codes are the exception, and Way 3 covers them.
Way 3: Pull out what text extraction cannot reach
Tables, images and barcodes each have a dedicated tool, because flattening them into text loses what makes them useful.
extract_tablesreturns Markdown tables that render in chat, or JSON rows when you passformat: "json".extract_imagessaves every embedded image to the output folder as<basename>_image<N>.<ext>.extract_barcodesdecodes Code128, QR Code, PDF417, DataMatrix, EAN-13, EAN-8, UPC, Aztec and more, including on scanned pages, because the engine’s models detect codes in the rasterized image.
Extract the line items from invoice.pdf as JSON, then save the images from page 1.
Does the agent need extraction or conversion?
These are different jobs, and picking the wrong server costs a round of confusion.
| You want | Server |
|---|---|
| Values out of a document: text, a table, a barcode, properties | GroupDocs.Parser.Mcp |
| The document as another format, layout preserved | GroupDocs.Conversion.Mcp |
| Clean Markdown of the whole document for RAG | GroupDocs.Markdown.Mcp |
| Metadata edited or removed, not only read | GroupDocs.Metadata.Mcp |
Many pipelines use two servers: convert for ingestion, parse for extraction.
Run it locally with Docker
This server ships as a Docker image only. The engine embeds about 234 MB of ONNX models, which puts a NuGet package over the 250 MB limit, so there is no dnx command. Mount a folder of documents as /data:
docker run --rm -i -v $(pwd)/documents:/data \
ghcr.io/groupdocs-parser/parser-net-mcp:latest
Your AI client starts the container as a child process over stdio. There are no inbound ports, and the documents stay on the machine. Per-client config for Claude Desktop, Claude Code, VS Code, Cursor, Windsurf, Cline and Codex is in Register in AI clients.
What are the limits?
- Evaluation mode. Without a license, extraction is limited; the exact limits are on the library’s licensing page. Ask the agent to run
get_license_statusfirst, and treat unlicensed output as a smoke test, not a complete read. - No OCR. Text in a scan cannot be extracted.
- Docker only. You need Docker installed; the image is large, so pull it once.
FAQ
Can I extract text from a PDF with Claude locally, without uploading it? Yes. The server runs in a container on your machine and Claude Desktop talks to it over stdio, so the file is read from the mounted folder and not sent to an extraction service.
Why does the agent return nothing for some PDFs?
The file is probably a scan with no text layer. Ask the agent to run get_document_info and a one-page extract_text call to confirm, then use extract_barcodes for codes or an OCR tool for words.
Is there a dnx command for GroupDocs.Parser.Mcp?
No. This product is Docker-only, so every install uses docker run or an MCP client entry that launches Docker.
Go deeper
- Documentation, canonical how-to: How to extract document data with AI agents using MCP
- Documentation hub: GroupDocs.Parser MCP Server
- Next: Tables out of PDFs, into JSON, without an LLM guessing the cells
- Next: Enforce consistent data capture with automated extraction workflows using MCP
- Next: Scan-to-record automation with AI agents
- On-premise and security model: 3 architectures for AI document processing, and the one that keeps files inside your network
- Questions: GroupDocs Parser forum
- Source: GroupDocs.Parser.Mcp on GitHub