kordoc MCP
CLI and MCP server that turn Korean HWP and HWPX, PDF and Office files into Markdown and fill forms from templates
- 2,926 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- The tools create, convert and patch document files on disk
- The server reads any file at a passed path unless `KORDOC_ROOT` is set
- Form filling and stamps affect official papers, so output needs checking
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/kordocDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The tools create, convert and patch document files on disk
- The server reads any file at a passed path unless `KORDOC_ROOT` is set
- Form filling and stamps affect official papers, so output needs checking
This is third-party code. Review the repository files before installing.
What it does
kordoc reads HWP 3.x and 5.x, HWPX, HWPML, PDF, XLS and XLSX, DOCX, PPTX and images, and returns Markdown or structured data. HWP files are parsed directly, so Hancom Office is not needed. Scans go through local OCR, switched on with the `--ocr` flag. It works as a library, a CLI (`npx kordoc document.hwpx -o document.md`) and an MCP server. `npx -y kordoc setup` registers the server in every client it finds: Claude Desktop, Claude Code, Cursor, Codex. After a client restart the agent gets 22 tools for parsing, comparing, generating, reviewing and rendering documents. Beyond reading, it writes: Markdown converts to HWPX using official-document templates, HWP converts to HWPX, form fields fill from JSON, and documents compare block by block and cell by cell. `--format chunks` splits a document into pieces for RAG, and `KORDOC_OFFLINE=1` turns off all outside requests.
Who it is for. For builders of RAG systems and Korean public-sector automation, and for anyone who needs an agent to read an HWP or HWPX file.
Good fit when
- You need an agent to read an HWP or HWPX file that will not open without Hancom Office
- You need Korean PDFs and scans as Markdown with tables and merged cells preserved
- You need the differences between two versions of a document, block by block and cell by cell
- You need forms or official memos filled into HWPX from JSON data
- You need documents split into fragments with a heading path for a RAG index
Not a fit when
- Your documents are only Russian or English in ordinary PDF or DOCX: MarkItDown is enough
- You need layout identical to Hancom for HWPX: the authors' benchmarks show text position deviations
- You need perfect scan recognition: OCR gets table structure wrong at times
Example request
Read report.hwpx, convert it to Markdown and show the tablesMCP
- Transport
- stdio
- Authentication
- not required
Environment variables
KORDOC_OFFLINE- Set to 1 to block all outside requests; OCR runs locally
KORDOC_ROOT- Limits the folders the MCP server can access
Limitations
Node.js 20 or newer is required. PDF and OCR dependencies install by default, and installing with `--omit=optional` limits those features. The main documentation and interface are Korean, with an English README. HWP 5.x converts to HWPX with formatting preserved, other formats vary: on the OCR set table structure matched in 34 of 66 cases. Some quality figures come from the authors' own document sets.
How to disable. Remove the `kordoc` entry from your client's MCP configuration and restart it. Remove the Claude Code plugin through the `/plugin` manager.
FAQ
How do I open an HWP file without Hancom Office?
Run `npx kordoc document.hwp -o document.md`: kordoc reads HWP directly and saves Markdown. Several files convert at once with `npx kordoc *.hwpx -d ./output`.
How do I connect kordoc to Claude Code?
Run `npx -y kordoc setup` and the MCP server appears in every client it finds, Claude Code included. The other route is the plugin: `/plugin marketplace add chrisryugj/kordoc`, then `/plugin install kordoc@kordoc`.
Does kordoc work offline?
Yes. With `KORDOC_OFFLINE=1` outside requests are blocked and OCR runs on the local CPU without an API key. The air-gapped guide is in `docs/offline-deployment.md`.
Can I use kordoc for RAG?
Yes. The `--format chunks` flag outputs structural fragments with a heading path and separate table fragments. `--table-format gfm` returns tables without HTML.
Does kordoc have SDKs for other languages?
Yes, the repository includes Python and Java SDKs.
Discussion
No questions or reviews yet.
Related
MCP serversA skill that reads, creates and edits Korean hwp and hwpx documents from the agent, with no Hancom Office and no conversion
A skill that creates and edits HWPX documents, converts HWP, and builds official letters and reports from a JSON spec
An MCP server on top of pandoc: the agent converts Markdown, HTML, DOCX, LaTeX, EPUB, ODT and other formats into one another
Doc-Ops MCP converts DOCX, Markdown, HTML and PDF between formats and stamps a watermark or QR code onto finished PDFs.
Docling is a CLI for mixed document archives, bringing PDFs, office files and spreadsheets into a shared format for AI search.
Microsoft's utility and MCP server that turn PDF, Word, Excel, PowerPoint, HTML and other files into Markdown for models
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| kordoc (this card) | no | not required | 2,926 | |
| MarkItDown | yes | not required | 194,015 | converts common Office and PDF formats but does not read HWP |
| claw-hwp | no | 214 | a skill for reading and editing HWP and HWPX without a separate MCP server | |
| Docling MCP | yes | not required | 786 | parses PDFs and builds documents on the Docling engine |
README in short
The author, a district-office employee in Seoul, built the tool after seven years of fighting HWP files. The repository includes a library, CLI, MCP server, Python and Java SDKs, a Claude Code plugin and a skill for official documents. It also holds test results on public and own sets plus a version log.