ezpzfile
OfficialA local, privacy-first file toolkit for AI agents: read, convert, edit PDFs/images, and generate QR codes without uploading files.
Read documents (
doc_read): extract text or markdown (headings, lists, tables) from DOCX, PDF, EML, HWP and HWPX — including password-protected files.Convert formats (
doc_convert): PDF ↔ JPG/PNG, images → merged PDF, XLSX/CSV → CSV/JSON, HWP/HWPX → PDF/HWP/HWPX; outputs are reopened and verified.Edit PDFs (
pdf_edit): merge, extract, delete, rotate, reorder, split, lossless compress, password-protect and unlock, with 1-based page numbers.Inspect PDFs (
pdf_info): page count, page sizes, encryption status and metadata — useful to verify a conversion.Edit images (
image_edit): resize, compress, convert (JPEG/PNG/WebP), strip EXIF/GPS/XMP metadata without re-encoding, or remove background (one-time 4.4 MB model download).Make QR codes (
qr_make): PNG or SVG from a link or text, with control over size, colors, margin and error correction.Everything runs on your machine — relative paths are refused, and files are never sent anywhere.
Fetches missing free Google Fonts families by name for PDF templates, downloading them once for local use so generated documents use the requested font rather than a look-alike.
File tools for AI agents: look inside a document, change it by address, fill it for a whole list, and check the result. HWP and HWPX without Hancom Office, Illustrator and Photoshop files without Adobe, DWG and Jw_cad without AutoCAD, Ichitaro and DocuWorks without Windows, plus DOCX, PDF, Excel, images, and a font finder. Everything runs on your machine and your files are never sent anywhere.
claude mcp add ezpzfile -- npx -y ezpzfile-mcpVersion 0.8.0 · Node 22.13 or newer · Claude Desktop, Cursor, VS Code: see the guide

