
PDF Reader
io.github.XvvlnPublished by GitHub account Xvvlnv0.2.1Updated Oct 24, 2026
MCP server for extracting text, images, tables, links, annotations, and metadata from PDF files.
Overview
Local MCP server that lets an assistant read PDF files: text, rendered pages, tables, images, links, annotations, outlines and metadata.
- What you can do
- Read document metadata, page count, size, encryption status and per-page details
- Extract text from page ranges, search text with page context, and compute text statistics
- Render pages as base64 images and pull out embedded images
- Extract tables, external links and internal page jumps
- Read bookmarks, outlines, comments and highlights, and compare text similarity between two pages
- When to use it
- Useful when you want an assistant to answer questions about local PDF reports, papers or contracts, search inside them, or pull out tables, links and annotations without uploading the file to a service.
- Requirements
- Runs as a local process on the user's machine (desktop only). Needs Python 3.10+ and the PyPI package pdf-insight-mcp, typically launched with uvx or pip install. Tools take an absolute path to a PDF file. No accounts, API keys or environment variables are declared.
Installation
In SourceWeft
- Open PDF Reader in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
pdf-reader-mcp
一个用于读取和分析 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.
Package name
- GitHub repository:
pdf-reader-mcp - MCP Registry name:
io.github.Xvvln/pdf-reader-mcp - PyPI package:
pdf-insight-mcp - CLI commands:
pdf-reader-mcpandpdf-insight-mcp
pdf-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.
Features
Quick start
Install uv if you do not already have it:
Run the server directly from PyPI:
Or install it first:
MCP client configuration
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.
Common usage
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.
Limits and behavior
read_pdf_as_textdefaults to at most 50 pages and 200000 returned characters.read_pdf_as_imagesrejects requests above 20 pages.read_pdf_as_imagesdefaults to an overall image payload cap of about 20 MB.extract_pdf_imagesreturns at most 20 embedded images but reports the actual detected total.- Encrypted PDFs are rejected unless they are already accessible without a password.
- Scanned PDFs may have little or no extractable text. Use image rendering or OCR outside this server when needed.
Development
Install dependencies:
Run tests:
Build the package:
Run the local server:
Release
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.
Tech stack
- Python 3.10+
- MCP Python SDK
- PyMuPDF
- uv
- pytest
License
MIT
Source: README.md at commit 88d4232
Tools
0Version history
1- v0.2.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts