MCP.so
Sign In
Servers

Document Understanding MCP Server

@jaesharp

A document reading, search, and metadata server to provide access to PDFs (and, in the future, other formats) to LLMs via the Model Context Protocol (MCP)

Overview

What is Document Understanding MCP Server?

A Model Context Protocol (MCP) server that provides tools for extracting text, metadata, layout, tables, and images from PDF documents, with OCR fallback for scanned pages. It is currently in alpha stage and intended for local development and testing only.

How to use Document Understanding MCP Server?

Install Python 3.11+, uv, sync dependencies from pyproject.toml, and install Java (for table extraction) and Tesseract (for OCR). Set the required environment variable DOCUMENT_UNDERSTANDING_BASE_PATH to the directory the server may read PDFs from. The server offers tools that AI models can invoke via the MCP interface.

Key features of Document Understanding MCP Server

  • Extracts text content with automatic OCR fallback for scanned pages
  • Retrieves PDF metadata (author, title, dates)
  • Provides detailed layout info (text blocks, images, drawings with coordinates)
  • Extracts tables from PDF pages using tabula-py
  • Searches for exact text occurrences and returns bounding boxes
  • Detects languages of extracted text content

Use cases of Document Understanding MCP Server

  • Analyze scanned invoices or contracts for data extraction
  • Search for specific terms across large PDF documents
  • Understand page structure and spatial relationships in PDFs
  • Extract tables from financial reports or scientific papers

FAQ from Document Understanding MCP Server

Does the server require Java or Tesseract?

Yes, table extraction requires a Java Runtime Environment (JRE). The OCR fallback for scanned pages requires Tesseract OCR. The server will refuse to start if either is missing, unless you use --allow-no-java or --allow-no-tesseract flags.

What is the DOCUMENT_UNDERSTANDING_BASE_PATH environment variable?

It is the absolute path to the directory the server is allowed to read PDFs from. The server will not start without this variable, unless the --allow-any-path security risk flag is used.

Is this server ready for production use?

No. The README explicitly warns it is in alpha stage and should not be deployed in production or exposed to untrusted networks.

Can the server handle encrypted PDFs?

Yes, several tools accept an optional password argument to open encrypted PDFs.

How can I enable experimental tools?

Use the --enable-experimental command-line flag at startup to enable tools like find_nearby_content.

More from Other