What it saves
The same four files were placed in two sessions and the same task sentence was handed to the same model. One side could only use this server. The other had no dedicated tools and was free to use the shell and Node.
Without tools | With ezpzfile-mcp | |
Cost | $0.28 | $0.13 |
Wall time | 9:06 | 0:39 |
Tasks finished | 2 / 4 | 4 / 4 |
Tool calls | 20 | 10 |
Tokens | 510,607 | 184,605 |
That is 53% less cost and 93% less time. Tokens and cost are the per-message figures the sessions recorded, added up, not estimates. Measured 2026-09-12. The bare session never started two of the tasks: it spent the clock hunting for libraries for the two Korean documents, so read the gap as a floor.
Related MCP server: PDF MCP
Who it is for
Real jobs, run the way an agent runs them, with node test/bench.mjs on the files test/make-samples.py makes (Node 22.22.0, linux, 2 cores, 2026-11-05). "First run" includes one-time downloads (design engines, font finder models, a missing font).
Who | Job | First run | Again | Result |
Office, Korea | Read every table of an HWP | 267 ms | 18 ms | tables as markdown, merged cells kept |
Office, Korea | Fill an HWP form, convert to PDF, check | 1.3 s | 388 ms | 3 calls, nothing left |
Sales | Quote from a DOCX template (split placeholder, item rows) | 374 ms | 348 ms | 1 call, 1 row added, nothing left |
Sales | 100 quotes from a PDF design and a list | 12.9 s | 6.7 s | 100 files, 50 KB each, checked |
Design | 100 business cards from an SVG/AI design and a list | 18 ms | 11 ms | 100 files |
Design | PSD: hide a layer, save as PNG | 1.1 s | 1.0 s | 2 calls, 7 layers listed, confirmed |
Design | Which font is this? (picture) | 6.0 s | 751 ms | #1 Nanum Myeongjo 92% |
Design | Change a name in a PDF whose font is not installed | 836 ms | 92 ms | same font fetched, 67 KB |
Privacy | Redact a name, phone and address in a PDF, prove it | 1.3 s | 914 ms | 2 calls, nothing left to extract |
Architecture | CAD drawing: layers, text, vector PDF | 38 ms | 20 ms | 3 calls, text stays text |
Office workers in Korea and Japan: HWP, HWPX, Ichitaro and DocuWorks read, filled, edited cell by cell and converted.
Sales and admin: quotes, certificates and letters from DOCX, HWP or PDF templates, one file or one per row of a spreadsheet.
Designers and marketers: AI, SVG and PSD changed layer by layer, a card or poster for every name on a list, the font of a reference picture.
Legal and privacy: PDF redaction that removes the text, then proof that nothing can be extracted.
Architects and engineers: DWG, DXF, Jw_cad, IFC and STEP read and printed to vector PDF with the text still text.
MCP or a script
The same jobs done the way an agent does them without this server: a script with the common Python libraries, run on the same files.
Job | ezpzfile-mcp | Script an agent writes |
Fill a DOCX quote template | 1 call, 0.1 s, nothing left | python-docx: |
Redact a name and phone number in a PDF | 1 call, 1 s, text gone, checked | pypdf + reportlab black boxes: looks redacted, the name is still extractable |
100 quotes from a PDF design and a list | 1 call, 7 s, 50 KB each | pypdf + reportlab overlay: coordinates measured by hand, |
Change an HWP table cell | 1 call, confirmed after reopening | no open library writes HWP tables |
PSD: hide a layer, save as PNG | 2 calls, 0.9 s | psd-tools does this well (3.3 s); it cannot change a type layer's text |
DXF to PDF | 1 call, 16 ms, text stays text | ezdxf + matplotlib (1.2 s): no text layer. DWG needs the closed ODA converter |
Which font is this? | 1 call, 0.8 s, ranked with licence | no open library identifies a font from a picture |
What's new in 0.8.0
font_find: the text in a picture or a document page, matched against about 10,000 fonts in 10 scripts, the same way as ezpzfile.com/fonts.Missing fonts fetched by name: when a PDF template's font is not installed and it is a free Google Fonts family, it is downloaded once and used, not a look-alike.
Smaller batch PDFs: 100 quotes went from 757 KB to 50 KB each, 43 s to 7 s.
All releases: Releases.
Layout
Path | What it is |
The package: server, tools, tests, build. | |
| Code shared with ezpzfile.com: HWP, PDF, CAD, font finder |
| Patches that build the vector and PSD engines for WASI |
| The HWP, JTD and XDW engines, libheif and bundled fonts (kept out of git; they ship inside the npm package) |
cd mcp
npm install
npm run build # mcp/dist/index.js, mcp/vendor/
python3 test/make-samples.py /tmp/samples
node test/protocol.mjs /tmp/samples # every tool
node test/scenarios.mjs /tmp/samples # jobs chained the way an agent does
node test/bench.mjs /tmp/samples # the timings aboveNetwork use is one-time downloads that upload nothing: the background-removal model, the design engines, the font finder's models and lists, and free fonts a PDF template names. EZPZFILE_NO_FONT_DOWNLOAD=1 turns the font downloads off.
A note on this repository
This is a read-only export. The working copy lives in a private monorepo alongside the website, and this repository is regenerated from it on each release. Please open issues rather than pull requests.
MIT licensed, see LICENSE. Bundled engines and fonts keep their own licences.
Available Tools
6 toolsdoc_convertConvert documentA
Convert between file formats. PDF pages to jpg or png. Images to pdf (several paths become one PDF). XLSX/CSV to csv or json. HWP/HWPX to pdf, hwp or hwpx. Every output is reopened and checked, and the result reports what could not be carried over.
Inputs: to (required), path (required), dpi, out, +5 more.
doc_readRead documentA
Extract the text of a document: DOCX, PDF, EML email, or HWP and HWPX (Korean word processor, no Hancom Office needed). Use when the model needs to read what a file says.
Inputs: path (required), format, password.
image_editEdit imageA
Resize, compress, convert (jpeg, png, webp), strip metadata (EXIF, GPS, XMP) or remove the background from an image. strip_metadata never re-encodes pixels. remove_background downloads a 4.4MB model once per machine and always writes PNG. Returns the real output dimensions and byte size.
Inputs: op (required), path (required), out, width, +4 more.
pdf_editEdit PDFA
Edit PDF files: merge, extract, delete, rotate, reorder, split, compress (lossless), protect (set password), unlock (remove password). Page numbers are 1-based.
Inputs: op (required), paths (required), at, out, +7 more.
pdf_infoPDF infoA
Page count, page sizes, encryption flag and document metadata. Use to verify a conversion.
Inputs: path (required).
qr_makeMake QR codeA
Generate a QR code as PNG or SVG from a link or text. Nothing leaves the machine.
Inputs: out (required), text (required), dark, size, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Most tools target distinct resources/actions: doc_read vs pdf_info vs doc_convert vs pdf_edit vs image_edit vs qr_make. Minor overlap exists between doc_convert and image_edit around conversion/compression, but descriptions clarify the intended scope.
All names use snake_case with a [domain]_[action] pattern (doc_read, doc_convert, pdf_edit, image_edit, qr_make), except pdf_info which uses a noun rather than a verb. The deviation is minor and the set remains predictable.
6 tools is a well-scoped size for a file/document utility server. Each tool covers a meaningful area (read, info, convert, PDF edit, image edit, QR) without excessive fragmentation.
The set covers reading, inspecting, converting, PDF editing, image editing, and QR generation. Gaps remain for document creation/text editing, direct CSV/JSON read, and OCR, but core file-manipulation workflows are covered.
Maintenance
Related MCP Connectors
PDF and image tools for AI agents: compress, merge, split, OCR, sign. Runs locally, never uploads.
PDF, image, video, OCR, screenshot, SQL, QR and text tools for agents. No API key, no signup.
Image & PDF tools for AI agents: compress, convert, resize, PDF, AI vision, pipeline.
File tools for your AI chat: PDF tables to Excel, merge PDFs, images to PDF, fill PDF forms.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to process files locally — OCR images, extract text from PDFs and DOCX, and describe images using local vision models, all without sending data to external services.-
- AlicenseAqualityDmaintenanceEnables PDF processing and analysis including text extraction, metadata retrieval, search, page manipulation, splitting/merging, conversion to images, and form handling.10MIT
- FlicenseNot gradedqualityCmaintenanceEnables file operations (PDF, Office, images, archives, media) through natural language, with tools for reading, writing, converting, and analyzing files locally.1-
- AlicenseAqualityDmaintenanceProvides AI agents with local file-processing capabilities for token counting, RAG chunking, CSV/JSON conversion, QR generation, and more, while keeping documents private on the user's machine.71MIT