MCP PDF Server
š MCP PDF Server
A PDF file reading server based on FastMCP.
Supports PDF text extraction, OCR recognition, and image extraction via the MCP protocol, with a built-in web debugger for easy testing.
š Features
read_pdf_text
Extracts normal text from a PDF (page by page).read_by_ocr
Uses OCR to recognize text from scanned or image-based PDFs.read_pdf_images
Extracts all images from a specified PDF page (Base64 encoded output).
š Project Structure
mcp-pdf-server/
āāā pdf_resources/ # Directory for uploaded and processed PDF files
āāā txt_server.py # Main server entry point
āāā README.md # Project documentationāļø Installation
Recommended Python version: 3.9+
pip install pymupdf mcpNote: To use OCR features, you may need a MuPDF build with OCR support or external OCR libraries.
š¦ Start the Server
Run the following command:
python txt_server.pyYou should see logs like:
Serving on http://127.0.0.1:6231š Web Debugging Interface
Open your browser and visit:
http://127.0.0.1:6231Select a tool from the left panel
Fill in parameters on the right panel
Click "Run" to test the tool
No coding required ā easily debug and test via the web UI.
š ļø API Tool List
Tool | Description | Input Parameters | Returns |
| Extracts normal text from PDF pages |
| List of page texts |
| Recognizes text via OCR |
| OCR extracted text |
| Extracts images from a PDF page |
| List of images (Base64 encoded) |
š Example Usage
Extract text from pages 1 to 5:
mcp run read_pdf_text --args '{"file_path": "pdf_resources/example.pdf", "start_page": 1, "end_page": 5}'Perform OCR recognition on page 1:
mcp run read_by_ocr --args '{"file_path": "pdf_resources/example.pdf", "start_page": 1, "end_page": 1, "language": "eng"}'Extract all images from page 3:
mcp run read_pdf_images --args '{"file_path": "pdf_resources/example.pdf", "page_number": 3}'š¢ Notes
Files must be placed inside the
pdf_resources/directory, or an absolute path must be provided.OCR functionality requires appropriate OCR support in the environment.
When processing large files, adjust memory and timeout settings as needed.
š License
This project is licensed under the MIT License.
For commercial use, please credit the original source.