Skip to main content
Glama

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.

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

npm · 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

Related MCP server: Agent Helper

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 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/

The package: server, tools, build

src/lib/

Code shared with ezpzfile.com

public/vendor/

The HWP engine and the fonts embedded into generated PDFs

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.

Available Tools

6 tools
doc_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget format
dpiNoPDF to images: resolution. Default 144
outNoOutput path. For PDF to images this is a directory. Default: next to the source
pathYesAbsolute path of the source file. Relative paths are refused
pagesNoPDF to images: which pages, 1-based. Default all
pathsNoAdditional inputs. Only for images to pdf: all images are bundled in order, path first
sheetNoTable export: sheet name or 0-based index. Default first
pageSizeNoImages to pdf: fit makes each page the image size, a4 centers on A4. Default fit
passwordNo

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses a verification pass ('every output is reopened and checked') and partial-fidelity reporting, which is real value beyond the schema. But it omits write-side behavior: overwrite semantics when the output exists, whether the 'password' parameter is for encrypted inputs or outputs, and permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Terse, front-loaded, and every sentence carries information: the capability matrix first, then the special multi-input rule, then the validation/reporting behavior. No filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter mutation tool with no output schema and no annotations, the description covers the conversion routes, multi-input bundling, and result reporting. Remaining gaps are the return shape beyond 'reports what could not be carried over' and output-overwrite behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 89%, so the baseline is 3, but the description adds routing meaning the schema lacks: which parameters apply to which conversion (dpi/pages for PDF→images, pageSize for images→pdf, sheet for table export) and that 'paths' bundles multiple images in order with 'path' first.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Convert') plus resource ('file formats') and then enumerates the exact supported conversion routes (PDF→jpg/png, images→pdf, XLSX/CSV→csv/json, HWP/HWPX→pdf/hwp/hwpx). This clearly separates it from siblings like pdf_edit, image_edit, and doc_read.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The conversion matrix effectively tells the agent when this tool applies versus editing siblings, and it clarifies the special multi-input case ('several paths become one PDF'). It does not, however, state exclusions (e.g., when to prefer pdf_edit or image_edit for in-place changes) or prerequisites such as the absolute-path requirement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to the .hwp, .hwpx, .docx, .pdf or .eml file. Relative paths are refused
formatNomarkdown keeps headings, lists and tables where the format has them (DOCX). Default text
passwordNoOnly for encrypted PDF, HWP or HWPX

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full behavioral burden. It discloses that HWP/HWPX work without Hancom Office (a useful environmental fact) and that markdown preserves structure where available, but it doesn't mention error behavior (e.g., unsupported formats, encrypted files without a password) or output size limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences that front-load the supported formats and end with a usage cue. No filler, though the parenthetical about Hancom Office is a tangent that slightly dilutes the core message.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter read tool with no output schema, the description covers the essential purpose, supported formats, and a basic usage condition. It could be more complete by mentioning what the extracted output looks like or how errors are handled, but it's adequate for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters with useful details (absolute path requirement, markdown vs text semantics, password usage). The description adds no parameter-specific information beyond what the schema provides; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (extract text) and the exact resource types it handles, including a clarifying parenthetical about Korean word processors. The scope is instantly distinguishable from sibling tools like doc_convert and image_edit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence, 'Use when the model needs to read what a file says,' implies a read context but doesn't contrast with siblings like doc_convert (which likely transforms or outputs a new file) or pdf_info (which likely extracts metadata). No explicit when-not or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
opYes
outNo
pathYesAbsolute path of the source image. Relative paths are refused
widthNoresize: give width or height alone to keep the aspect ratio
formatNoconvert: target format. Others: default keeps the source format
heightNo
qualityNocompress, convert, resize: 1-100. Default 85 (compress 75)
backgroundNoremove_background: fill colour behind the subject, for example #ffffff. Default transparent

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that strip_metadata never re-encodes pixels (lossless), that remove_background triggers a one-time 4.4MB model download and always emits PNG, and what the tool returns. It does not say whether the source file is overwritten or how `out` defaults, which keeps it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, front-loaded with the operation taxonomy, then the highest-value caveats (lossless strip, model download, PNG output, return values). No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by describing the return values (real dimensions and byte size). Operations and key side effects are covered; minor gaps remain around overwrite behavior and how `out` interacts with the source path for an 8-parameter mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 63%, with the schema itself already documenting width, height, format, quality, and background. The description adds no parameter-level detail beyond restating the formats and the ops, so it neither compensates for the coverage gap nor exceeds the schema's baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the specific verb (edit) and enumerates all five operations (resize, compress, convert, strip_metadata, remove_background), with formats spelled out. This clearly separates it from the document/pdf siblings (doc_convert, pdf_edit) that share the editing domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the operation list, but there is no explicit when-to-use/when-not guidance, nor advice on choosing among the five ops (e.g. compress vs convert). With no competing image sibling, the routing need is lower, but the op-selection decision is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
atNosplit: page numbers that start a new file, e.g. [4,8] makes 1-3, 4-7, 8-end
opYes
outNoAbsolute output path. split: output directory
orderNoreorder: full new page order, e.g. [3,1,2]
pagesNoextract, delete, rotate: pages to act on. Default all
pathsYesAbsolute paths. merge takes several files, every other op takes one
degreesNorotate: multiple of 90. Default 90
passwordNoprotect: password to set. unlock: password to remove. others: password of an encrypted input
allowCopyNoprotect: allow copying text. Default true
allowPrintNoprotect: allow printing. Default true
ownerPasswordNoprotect: separate owner password. Default same as password

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It usefully discloses that compress is lossless and clarifies protect/unlock password semantics, but it omits mutation hazards (overwriting outputs, encrypting existing files) and any permission or error behavior. It adds real but partial behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the operation list, with the indexing caveat placed at the end. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter multi-verb tool with no output schema, the description covers the operation set and indexing convention but never maps which parameters belong to which op (beyond a few schema hints) or describes output/overwrite behavior, leaving gaps an agent must infer from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already 91%, so the baseline is 3. The statement 'Page numbers are 1-based' is a genuine addition that applies across at/order/pages and is not documented anywhere in the schema, which lifts it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Edit PDF files') and enumerates all nine supported operations, so an agent can immediately tell it apart from pdf_info and doc_convert without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The op list implies when each mode applies, but there is no explicit when-to-use guidance relative to siblings (pdf_info, doc_convert) and no note that non-merge ops take exactly one input file (that fact lives only in the schema). Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pdf_infoPDF infoA

