hwp-mcp
hwp-mcp
Ein Server, der es MCP-kompatiblen KIs wie Claude, Cursor oder ChatGPT ermöglicht, Hangul-Dokumente (.hwp / .hwpx) zu lesen, zu bearbeiten und neu zu erstellen.
hwp-mcp ist ein MCP-Server (Model Context Protocol), der es KI-Agenten ermöglicht, Hancom Office-Dokumente direkt zu verarbeiten. Neben dem Lesen sind auch Textbearbeitung, das Ausfüllen von Vorlagen und die Erstellung neuer Dokumente möglich.
Was ist das für ein Projekt?
Dieses Projekt besteht aus zwei Teilen:
🔧 Was rhwp geleistet hat (Kern-Engine) — Edward Kims rhwp ist eine Open-Source-Engine, die das geschlossene Hangul-Format (HWP 5.0 binary, HWPX/OWPML) durch Reverse Engineering entschlüsselt und in Rust + WebAssembly implementiert hat. Parsing, Extraktion von Tabellen, Bildern, Formeln und Kopfzeilen, SVG-Rendering sowie die Hancom-kompatible Field API — all diese Kernfähigkeiten werden von rhwp bereitgestellt. Ohne rhwp gäbe es dieses Projekt nicht.
🤝 Was
hwp-mcpgeleistet hat (Agenten-Adapter) — Eine schlanke MCP-Server-Schicht, die auf@rhwp/coreaufbaut. Wir haben Folgendes hinzugefügt:Agentenfreundliche Tool-Signaturen wie
read_hwp,fill_hwp_templateundreplace_hwp_text, damit LLMs wie Claude/Cursor diese in natürlicher Sprache aufrufen können.Einen szenariobasierten Traversal-Walker, der Text, Tabellen, Bilder, Kopf-/Fußzeilen, Fußnoten und Formeln auf einmal ausgibt.
Eine benutzerfreundliche Schicht für die automatische Verarbeitung von Tabellenzellenzusammenführungen und die Zusammenführung von Fußnoten/Formeln.
Eine
.hwpxZIP-Ebenen-Mutationsschicht, um die Einschränkungen desexportHwpx-Roundtrips von rhwp 0.7.7 zu umgehen (der Kern, der das Schreiben erst ermöglicht).Das npm-Paket
hwp-mcp(Installation mit einem Befehl) + Node.js WASM-Bootstrap.
Zusammenfassend: Ein Adapter, der es KIs ermöglicht, Hangul-Dokumente tatsächlich zu lesen und zu schreiben. Bitte richten Sie Ihren Dank für die Hangul-Fähigkeiten an das rhwp-Projekt 🙏
Related MCP server: HWP-MCP
Installation
Claude Code
claude mcp add hwp-mcp -- npx -y hwp-mcpClaude Desktop / Cursor / VS Code (settings JSON)
{
"mcpServers": {
"hwp-mcp": {
"command": "npx",
"args": ["-y", "hwp-mcp"]
}
}
}Node.js 20 oder höher erforderlich.
Tool-Liste
Dies sind die 34 MCP-Tools, die hwp-mcp v0.2 bereitstellt. Lesen/Rendern unterstützt sowohl .hwp als auch .hwpx, das Schreiben ist auf .hwpx beschränkt.
Lesen (5)
Tool |
|
| Beschreibung |
| ✅ | ✅ | Text + Tabellen (Markdown) + Bildliste auf einmal |
| ✅ | ✅ | Integrierter Text aus Hauptteil, Kopf-/Fußzeilen, Fußnoten, Formeln |
| ✅ | ✅ | Tabellen als GitHub-Markdown (mit Zellenzusammenführung) |
| ✅ | ✅ | Liste eingebetteter Bilder (Mime, Bytes) |
| ✅ | ✅ | Bilder auf die Festplatte extrahieren |
Meta / Abfrage (5)
Tool |
|
| Beschreibung |
| ✅ | ✅ | Version, Seiten, Schriftarten, Statistiken zu Tabellen/Bildern/Fußnoten/Formeln |
| ✅ | ✅ | Papiergröße, Ränder, Spalten, Kopf-/Fußzeilen-Abstände pro Abschnitt |
| ✅ | ✅ | Liste der Hancom-Felder |
| ✅ | ✅ | Feldwert abfragen |
| – | ✅ | Liste der |
Visuelles Rendering (4)
Tool |
|
| Beschreibung |
| ✅ | ✅ | Bestimmte Seite → SVG (Inline/Datei) |
| ✅ | ✅ | Alle Seiten als SVG |
| ✅ | ✅ | Seite → HTML |
| – | – | OWPML-Formel-Skript → SVG |
Schreiben — Text (5)
Tool |
| Beschreibung |
| ✅ | Bestimmte Zeichenfolge suchen und ersetzen |
| ✅ | Mehrere Platzhalter wie |
| ✅ | Text des N-ten Absatzes komplett ersetzen |
| ✅ | Text einer Tabellenzelle (Zeile, Spalte) direkt setzen |
| ✅ | Feldwert setzen |
Schreiben — Struktur (9)
Tool |
| Beschreibung |
| ✅ | Neuer Absatz am Ende des Dokuments |
| ✅ | N-ten Absatz löschen |
| ✅ | Neue Zeile am Ende der Tabelle |
| ✅ | Tabellenzeile löschen |
| ✅ | Neue Spalte am Ende der Tabelle (in allen Zeilen) |
| ✅ | Tabellenspalte löschen |
| ✅ | Horizontale Zellenzusammenführung (colSpan) |
| ✅ | Vertikale Zellenzusammenführung (rowSpan) |
| ✅ | Eingebettetes Bild ersetzen |
Schreiben — Formatierung (2)
Tool |
| Beschreibung |
| ✅ | Schriftfarbe, Fett, Kursiv, Unterstrichen, Größe (charPr hinzufügen) |
| ✅ | Absatzausrichtung, Einzug, Zeilenabstand (paraPr hinzufügen) |
Schreiben — Bilder / Tabellen / Neu (4)
Tool |
| Beschreibung |
| ✅ | Neues Bild hinzufügen (BinData + Manifest + |
| ✅ | BinData/-Eintrag löschen |
| ⚠️ | Neue OWPML-Tabelle einfügen (experimentell — Datei valide, rhwp-Erkennung unvollständig) |
| ✅ | Neues |
Inhalts-Extraktionsmatrix
Inhalt | Extraktion | Anmerkung |
Text der Absätze | ✅ |
|
Tabellen (inkl. Zusammenführung) | ✅ |
|
Eingebettete Bilder | ✅ | PNG/JPG/BMP etc. extrahieren |
Kopf-/Fußzeilen | ✅ |
|
Fußnoten | ✅ |
|
Formeln | ✅ | OWPML-Skript-Format (z.B. |
Seiten-SVG-Rendering | ✅ |
|
Textbox-Inhalt | ❌ | rhwp erstellt |
Endnoten | – | Von rhwp selbst nicht unterstützt (nur Fußnoten) |
Diagramme | ❌ | Ab v0.3 |
Schreibmatrix
Aufgabe |
|
| Anmerkung |
Einzelner Textersatz | ❌ | ✅ |
|
Mehrere Platzhalter ausfüllen | ❌ | ✅ |
|
Absatztext komplett ersetzen | ❌ | ✅ |
|
Tabellenzelle direkt bearbeiten | ❌ | ✅ |
|
Feldwert setzen | ❌ | ✅ |
|
Absatz hinzufügen / löschen | ❌ | ✅ |
|
Tabellenzeile hinzufügen / löschen | ❌ | ✅ |
|
Bild ersetzen / löschen | ❌ | ✅ |
|
Neues Dokument erstellen (Text) | – | ✅ |
|
Neues Dokument erstellen (Tabelle) | – | ⚠️ | Als Textzeilen abgeflacht (echte OWPML-Tabelle in v0.3) |
Neues Bild einfügen | ❌ | ✅ |
|
Tabellenspalte hinzufügen / löschen | ❌ | ✅ |
|
Zellenzusammenführung (horiz./vert.) | ❌ | ✅ |
|
Schriftformatierung (Farbe/Fett/Kursiv/Unterstr.) | ❌ | ✅ |
|
Absatzformatierung (Ausrichtung/Einzug/Abstand) | ❌ | ✅ |
|
Neue Tabelle einfügen (echte OWPML) | ❌ | ⚠️ |
|
Kopf-/Fußzeile neu einfügen | ❌ | ❌ | v0.3 |
Diagramme/Lesezeichen/Stil-Definitionen | ❌ | ❌ | v0.3 |
Das Schreiben von
.hwp-Binärdateien wird in v0.2 aufgrund der Einschränkungen desexportHwp-Roundtrips von rhwp 0.7.7 nicht unterstützt. Bitte speichern Sie die Datei in Hancom Office als.hwpxunter einem anderen Namen, bevor Sie die Schreib-Tools verwenden, oder warten Sie auf das Release v0.3.
Anwendungsbeispiele
Regierungs-Hangul-Dokument lesen
나: /Users/me/2026년_시행계획.hwpx 읽어줘
AI: # 2026년_시행계획.hwpx
형식: .HWPX | 문단: 153개 | 표: 15개 | 이미지: 2개
Ⅰ. 추진 배경
□ (글로벌 현황) 전세계 AI 솔루션 시장 규모는 ...
### 표 9 (7행 x 4열)
| 도메인 | 입력 데이터 | 학습 내용 | 산업AI 솔루션 적용 기능 예시 |
| --- | --- | --- | --- |
| 기계 | · 센서 데이터 로그 ... | ... | ... |Vorlage ausfüllen
나: /path/to/form.hwpx 에서 {{이름}}=남대현, {{회사}}=포텐랩 으로 채워줘
AI: 저장 완료 (saved): form_filled.hwpx
총 2건 치환 (2 replacements)
'{{이름}}' → 1건
'{{회사}}' → 1건Textersatz
나: /path/to/doc.hwpx 의 "산업AI" 를 "산업-AI" 로 바꿔줘
AI: '산업AI' → '산업-AI': 18건 교체 (replaced 18)
저장 (saved): doc_modified.hwpxNeues .hwpx erstellen
나: employees.hwpx 에 "사원 명부" 와 "두 번째 줄" 두 줄을 가진 문서 만들어줘
AI: HWPX 문서 생성 완료 (created): employees.hwpxBilder extrahieren
나: /path/to/document.hwpx 에서 이미지 빼줘
AI: 이미지 2개를 추출했습니다 (extracted 2 images):
저장 위치: /path/to/document_images
- image_001.bmp
- image_002.bmpSeite als SVG rendern (zur visuellen Analyse)
나: /path/to/document.hwpx 의 첫 페이지를 SVG로 보여줘
AI: <svg xmlns="..." width="793" height="1122" viewBox="...">
<defs>...</defs>
...
</svg>Oder auf Festplatte speichern:
나: /path/to/document.hwpx 모든 페이지 SVG로 저장해줘
AI: 9/9 페이지 SVG 저장 (rendered 9/9 pages):
저장 위치: /path/to/document_pages
- page_001.svg
- page_002.svg ...Einschränkungen
Bekannte Einschränkungen von hwp-mcp v0.2:
Kein Schreiben von
.hwp— Lesen funktioniert für.hwp/.hwpx. Schreiben nur für.hwpx. Wenn Schreib-Tools für.hwp-Eingaben aufgerufen werden, wird eine klare Fehlermeldung zurückgegeben. Bitte als.hwpxspeichern oder auf v0.3 warten.Kein Cross-Format-Speichern —
.hwpx-Eingaben werden nur als.hwpxgespeichert.Kopf-/Fußzeilen/Fußnoten extrahierbar, Textboxen/Endnoten/Formeln in v0.3 — Im Ergebnis von
read_hwp_textwerden Kopfzeilen als--- headers ---, Fußzeilen als--- footers ---und Fußnoten als--- footnotes ---Blöcke angezeigt. Extraktion von Textboxen, Endnoten und Formeln ist für v0.3 geplant.Kein Matching, wenn Suchbegriff über zwei Textknoten verteilt ist — Beispiel: Wenn ein
<hp:t>mit "Industrie" endet und das nächste mit "AI" beginnt, wird "IndustrieAI" nicht gefunden. Dies ist die gleiche Einschränkung wie bei Hancoms hwpctl.Tabellen in
create_hwpx_documentsind in v0.2 als Textzeilen abgeflacht — Echte OWPML-Tabellen kommen in v0.3.
Wie funktioniert es?
Lesen:
@rhwp/core(rhwps Rust+WASM-Parser) durchläuft Abschnitte, Absätze, Tabellen (inkl. verbundener Zellen) und Bilder.Schreiben (.hwpx): Die
Contents/section*.xmlinnerhalb des ZIP-Archivs wird direkt geparst, die<hp:t>-Textknoten werden gesucht/ersetzt und dann neu verpackt (Mimetype gemäß Spezifikation gespeichert). Dies ist eine Schicht, um dieexportHwpx()-Roundtrip-Probleme von rhwp zu umgehen.Neues Dokument: Erstellt mit rhwps
createBlankDocument+insertTextund dann mitexportHwpxgespeichert (Text-Roundtrip ist stabil).
Credits
rhwp (@edwardkim) — Kern-Parser, Renderer, Field API. Die gesamte Arbeit, das geschlossene Hangul-Format zu öffnen, ist das Fundament dieses Projekts. Wenn möglich, unterstützen Sie bitte auch dieses Projekt: https://github.com/edwardkim/rhwp
hwp-mcp — Ein schlanker MCP-Adapter, der rhwp in Werkzeuge umwandelt, die von KI-Agenten in natürlicher Sprache aufgerufen werden können. Alle Kernfähigkeiten stammen von rhwp; wir sind lediglich die Verkabelung, die sie mit dem LLM verbindet.
Abdeckung
Bereich | Abdeckung |
Lesen/Extrahieren | ~90% |
Rendering | ~85% (SVG · HTML · Formel-SVG · Canvas ist für Browser, daher ausgeschlossen) |
Schreiben — Text | ~95% |
Schreiben — Struktur | ~90% (Zeilen · Spalten · Zusammenführung · 4 Bildtypen) |
Schreiben — Formatierung | ~70% (Schrift + Absatz) |
Meta / Felder | ~85% |
Gesamtgewichtung | ~85% |
Verbleibende große Punkte für v0.3: .hwp-Binärschreiben, Diagramme, Stil-Definitionen/-Anwendung, Textbox-Inhaltsextraktion, hwpctl 30 Actions (absichtlich ausgeschlossen).
English
hwp-mcp is an MCP server for reading and writing Korean Hangul (.hwp / .hwpx) documents from Claude / Cursor / ChatGPT and any MCP-compatible client. Read works for both formats; write currently supports .hwpx (find/replace, template fill, create new doc) — .hwp write is planned for v0.3. Built on top of rhwp (Rust + WebAssembly HWP engine by Edward Kim, MIT). Install: claude mcp add hwp-mcp -- npx -y hwp-mcp.
License
MIT.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityDmaintenanceAn MCP server that enables LLMs to convert HWP and HWPX documents into Markdown for analysis and processing. It supports document conversion via local file paths or Base64 content across various MCP-compatible clients.2
- FlicenseNot gradedqualityNot gradedmaintenanceAn MCP server that enables AI models to control Hancom Office Hanword (HWP) documents on Windows. It allows for the automated creation, editing, and management of Korean word processor files, including text formatting and table manipulation.
- AlicenseNot gradedqualityDmaintenanceAn MCP server for reading, editing, and creating Hangul Word Processor (.hwpx) files. It enables users to extract text, perform find-and-replace operations, and modify font styles through automated XML patching.67MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for AI-driven editing of HWPX (Korean word processor) documents, providing 132 tools for text, tables, images, and more.MIT
Related MCP Connectors
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/treesoop/hwp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server