A Model Context Protocol (MCP) server for processing PDF documents with advanced features including LaTeX equation extraction. This server enables Claude to fetch, process, and extract information from PDF documents, including LaTeX mathematical equations.
- PDF fetching from URLs
- Text extraction from PDFs
- LaTeX equation recognition and extraction
- Integration with Claude via MCP
pip install -e .To use this MCP server with Claude Desktop or Claude Code:
-
Install the MCP CLI tools if not already installed:
pip install "mcp[cli]" -
Install the server using the MCP CLI tool:
mcp install /path/to/pdf_tool_server.py --with-editable /path/to/mcp_pdf_processor
For example, if you've cloned this repository to
~/mcp_pdf_processor:mcp install ~/mcp_pdf_processor/pdf_tool_server.py --with-editable ~/mcp_pdf_processor
-
For development with the MCP Inspector:
mcp dev /path/to/pdf_tool_server.py --with-editable /path/to/mcp_pdf_processor
-
In Claude Desktop, you can now use the PDF_TOOLS server in your conversations with these commands:
/mcp PDF_TOOLS fetch_pdf url=https://example.com/document.pdf /mcp PDF_TOOLS process_pdf hash_id=<HASH_ID> extract_latex=true /mcp PDF_TOOLS read_processed_pdf filename=<FILENAME>
python pdf_tool_server.pyOUTPUT_DIR: Directory to store processed PDFs (default:llm_output)PYTHONPATH: Set to the directory containing the mcp_pdf_processor package
When the server is registered, you can ask Claude to:
- "Fetch and analyze the PDF at [URL]"
- "Extract LaTeX equations from the PDF at [URL]"
- "Summarize the content of the PDF at [URL]"
The server requires the following main dependencies:
- Python 3.9 or higher
pymupdf: PDF processing and text extractionmcp: Model Context Protocol supportpydantic: Data validation and serializationaiohttp: Asynchronous HTTP client/servertorch: For LaTeX equation extraction (optional)pix2tex: For LaTeX equation recognition (optional)
See pyproject.toml for the complete list of dependencies and version requirements.
Here's a complete example workflow for using the PDF processor with Claude Desktop:
# 1. Fetch a PDF without reading it
/mcp PDF_TOOLS fetch_pdf url=https://arxiv.org/pdf/2505.05522
# This returns a hash_id, which you'll use in the next step
# 2. Process the PDF with LaTeX extraction
/mcp PDF_TOOLS process_pdf hash_id=<HASH_ID> extract_latex=true
# This returns a filename for the processed output
# 3. Read the processed content
/mcp PDF_TOOLS read_processed_pdf filename=<FILENAME>
# Now Claude can analyze the PDF content, including any LaTeX equations
MIT