{"_id":"ezpzfile-mcp","_rev":"6-609cf6bd963be5517c34b7b6b0257e09","name":"ezpzfile-mcp","dist-tags":{"latest":"0.3.3"},"versions":{"0.2.0":{"name":"ezpzfile-mcp","version":"0.2.0","keywords":["mcp","model-context-protocol","hwp","hwpx","pdf","korean","converter","claude","ai-agent","docx","image","resize","qr","zip","xlsx"],"license":"MIT","_id":"ezpzfile-mcp@0.2.0","maintainers":[{"name":"ezpzfile","email":"hello@ezpzfile.com"}],"homepage":"https://ezpzfile.com/mcp","bugs":{"url":"https://ezpzfile.com/contact"},"bin":{"ezpzfile-mcp":"dist/index.js"},"dist":{"shasum":"3c67cb4fe1341299085570f50e6e512e7e4f653e","tarball":"https://registry.npmjs.org/ezpzfile-mcp/-/ezpzfile-mcp-0.2.0.tgz","fileCount":12,"integrity":"sha512-98eDsPwmaXrfrXPbPQsuB2i6Iz08oeSLXuQyDAbTo+taCMc/eTE4dFIPMVPFzD2OuWgWcP2/ftPix4bO1i19Bg==","signatures":[{"sig":"MEUCIHGOnoWqson7Z5rz1m4DRjJQxMQnV42+XEHzcxymVGbDAiEA8MOYDmp6UfXmdJKZ8O/YEzxBkL8i5v7GHTLo/9cHkso=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18316442},"type":"module","engines":{"node":">=20"},"gitHead":"9d76ef0f7acc39c89375ffcaa92b8fb6976ec929","scripts":{"build":"node build.mjs","start":"node dist/index.js"},"_npmUser":{"name":"ezpzfile","email":"hello@ezpzfile.com"},"_npmVersion":"10.9.8","description":"File tools for AI agents. Read and convert documents (HWP, HWPX, DOCX, PDF, EML), edit PDFs, resize and clean images, make QR codes, extract ZIPs. Runs locally, no upload.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.6.2","xlsx":"^0.18.5","sharp":"^0.35.4","fflate":"^0.8.3","pdfkit":"^0.20.2","chardet":"^2.2.0","fontkit":"^2.0.4","mammoth":"^1.12.2","pdf-lib":"^1.17.1","linkedom":"^0.18.0","pdfjs-dist":"^6.3.289","postal-mime":"^3.0.0","@napi-rs/canvas":"^1.0.9","qrcode-generator":"^2.0.4","@jspawn/qpdf-wasm":"^0.0.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"rolldown":"^1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/ezpzfile-mcp_0.2.0_1789184105019_0.7782471519285221","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"ezpzfile-mcp","version":"0.2.1","keywords":["mcp","model-context-protocol","hwp","hwpx","pdf","korean","converter","claude","ai-agent","docx","image","resize","qr","zip","xlsx"],"license":"MIT","_id":"ezpzfile-mcp@0.2.1","maintainers":[{"name":"ezpzfile","email":"hello@ezpzfile.com"}],"homepage":"https://ezpzfile.com/mcp","bugs":{"url":"https://github.com/ezpzfile/ezpzfile-mcp/issues"},"bin":{"ezpzfile-mcp":"dist/index.js"},"dist":{"shasum":"2fb6ce2e3f7e7601dd70af795864c92f3c9e3b7a","tarball":"https://registry.npmjs.org/ezpzfile-mcp/-/ezpzfile-mcp-0.2.1.tgz","fileCount":12,"integrity":"sha512-IKxHpoOiWNexEAfWLQChkEFwmu3Mf5mxEG3kk1v+zujVXiqOENWr/DWaNe2ehHmpaeEs2T495cXeI/1b0m4R0A==","signatures":[{"sig":"MEQCIHFLiv+WglCIUl4OovIBa9MuJ1JKlE70YWMQG4NCIfnCAiBMxQs7fVQN17to8XeJGHRYLt1/Wqb7wmxA2tb+N5k3vQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18303698},"type":"module","engines":{"node":">=20"},"gitHead":"bb857e114594581c4df9ee2e5a9cc66df87f11c0","scripts":{"build":"node build.mjs","start":"node dist/index.js"},"_npmUser":{"name":"ezpzfile","email":"hello@ezpzfile.com"},"repository":{"url":"git+https://github.com/ezpzfile/ezpzfile-mcp.git","type":"git","directory":"mcp"},"_npmVersion":"10.9.8","description":"File tools for AI agents. Read and convert documents (HWP, HWPX, DOCX, PDF, EML), edit PDFs, resize and clean images, make QR codes, extract ZIPs. Runs locally, no upload.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.6.2","xlsx":"^0.18.5","sharp":"^0.35.4","fflate":"^0.8.3","pdfkit":"^0.20.2","chardet":"^2.2.0","fontkit":"^2.0.4","mammoth":"^1.12.2","pdf-lib":"^1.17.1","linkedom":"^0.18.0","pdfjs-dist":"^6.3.289","postal-mime":"^3.0.0","@napi-rs/canvas":"^1.0.9","qrcode-generator":"^2.0.4","@jspawn/qpdf-wasm":"^0.0.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"rolldown":"^1.2.4"},"_npmOperationalInternal":{"tmp":"tmp/ezpzfile-mcp_0.2.1_1789188858493_0.29794693780295844","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"ezpzfile-mcp","version":"0.3.0","keywords":["mcp","model-context-protocol","hwp","hwpx","pdf","korean","converter","claude","ai-agent","docx","image","resize","qr","xlsx","background-removal"],"license":"MIT","_id":"ezpzfile-mcp@0.3.0","maintainers":[{"name":"ezpzfile","email":"hello@ezpzfile.com"}],"homepage":"https://ezpzfile.com/mcp","bugs":{"url":"https://github.com/ezpzfile/ezpzfile-mcp/issues"},"bin":{"ezpzfile-mcp":"dist/index.js"},"dist":{"shasum":"798d4815a3a709deebdb5f5228d176a75bad0e40","tarball":"https://registry.npmjs.org/ezpzfile-mcp/-/ezpzfile-mcp-0.3.0.tgz","fileCount":12,"integrity":"sha512-CRrzQRM1rZ0Kj7KVTDgnHWdq93cX6EXjOHInG7hmOhOnXtKc/oSM+akgNvYBbes8JmkC8pyQ9RrpfGbYQYT+Yg==","signatures":[{"sig":"MEYCIQCk6vnLZTaBIsmUasknD5SwSbXA0hk4gudT8dPMA5BKUAIhAKqemOAK5F/4TCiWfGh70fgQ2gKwDeX7U1tF/mYik7x2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18407906},"type":"module","engines":{"node":">=20"},"gitHead":"8050a558686fbd22d15226775b995314bd0c6bcb","scripts":{"build":"node build.mjs","start":"node dist/index.js"},"_npmUser":{"name":"ezpzfile","email":"hello@ezpzfile.com"},"repository":{"url":"git+https://github.com/ezpzfile/ezpzfile-mcp.git","type":"git","directory":"mcp"},"_npmVersion":"10.9.8","description":"File tools for AI agents. Read and convert documents (HWP, HWPX, DOCX, PDF, EML), edit PDFs, resize, clean and cut out images, make QR codes. Runs locally, no upload.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.6.2","xlsx":"^0.18.5","sharp":"^0.35.4","fflate":"^0.8.3","pdfkit":"^0.20.2","chardet":"^2.2.0","fontkit":"^2.0.4","mammoth":"^1.12.2","pdf-lib":"^1.17.1","linkedom":"^0.18.0","pdfjs-dist":"^6.3.289","postal-mime":"^3.0.0","@napi-rs/canvas":"^1.0.9","qrcode-generator":"^2.0.4","@jspawn/qpdf-wasm":"^0.0.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"rolldown":"^1.2.4","onnxruntime-web":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/ezpzfile-mcp_0.3.0_1789193390019_0.9062373537987076","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"ezpzfile-mcp","version":"0.3.1","keywords":["mcp","model-context-protocol","hwp","hwpx","pdf","korean","converter","claude","ai-agent","docx","image","resize","qr","xlsx","background-removal"],"license":"MIT","_id":"ezpzfile-mcp@0.3.1","maintainers":[{"name":"ezpzfile","email":"hello@ezpzfile.com"}],"homepage":"https://ezpzfile.com/mcp","bugs":{"url":"https://github.com/ezpzfile/ezpzfile-mcp/issues"},"bin":{"ezpzfile-mcp":"dist/index.js"},"dist":{"shasum":"c118d98974e9821ca90440dcc8e695af0c1df932","tarball":"https://registry.npmjs.org/ezpzfile-mcp/-/ezpzfile-mcp-0.3.1.tgz","fileCount":12,"integrity":"sha512-5haI9FQHQBjqncPBu1GtGXUktVZrBRQInL0oUsdejFL8aO68N6q4ZqQ/jkVF927YMiZsgltnDbOrMnk79F1PnA==","signatures":[{"sig":"MEUCIAvJBz4BUBrTpiV3HCtb+DRMcRZ1Ic6xg4FwJHqcFHXtAiEAuqGb8QXdLzMzP5s1VFu2ytK4NzqQ1JkULm8B+u87Msw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18407950},"type":"module","engines":{"node":">=20"},"gitHead":"5ec96c78e0ceeeb247d991b4b7763914030ad5cd","mcpName":"io.github.ezpzfile/ezpzfile","scripts":{"build":"node build.mjs","start":"node dist/index.js"},"_npmUser":{"name":"ezpzfile","email":"hello@ezpzfile.com"},"repository":{"url":"git+https://github.com/ezpzfile/ezpzfile-mcp.git","type":"git","directory":"mcp"},"_npmVersion":"10.9.8","description":"File tools for AI agents. Read and convert documents (HWP, HWPX, DOCX, PDF, EML), edit PDFs, resize, clean and cut out images, make QR codes. Runs locally, no upload.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.6.2","xlsx":"^0.18.5","sharp":"^0.35.4","fflate":"^0.8.3","pdfkit":"^0.20.2","chardet":"^2.2.0","fontkit":"^2.0.4","mammoth":"^1.12.2","pdf-lib":"^1.17.1","linkedom":"^0.18.0","pdfjs-dist":"^6.3.289","postal-mime":"^3.0.0","@napi-rs/canvas":"^1.0.9","qrcode-generator":"^2.0.4","@jspawn/qpdf-wasm":"^0.0.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"rolldown":"^1.2.4","onnxruntime-web":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/ezpzfile-mcp_0.3.1_1789202184768_0.023717103266380546","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"ezpzfile-mcp","version":"0.3.2","keywords":["mcp","model-context-protocol","hwp","hwpx","pdf","korean","converter","claude","ai-agent","docx","image","resize","qr","xlsx","background-removal"],"license":"MIT","_id":"ezpzfile-mcp@0.3.2","maintainers":[{"name":"ezpzfile","email":"hello@ezpzfile.com"}],"homepage":"https://ezpzfile.com/mcp","bugs":{"url":"https://github.com/ezpzfile/ezpzfile-mcp/issues"},"bin":{"ezpzfile-mcp":"dist/index.js"},"dist":{"shasum":"e30f0b0ecfe520cf5ad85a266e193e7e54705dcc","tarball":"https://registry.npmjs.org/ezpzfile-mcp/-/ezpzfile-mcp-0.3.2.tgz","fileCount":12,"integrity":"sha512-nzo85yGL8sOrjpG2RhwKazO3tzYkSVVgdiIT7C0BlxksXpPn5si23X57+Pl0yGpVIrD5/au6co9dvrNpZalDlw==","signatures":[{"sig":"MEUCIQDawJzglvTpM+Z0LUGqXqZfunlyfUtQiJfHe5nn64bgRQIgQOXSkAb2epjE2ZF5blYlKJdX/Ig5Lvf+5T/Vuh6XO+o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18407950},"type":"module","engines":{"node":">=20"},"gitHead":"29e9c0c7b86999c5cb0cb1c3f1fc3b63671244c8","mcpName":"io.github.ezpzfile/ezpzfile","scripts":{"build":"node build.mjs","start":"node dist/index.js"},"_npmUser":{"name":"ezpzfile","email":"hello@ezpzfile.com"},"repository":{"url":"git+https://github.com/ezpzfile/ezpzfile-mcp.git","type":"git","directory":"mcp"},"_npmVersion":"10.9.8","description":"File tools for AI agents. Read and convert documents (HWP, HWPX, DOCX, PDF, EML), edit PDFs, resize, clean and cut out images, make QR codes. Runs locally, no upload.","directories":{},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.6.2","xlsx":"^0.18.5","sharp":"^0.35.4","fflate":"^0.8.3","pdfkit":"^0.20.2","chardet":"^2.2.0","fontkit":"^2.0.4","mammoth":"^1.12.2","pdf-lib":"^1.17.1","linkedom":"^0.18.0","pdfjs-dist":"^6.3.289","postal-mime":"^3.0.0","@napi-rs/canvas":"^1.0.9","qrcode-generator":"^2.0.4","@jspawn/qpdf-wasm":"^0.0.2","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"rolldown":"^1.2.4","onnxruntime-web":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/ezpzfile-mcp_0.3.2_1789211890364_0.8924300421615945","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"ezpzfile-mcp","version":"0.3.3","mcpName":"io.github.ezpzfile/ezpzfile","description":"File tools for AI agents. Read and convert documents (DOCX, PDF, HWP, HWPX, EML), edit PDFs, resize, clean and cut out images, make QR codes. Runs locally, no upload.","keywords":["mcp","model-context-protocol","hwp","hwpx","pdf","korean","converter","claude","ai-agent","docx","image","resize","qr","xlsx","background-removal"],"homepage":"https://ezpzfile.com/mcp","repository":{"type":"git","url":"git+https://github.com/ezpzfile/ezpzfile-mcp.git","directory":"mcp"},"bugs":{"url":"https://github.com/ezpzfile/ezpzfile-mcp/issues"},"type":"module","bin":{"ezpzfile-mcp":"dist/index.js"},"scripts":{"build":"node build.mjs","start":"node dist/index.js"},"license":"MIT","dependencies":{"@jspawn/qpdf-wasm":"^0.0.2","@modelcontextprotocol/sdk":"^1.0.0","@napi-rs/canvas":"^1.0.9","chardet":"^2.2.0","fflate":"^0.8.3","fontkit":"^2.0.4","linkedom":"^0.18.0","mammoth":"^1.12.2","pdf-lib":"^1.17.1","pdfjs-dist":"^6.3.289","pdfkit":"^0.20.2","postal-mime":"^3.0.0","qrcode-generator":"^2.0.4","sharp":"^0.35.4","xlsx":"^0.18.5","zod":"^4.6.2"},"devDependencies":{"rolldown":"^1.2.4","onnxruntime-web":"^1.29.0"},"engines":{"node":">=22.13.0"},"_id":"ezpzfile-mcp@0.3.3","gitHead":"aa5b6a1140773340f32648816f7bd37b163762dc","_nodeVersion":"22.23.0","_npmVersion":"10.9.8","dist":{"integrity":"sha512-bROJm5TcE1ys/I83WxFWNFKiCoBk0CTZWzjCsyal0/5AjUwE3i8nheOUOZXz4TNEkBTaNFBBX1vjeXIX0u56UQ==","shasum":"1e248d1d1baa2fa47ac267fd56455b0c2424fa91","tarball":"https://registry.npmjs.org/ezpzfile-mcp/-/ezpzfile-mcp-0.3.3.tgz","fileCount":12,"unpackedSize":18407960,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGc+YTjUYbzTM+7NNe3lzr8Zt5v46C6t9bhBxz+1M1PgAiEAmCONgZxyub1MXmA9662aWBSb33SLPogDLQMYMoOp6nw="}]},"_npmUser":{"name":"ezpzfile","email":"hello@ezpzfile.com"},"directories":{},"maintainers":[{"name":"ezpzfile","email":"hello@ezpzfile.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ezpzfile-mcp_0.3.3_1789214034631_0.5167911983377291"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-12T03:35:04.941Z","modified":"2026-09-12T11:53:55.016Z","0.2.0":"2026-09-12T03:35:05.370Z","0.2.1":"2026-09-12T04:54:18.812Z","0.3.0":"2026-09-12T06:09:50.440Z","0.3.1":"2026-09-12T08:36:25.022Z","0.3.2":"2026-09-12T11:18:10.649Z","0.3.3":"2026-09-12T11:53:54.886Z"},"bugs":{"url":"https://github.com/ezpzfile/ezpzfile-mcp/issues"},"license":"MIT","homepage":"https://ezpzfile.com/mcp","keywords":["mcp","model-context-protocol","hwp","hwpx","pdf","korean","converter","claude","ai-agent","docx","image","resize","qr","xlsx","background-removal"],"repository":{"type":"git","url":"git+https://github.com/ezpzfile/ezpzfile-mcp.git","directory":"mcp"},"description":"File tools for AI agents. Read and convert documents (DOCX, PDF, HWP, HWPX, EML), edit PDFs, resize, clean and cut out images, make QR codes. Runs locally, no upload.","maintainers":[{"name":"ezpzfile","email":"hello@ezpzfile.com"}],"readme":"# ezpzfile-mcp\n\nFile tools for AI agents. Read and convert documents, edit PDFs, resize and clean\nimages, cut out backgrounds and make QR codes. Everything runs on your machine and nothing\nis uploaded.\n\nAgents burn tokens re-solving the same small problem: write file-handling code, run it,\ndebug it, open the output to check it worked. This server turns that loop into one\ntool call.\n\nKorean HWP and HWPX are handled too, with no Hancom Office and no Windows. That is the\npart nothing else does locally, but it is one capability here, not the point.\n\n```bash\nclaude mcp add ezpzfile -- npx -y ezpzfile-mcp\n```\n\n## Install\n\n### Claude Code\n\n```bash\nclaude mcp add ezpzfile -- npx -y ezpzfile-mcp\n```\n\n### Claude Desktop\n\n`claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/`,\nWindows: `%APPDATA%\\Claude\\`):\n\n```json\n{\n  \"mcpServers\": {\n    \"ezpzfile\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ezpzfile-mcp\"]\n    }\n  }\n}\n```\n\n### Cursor\n\n`~/.cursor/mcp.json`, or `.cursor/mcp.json` inside a project:\n\n```json\n{\n  \"mcpServers\": {\n    \"ezpzfile\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ezpzfile-mcp\"]\n    }\n  }\n}\n```\n\n### VS Code\n\n```bash\ncode --add-mcp '{\"name\":\"ezpzfile\",\"command\":\"npx\",\"args\":[\"-y\",\"ezpzfile-mcp\"]}'\n```\n\nNode 22.13 or newer. The first run downloads the package including the document engine\nand fonts (about 18MB) plus native image and PDF libraries for your platform, after that\nnpx serves it from cache.\n\n## Tools\n\nSix tools, not twenty five. Tool definitions sit in the model's context every session,\nso a long list would eat the tokens this server is meant to save. New capabilities\nare added as another value of `op` or `to`, not as another tool.\n\n| Tool | What it does |\n| --- | --- |\n| `doc_read` | Text of a DOCX, PDF, HWP, HWPX or EML file. `format: markdown` keeps DOCX headings, lists and tables. |\n| `doc_convert` | PDF pages to `jpg` or `png`. Images to `pdf`. XLSX/CSV to `csv` or `json`. HWP/HWPX to `pdf`, `hwp`, `hwpx`. |\n| `pdf_edit` | `merge`, `extract`, `delete`, `rotate`, `reorder`, `split`, `compress`, `protect`, `unlock`. |\n| `pdf_info` | Page count, page sizes, encryption flag, document metadata. |\n| `image_edit` | Resize, compress, convert, strip EXIF and GPS, or cut out the background.  |\n| `qr_make` | QR code as PNG or SVG. |\n\nEvery tool takes absolute paths and returns the path it wrote.\n\n### Verification is built in\n\nEach tool reopens what it made and reports the numbers, so a silently broken file\nshows up as a number instead of as a surprise later:\n\n- `doc_convert` compares the page count of the output against the source and counts\n  characters the bundled fonts had no glyph for.\n- `image_edit` returns the real width, height and byte size of the output.\n- `pdf_edit compress` returns bytes before and after, and copies the file unchanged\n  when qpdf could not make it smaller.\n  because their names tried to escape the target folder.\n\n```\n/Users/me/report.pdf\n9 pages · no loss reported · reopened, page count matches\n```\n\n### Passwords\n\nPass `password` for encrypted PDF, HWP and HWPX files. `pdf_edit protect` sets an\nAES-256 password, `unlock` removes one you know. Converting an encrypted HWP or HWPX\nkeeps the password on the output file.\n\n## Examples\n\n```\nRead ~/Downloads/notice.hwp and summarize it.\nConvert ~/Downloads/notice.hwp to PDF.\nMerge chapter1.pdf and chapter2.pdf, then rotate page 3 by 90 degrees.\nSplit thesis.pdf at pages 12 and 40 into three files.\nRender page 1 of brochure.pdf as a PNG at 200 dpi.\nTurn sales.xlsx into JSON, sheet \"2026\".\nResize banner.png to 1200 wide as WebP.\nStrip the EXIF data from every photo in ~/Pictures/trip.\nMake a QR code for https://example.com as qr.svg.\n```\n\n## Background removal\n\n`image_edit` with `op: \"remove_background\"` runs U²-Net on your machine and\nwrites a PNG with the subject on transparency, or on a colour if you pass\n`background`.\n\nThe model (4.4MB) and the onnxruntime wasm (14MB) are downloaded the first time\nyou ask for a cut-out and cached under `~/.cache/ezpzfile-mcp` after that. They\nare not in the package: most sessions never need them, and putting 18MB into\nevery `npx` would be a poor trade. This is the only operation that touches the\nnetwork, and it sends nothing: the model travels to your photo, not the other\nway round.\n\nSet `EZPZFILE_CACHE` to move the cache elsewhere.\n\n## What it does not do\n\n- HWP 3.0 and older binary formats are not readable.\n- Editing HWP content is out of scope. This converts and reads, it does not author.\n- Fonts are the ones bundled for CJK output. A document built on a font you do not\n  have will be rendered with a substitute.\n- Scanned PDFs have no text layer. `doc_read` tells you which pages came back empty\n  instead of guessing.\n- Archives are out of scope. An agent already has `unzip` and `tar` in its shell, so a\n  tool definition spent on them would cost context without buying anything. Use\n  ezpzfile.com when an archive has file names that arrive garbled.\n\n## Privacy\n\nNo network calls. No telemetry. Files are read from and written to the paths you\ngive, and nothing else leaves the machine. The same engine runs in the browser at\n[ezpzfile.com](https://ezpzfile.com) if you would rather click than prompt.\n\n## Build from source\n\n```bash\ncd mcp\nnpm install\nnpm run build   # bundles to dist/ and copies the engine and fonts into vendor/\nnode dist/index.js\n\nnode test/protocol.mjs /path/to/sample/files   # spawns the server over stdio and calls every tool\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}