MCP server for extracting text, images, tables, links, annotations, and metadata from PDF files.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
一个用于读取和分析 PDF 文件的 MCP 服务器。它可以为支持 MCP(Model Context Protocol)的客户端提供 PDF 文本、页面图片、表格、链接、批注、目录、元数据和基础文本统计。
A PDF-focused MCP server for extracting text, rendered pages, tables, links, annotations, outlines, metadata, and text statistics from PDF files.
pdf-reader-mcpio.github.Xvvln/pdf-reader-mcppdf-insight-mcppdf-reader-mcp and pdf-insight-mcppdf-reader-mcp is the project name. The PyPI package is published as pdf-insight-mcp because the pdf-reader-mcp package name is not available on PyPI.
| Tool | What it does |
|---|---|
get_pdf_info | Read document metadata, page count, file size, and encryption status. |
read_pdf_as_text | Extract text from selected pages with page and character limits. |
read_pdf_as_images | Render selected pages as base64-encoded images. |
get_pdf_outline | Read bookmarks and outline entries. |
search_pdf_text | Search text and return per-match page context. |
extract_pdf_tables | Extract structured tables when PyMuPDF can detect them. |
extract_pdf_images | Extract embedded PDF images. |
get_pdf_page_info | Inspect one page's size, text, images, links, and rotation. |
extract_pdf_links | Extract external URLs and internal page jumps. |
get_pdf_annotations | Read comments, highlights, and annotation metadata. |
get_pdf_text_stats | Compute text, line, paragraph, and scan-likelihood stats. |
compare_pdf_pages | Compare text similarity between two pages. |
Install uv if you do not already have it:
Run the server directly from PyPI:
Or install it first:
Use the published PyPI package:
Use a local checkout for development:
Replace /absolute/path/to/pdf-reader-mcp with the absolute path to this repository on your machine.
Ask your MCP client to call tools with an absolute PDF path. Example requests:
For large PDFs, prefer small page ranges first. For scanned or layout-sensitive PDFs, use read_pdf_as_images with a small pages range and moderate dpi.
read_pdf_as_text defaults to at most 50 pages and 200000 returned characters.read_pdf_as_images rejects requests above 20 pages.read_pdf_as_images defaults to an overall image payload cap of about 20 MB.extract_pdf_images returns at most 20 embedded images but reports the actual detected total.Install dependencies:
Run tests:
Build the package:
Run the local server:
Releases are published through GitHub Actions.
Before the first release, configure PyPI Trusted Publishing with:
Then release by bumping versions in pyproject.toml and server.json, committing the change, and pushing a version tag:
The Publish workflow runs tests, builds the Python package, publishes to PyPI, authenticates to the MCP Registry with GitHub OIDC, and publishes server.json.
MIT
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/pdf-reader)<a href="https://allmcps.com/mcp/pdf-reader"><img src="https://allmcps.com/api/badge/pdf-reader?style=directory" alt="PDF Reader on AllMCPs" /></a>