Page count, page sizes, encryption flag and document metadata. Use to verify a conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path of the PDF. Relative paths are refused

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It implicitly conveys a read-only inspection operation and discloses what is returned, which is helpful, but it says nothing about permissions, failure modes on encrypted files, or whether it mutates anything. Adequate but with real gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two terse sentences that front-load the returned fields before the usage hint. Nothing is wasted, though the second sentence is so brief it borders on a fragment rather than substantive guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter inspection tool with no output schema, the description usefully enumerates the return fields so the agent knows what to expect. Given the low complexity, this is close to complete, with only error/edge-case behavior missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter, path, and the schema already documents it fully (absolute path required, relative refused) at 100% coverage. The description adds no parameter-level information, so the baseline of 3 for high schema coverage applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (PDF) and enumerates the specific fields returned (page count, page sizes, encryption flag, metadata), which is more informative than a bare restatement of the title. However, it does nothing to distinguish itself from siblings like doc_read or pdf_edit, so a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It offers one usage context, 'Use to verify a conversion,' which implies when the tool is useful. But it names no alternatives and gives no when-not guidance, leaving the agent to infer that doc_read or pdf_edit are the wrong choices for metadata inspection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

qr_makeMake QR codeA

Generate a QR code as PNG or SVG from a link or text. Nothing leaves the machine.

ParametersJSON Schema
NameRequiredDescriptionDefault
outYesAbsolute output path ending in .png or .svg
darkNoModule color. Default #000000
sizeNoPNG side length in pixels, quiet zone included. The result is exactly this wide unless it is smaller than the code itself. Default 512
textYesLink or text to encode
levelNoError correction. Default M
lightNoBackground color. Default #ffffff
marginNoQuiet zone in modules. Default 4

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must carry full behavioral burden. It states output formats (PNG/SVG) and security ('Nothing leaves the machine'), which are useful beyond schema. However, it omits important details like permission requirements, error handling, or whether it's idempotent. The security note is a valuable addition.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, highly concise, with key facts front-loaded: action, output formats, source, and security. No waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a generation tool with no output schema; annotations are absent but the description covers core behavior. It lacks details on error cases or required permissions, but these are minor for a self-contained tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are fully documented in the schema. The description adds no parameter semantics beyond what the schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the specific action (generate QR code) and resources (as PNG or SVG from link or text). An agent can instantly understand this creates QR codes, distinct from all sibling document/image tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied from the clear purpose, but no explicit when-to-use or when-not-to-use guidance relative to alternatives. Given the domain is distinct from siblings, guidance would be minimal anyway.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.3.3
    • First observeddoc_convert
    • First observeddoc_read
    • First observedimage_edit
    • First observedpdf_edit
    • First observedpdf_info
    • First observedqr_make

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Privacy-first file tools for AI agents, enabling operations like PDF merge/split, image compression/convert, metadata stripping, and background removal without storing files.
    11
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables PDF processing and analysis including text extraction, metadata retrieval, search, page manipulation, splitting/merging, conversion to images, and form handling.
    10
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables file operations (PDF, Office, images, archives, media) through natural language, with tools for reading, writing, converting, and analyzing files locally.
    1
    -