Pdf Modifier Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Pdf Modifier Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- mcp-name: io.github.mlorentedev/pdf-modifier-mcp -->
Give your AI coding assistant the ability to natively read, edit, and redact PDF documents.
Most AI assistants can generate Python scripts to edit PDFs, but running them requires manual execution, debugging missing fonts, and fixing broken layouts. PDF Modifier is an MCP server that gives your AI direct, native tools to safely manipulate PDFs in place.
The numbers:
| Metric | Without PDF Modifier MCP | With PDF Modifier MCP |
|---|---|---|
| Workflow | AI writes script -> You run it -> Debug errors | AI edits PDF directly via MCP |
| Time to redact 10 invoices | ~15 minutes (trial & error) | Seconds (autonomous) |
| Layout preservation | Often breaks styling or coordinates | 100% (Base 14 font matching) |
| Interface | Terminal only | Native AI Tools + CLI fallback |
One command. No cloning, no venv. Use user scope (`-s user`) so the tools are available across all your projects.
claude mcp add -s user pdf-modifier -- uvx --upgrade pdf-modifier-mcpgemini mcp add -s user pdf-modifier uvx -- --upgrade pdf-modifier-mcpAdd to ~/.codex/config.toml:
[mcp_servers.pdf-modifier]
command = "uvx"
args = ["--upgrade", "pdf-modifier-mcp"]Add to .vscode/mcp.json or your User Settings:
{
"mcp": {
"servers": {
"pdf-modifier": {
"command": "uvx",
"args": ["--upgrade", "pdf-modifier-mcp"]
}
}
}
}Then ask your assistant:
"Read the structure of invoice.pdf and redact all credit card numbers"
That's it. You're running.
| Tool | What it does |
|---|---|
read_pdf_structure | Extract complete PDF structure with text positions, sizes, and fonts |
inspect_pdf_fonts | Search for terms and report their exact font properties |
list_pdf_hyperlinks | Inventory all existing hyperlinks and URIs in the document |
modify_pdf_content | Find and replace text (or regex) with strict style and layout preservation |
batch_modify_pdf_content | Apply the same replacements to multiple PDFs at once |
Still want to script it yourself? The package includes a powerful Typer CLI:
# Simple text replacement
pdf-mod modify input.pdf output.pdf -r "old text=new text"
# Inventory hyperlinks
pdf-mod links input.pdf
# Batch process multiple PDFs
pdf-mod batch *.pdf -o output/ -r "Draft=Final"pdf-mod modify input.pdf output.pdf -r "Order #\d+=Order #REDACTED" --regex
pdf-mod modify input.pdf output.pdf -r "Click Here=Visit Site|https://example.com"
## Before / After
**Before PDF Modifier MCP** — Manual scripting workflow:import fitz doc = fitz.open("invoice.pdf") for page in doc:
page.insert_text((100, 100), "REDACTED", fontname="helv") doc.save("out.pdf")
**With PDF Modifier MCP** — Autonomous AI action:modify_pdf_content( input_path="invoice.pdf", replacements={"pattern": r"\b\d{4}-\d{4}-\d{4}-\d{4}\b", "replacement": "XXXX-XXXX-XXXX-XXXX"}, use_regex=True )
## Architecture
MCP Host (Claude, Gemini, Copilot) ↓ MCP protocol (stdio) pdf-modifier-mcp (FastMCP Server) │ ├── Core Layer (PDFModifier, PDFAnalyzer) │ ├── Regex matching & text extraction │ ├── Base 14 font fallback mapping │ └── Layout & coordinate preservation │ └── PyMuPDF (fitz) Engine
## Development
See [CONTRIBUTING.md](CONTRIBUTING.md) for setup, code standards, and PR workflow.
git clone https://github.com/mlorentedev/pdf-modifier-mcp.git cd pdf-modifier-mcp make setup # create venv + install deps make check # lint + typecheck + test
## License
MIT License - see [LICENSE](LICENSE) for details.
## Documentation
Project-bound knowledge lives in [`docs/`](docs/) (docs-as-code): ADRs, runbooks, troubleshooting, and lessons.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.