Skip to main content
Glama
README.md
# ezpzfile-mcp

File tools for AI agents. Read and convert documents (DOCX, PDF, HWP, HWPX, EML),
edit PDFs, resize and clean images, cut out backgrounds, make QR codes. Everything
runs on your machine and no file is ever uploaded.

```bash
claude mcp add ezpzfile -- npx -y ezpzfile-mcp
```

[npm](https://www.npmjs.com/package/ezpzfile-mcp) · [ezpzfile.com/mcp](https://ezpzfile.com/mcp) · Node 22.13 or newer

## 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 not estimates; they
are the per-message figures the sessions recorded, added up. Measured 2026-09-12.

The bare session never started two of the tasks. It spent the clock hunting for and
installing libraries for the two Korean documents. Read the gap as a floor, not a
ceiling: had it been made to finish all 4, the difference would be wider.

![Benchmark](./mcp/docs/benchmark.png)

## The tools

Six of them, not twenty five. Tool definitions sit in the model's context for every
conversation, so related jobs share one tool and an argument picks between them.
[`mcp/README.md`](./mcp/README.md) has the full list and every argument.

| Tool | What it does |
|---|---|
| `doc_read` | Text out of DOCX, PDF, HWP, HWPX and EML, tables included |
| `doc_convert` | Documents to PDF, PDF pages to images, sheets to CSV or JSON, Korean formats to each other |
| `pdf_edit` | Merge, extract, delete, rotate, reorder, split, compress, protect, unlock |
| `pdf_info` | Page count, page sizes, encryption, metadata |
| `image_edit` | Resize, compress, convert, strip EXIF and GPS, cut out the background |
| `qr_make` | A link or some text as a PNG or SVG |

## Layout

| Path | What it is |
|---|---|
| [`mcp/`](./mcp) | The package: server, tools, build |
| `src/lib/` | Code shared with [ezpzfile.com](https://ezpzfile.com) |
| `public/vendor/` | The HWP engine and the fonts embedded into generated PDFs |

```bash
cd mcp
npm install
npm run build      # writes mcp/dist/index.js and mcp/vendor/
node test/protocol.mjs /path/to/samples
```

`sharp` and `@napi-rs/canvas` are native, so they are built for your platform on
install. Background removal downloads a 4.4MB model and a 14MB runtime the first
time you ask for a cut-out, then caches them under `~/.cache/ezpzfile-mcp`. That is
the only thing here that touches the network, and it uploads nothing.

## 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](./LICENSE).

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues