ezpzfile MCP

Stop your agent from rewriting the same file code

A set of tools for agents like Claude and Cursor. Editing a PDF, reading a document, changing a format, cleaning up an image: each of those becomes one call. Everything runs on your machine, so no file is ever sent anywhere.

claude mcp add ezpzfile -- npx -y ezpzfile-mcp

Where it plugs in

What changes

Without it

3 or 4 round trips
  1. 1Hunt for a library and install it.
  2. 2Write the script, hit a result that is off, patch it.
  3. 3Open the output just to see whether it worked.

With it

One call
  1. 1Call the tool once.
  2. 2The file is written next to the original.
  3. 3The page count check and the count of anything left behind come back with it.

How much 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.

−53%

lower cost

Bare$0.28
ezpzfile MCP$0.13

−93%

less time taken

Bare9:06
ezpzfile MCP0:39
Bareezpzfile MCP
Cost$0.28$0.13
Time taken9:060:39
Tasks finished2 / 44 / 4
Tool calls2010
Tokens exchanged510,607184,605

The four tasks

  1. 1Merge two PDFs and delete three pages
  2. 2Resize a photo to 1200px wide and strip its location data
  3. 3Turn an HWP document into PDF
  4. 4Pull the text out of an HWP document

The bare side finished only two of the four. It spent its whole budget hunting for and installing libraries for the two Korean documents and never got to them. So read the gap above as “at least this much”. Had it been made to finish all four, the gap would be wider.

Tokens and cost are not estimates. They are the real per-message figures the sessions recorded, added up. Measured on 2026-09-12

Thirty-one jobs, six tools

The site tools are not listed one by one here. Tool definitions sit in the model context for every single conversation, so spelling out thirty-one of them would eat the tokens this is meant to save. Jobs that work the same way are grouped, and an argument picks between them.

  • doc_readPulls the text out of DOCX, PDF, HWP, HWPX, EML, JTD and XDW files, tables and headers included. Also shows what a file records about itself, like where a photo was taken.
  • doc_convertDocuments to PDF (Japanese JTD and XDW too), PDF back to Word, Excel or HWP, PDF pages to JPG or PNG, spreadsheets to CSV or JSON, Korean formats to each other.
  • pdf_editMerge PDFs, split them, delete pages, rotate, reorder, shrink the file, lock it or unlock it, swap words in place.
  • pdf_infoPage count, page sizes and document metadata for a PDF.
  • image_editResize and shrink images (iPhone HEIC too), change format, cut out the background, strip location and camera data.
  • qr_makeTurns a link or a piece of text into a QR code you can print and hand out.

What's new in 0.4.0

The six tools now cover thirty-one of the site's jobs, up from twenty-five. New jobs come in as options on tools you already have, so the list your agent loads at the start of a chat barely grew.

ezpzfile-mcp@0.4.0

  • PDF back to Word, Excel and HWP

    Paragraphs and tables come back as text you can edit. The tool reopens what it wrote to check it, and lists any page it had to leave out, such as a scan with no text.

    doc_convert to: docx | xlsx | hwp | hwpx
  • Change words inside a PDF

    Swaps a word or phrase where it stands, in the PDF's own font when that font has the letters. Then it counts what is left, so a missed spot does not slip by.

    pdf_edit op: replace_text
  • Ichitaro and DocuWorks

    Reads Japanese Ichitaro (.jtd) and DocuWorks (.xdw, .xbd) files without either program, and turns them into PDF. Ichitaro files can become Word files too.

    doc_read · doc_convert .jtd .xdw .xbd
  • iPhone photos (HEIC)

    Resizes and converts HEIC photos, and binds them into a PDF along with other images. They come out as JPEG, PNG or WebP.

    image_edit .heic
  • What a file says about itself

    Shows where a photo was taken and on which camera, or who wrote a document and when. Looking changes nothing. To wipe it from photos and PDFs, use image_edit strip_metadata.

    doc_read format: metadata
  • Plain answers when an HWP will not open

    It says what the file really is: a PDF or Word file with the wrong name, a download that broke off, or a copy locked by company security (DRM). If the engine crashes on one file, the next one still goes through.

    doc_read "Only the name says HWP: this is a PDF."
All updates in the changelog

How fast a call is

With the server already running, each call was timed five times and the middle value recorded. The inputs were a 2.2MB 15-page PDF, a 342KB HWP file and a 3000x2000 JPEG.

CallMedian
image_edit · strip_metadata
1ms
qr_make
4ms
image_edit · resize
16ms
doc_read · pdf
117ms
pdf_info
157ms
doc_read · hwp
342ms
pdf_edit · merge
657ms
doc_convert · pdf→jpg
803ms
pdf_edit · compress
1,168ms
doc_convert · hwp→pdf
1,541ms
pdf_edit · protect
2,821ms

360ms

Server up to first reply

~2,000

Tokens the tool list costs per conversation

Install

Pick the tool you use and copy one line.

claude mcp add ezpzfile -- npx -y ezpzfile-mcp

Run it once in any terminal.

Node 22.13 or newer. The first run downloads the package, after that it starts from cache.

Things to ask once it is wired in

  • “Merge chapter1.pdf and chapter2.pdf, then drop page 3”
  • “Turn ~/Downloads/quote.pdf into a Word file I can edit”
  • “Replace ACME Corp with Globex Inc everywhere in contract.pdf”
  • “Resize these photos to 1200px wide and strip the location data”
  • “Convert ~/Downloads/notice.hwp to PDF”
  • No conversion code to write and debug for each file. The tools are already attached.
  • Every result is read back to confirm the page count, and anything that could not be carried over is counted.
  • Everything runs on your machine. No file is ever uploaded, so confidential documents are fair game.

Questions, answered

Do files really never leave the machine?+

They never do. The document engines and the fonts ship inside the package, so reading and converting work with no internet. The one download comes the first time you cut out a background: the cut-out model (about 18MB) is fetched from ezpzfile.com once and kept on disk. Your photo is not sent anywhere. The repository is public, so you can check for yourself.

Does it cost anything?+

No. It is MIT licensed and published on npm. No account, no key.

Does it work in ChatGPT or Grok?+

Not yet. Those two only accept remote MCP servers you connect to by URL. This one deliberately runs on your machine so that files never leave it. Claude, Cursor, VS Code and Gemini CLI work today.

Do I need Hancom Office for HWP files?+

No, and no Windows either. The engine that reads and draws Korean documents ships with the package, so it runs the same on macOS and Linux.

Why only six tools?+

Tool definitions load into the model context at the start of every conversation. Making each of the thirty-one jobs its own tool would let that list eat the tokens this is meant to save. Jobs that work the same way are grouped, and an argument picks between them. New capabilities arrive as another argument value, not another tool.

How do I know the result came out right?+

The tool checks and tells you. It reads back the file it just wrote to compare the page count, and counts any character the fonts had no glyph for. The point is that a silently broken result shows up as a number instead of as a surprise later.

One line and it is attached

Paste it into a terminal and hand your agent a file. If you want it gone, delete one line from the config.

claude mcp add ezpzfile -- npx -y ezpzfile-mcp
Repository and usage