Atlas / MCP servers / hanweg / Pdf Tools

Pdf ToolsSAFE

mcp/hanweg/pdf-tools

MCP server for working with PDF files

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
5 3r · 2w · 0d
Transport
stdio
License
Unlicense
Stars
76
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

MCP PDF Tools Server

An MCP (Model Context Protocol) server that provides PDF manipulation tools. This server allows LLMs to perform operations like merging PDFs and extracting pages through the Model Context Protocol.

Features

  • Merge multiple PDF files into a single PDF
  • Merge multiple PDF files into a single PDF in user specified order
  • Extract specific pages from a PDF file
  • Search PDFs filesystem search or Everything search works better than this
  • Find (and merge) related PDFs based on text extraction and regex pattern matching from a target input PDF

Installation

  1. Clone this repository
cd mcp-pdf-tools

# Create and activate virtual environment
uv venv
.venv\Scripts\activate

# Install the package
uv pip install -e .

Usage with Claude Desktop

Add this to your Claude Desktop configuration file (claudedesktopconfig.json):

{
"mcpServers": {
"pdf-tools": {
"command": "uv",
"args": [
"--directory",
"PATH_TO\\mcp-pdf-tools",
"run",
"pdf-tools"
]
}
}
}
Read from source at commit 4711d340b142OBSERVED · 2026-10-07
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add mcp-pdf-tools -- uvx mcp-pdf-tools
claude-desktop
{
  "mcpServers": {
    "mcp-pdf-tools": {
      "command": "uvx",
      "args": [
        "mcp-pdf-tools"
      ]
    }
  }
}
03

Exposed tools (5)

3 read · 2 write · 0 destructive.

ToolRiskDescription
extract-pagesreadExtract specific pages from a PDF file
find-related-pdfsreadFind a PDF and then search for related PDFs based on its content, including common substring patterns
merge-pdfswriteMerge multiple PDF files into a single PDF
merge-pdfs-orderedwriteMerge PDFs in a specific order based on patterns or exact names
search-pdfsreadSearch for PDF files in a directory with optional pattern matching
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
none-observed
Shell
none-observed
Dependencies
pinned
Secrets in source
none-found

Findings (0)

No findings outside the package's declared scope.

Gates applied: no_behavioural_pass.

Audited 2026-10-07 · audit v0.4.1 · source sha 4711d340b142full audit observations/trust-audit/mcp-server/hanweg__pdf-tools.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-074711d340b142SAFEB89first audit
06

Questions

What is the Pdf Tools MCP server?

MCP server for working with PDF files

What tools does Pdf Tools expose?

5 in total: 3 read-only, 2 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is Pdf Tools safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does Pdf Tools need?

No credential environment variables were found in its source, so it appears to need none.

How does Pdf Tools run?

It speaks stdio, so it runs as a local process your client starts. It is published on PyPI as mcp-pdf-tools.

How current is this page?

The grade is for one exact copy of the source (4711d340b142), read on 2026-10-07. The repository is watched and re-audited when it changes.

Advertisement