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.

VerifiedSTDIODesktop onlyFiles & StorageData & Analytics

Overview

AI-generated 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.
Before you install
The assistant can read any PDF path you give it, so point it only at files you are willing to expose in the conversation. Encrypted PDFs are rejected unless already accessible without a password, and scanned PDFs may yield little text. Large page ranges and image rendering are capped, so results can be partial.

Installation

In SourceWeft

  1. Open PDF Reader in the dashboard and add it to a workspace.
  2. 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-mcp and pdf-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

ToolWhat it does
get_pdf_infoRead document metadata, page count, file size, and encryption status.
read_pdf_as_textExtract text from selected pages with page and character limits.
read_pdf_as_imagesRender selected pages as base64-encoded images.
get_pdf_outlineRead bookmarks and outline entries.
search_pdf_textSearch text and return per-match page context.
extract_pdf_tablesExtract structured tables when PyMuPDF can detect them.
extract_pdf_imagesExtract embedded PDF images.
get_pdf_page_infoInspect one page's size, text, images, links, and rotation.
extract_pdf_linksExtract external URLs and internal page jumps.
get_pdf_annotationsRead comments, highlights, and annotation metadata.
get_pdf_text_statsCompute text, line, paragraph, and scan-likelihood stats.
compare_pdf_pagesCompare text similarity between two pages.

Quick start

Install uv if you do not already have it:

bash
curl -LsSf https://astral.sh/uv/install.sh | sh

Run the server directly from PyPI:

bash
uvx pdf-insight-mcp

Or install it first:

bash
python -m pip install pdf-insight-mcppdf-reader-mcp

MCP client configuration

Use the published PyPI package:

json
{  "mcpServers": {    "pdf-reader": {      "command": "uvx",      "args": ["pdf-insight-mcp"]    }  }}

Use a local checkout for development:

json
{  "mcpServers": {    "pdf-reader": {      "command": "uv",      "args": [        "--directory",        "/absolute/path/to/pdf-reader-mcp",        "run",        "pdf-reader-mcp"      ]    }  }}

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:

text
Read /Users/me/Documents/report.pdf as text.Search /Users/me/Documents/report.pdf for "baseline characteristics".Render pages 1-3 of /Users/me/Documents/report.pdf as images.Extract links and annotations from /Users/me/Documents/review.pdf.

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_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.
  • 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:

bash
uv sync --extra dev

Run tests:

bash
uv run pytest -q

Build the package:

bash
uv builduvx twine check dist/*

Run the local server:

bash
uv run pdf-reader-mcp

Release

Releases are published through GitHub Actions.

Before the first release, configure PyPI Trusted Publishing with:

text
PyPI project name: pdf-insight-mcpOwner: XvvlnRepository name: pdf-reader-mcpWorkflow filename: publish.ymlEnvironment name: leave empty

Then release by bumping versions in pyproject.toml and server.json, committing the change, and pushing a version tag:

bash
git tag vX.Y.Zgit push origin main --tags

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

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  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