Skip to main content
Glama

hwp-mcp

Un servidor que permite a las IAs compatibles con MCP, como Claude, Cursor o ChatGPT, leer, modificar y crear nuevos documentos de Hangul (.hwp / .hwpx).

npm version npm downloads Built on rhwp License: MIT GitHub release

hwp-mcp es un servidor MCP (Model Context Protocol) que permite a los agentes de IA manejar directamente documentos de Hancom Office. No solo permite la lectura, sino también la modificación de texto, el relleno de plantillas y la creación de nuevos documentos.

¿Qué es este proyecto?

Este proyecto se divide en dos partes:

  • 🔧 Lo que hizo rhwp (motor principal)rhwp de Edward Kim es un motor de código abierto implementado en Rust + WebAssembly que ha descifrado mediante ingeniería inversa los formatos cerrados de Hangul (HWP 5.0 binario, HWPX/OWPML). El análisis, la extracción de tablas, imágenes, fórmulas y encabezados, la renderización SVG y la API de campos compatibles con Hancom: todas estas capacidades principales son proporcionadas por rhwp. Sin rhwp, este proyecto no existiría.

  • 🤝 Lo que hizo hwp-mcp (adaptador de agente) — Una capa de servidor MCP ligera construida sobre @rhwp/core. Lo que hemos añadido es:

    • Firmas de herramientas amigables para agentes como read_hwp, fill_hwp_template, replace_hwp_text, para que los LLM como Claude/Cursor puedan invocarlas en lenguaje natural.

    • Un recorredor (traversal walker) centrado en escenarios que vuelca el cuerpo, tablas, imágenes, encabezados, pies de página, notas al pie y fórmulas de una sola vez.

    • Una capa de facilidad de uso para el manejo automático de combinación de celdas de tablas, consolidación automática de notas al pie/fórmulas.

    • Una capa de mutación a nivel de ZIP de .hwpx para eludir las limitaciones de round-trip de exportHwpx de rhwp 0.7.7 (la clave para hacer posible la escritura real).

    • Paquete npm hwp-mcp (instalación en una línea) + bootstrap de Node.js WASM.

Resumen: Un adaptador que permite a la IA leer y escribir documentos de Hangul de verdad. Por favor, envíe su agradecimiento por todas las capacidades de Hangul de código abierto al proyecto rhwp 🙏


Related MCP server: HWP-MCP

Instalación

Claude Code

claude mcp add hwp-mcp -- npx -y hwp-mcp

Claude Desktop / Cursor / VS Code (settings JSON)

{
  "mcpServers": {
    "hwp-mcp": {
      "command": "npx",
      "args": ["-y", "hwp-mcp"]
    }
  }
}

Requiere Node.js 20 o superior.


Lista de herramientas

Estas son las 34 herramientas MCP expuestas por hwp-mcp v0.2. La lectura/renderizado es compatible con .hwp/.hwpx, la escritura es exclusiva para .hwpx.

Lectura (5)

Herramienta

.hwp

.hwpx

Descripción

read_hwp

Cuerpo + tablas (markdown) + lista de imágenes de una vez

read_hwp_text

Texto integrado de cuerpo + encabezados + pies de página + notas al pie + fórmulas

read_hwp_tables

Tablas a GitHub Markdown (manejo de combinación de celdas)

list_hwp_images

Lista de imágenes incrustadas (mime, bytes)

extract_hwp_images

Extraer imágenes al disco

Meta / Consulta (5)

Herramienta

.hwp

.hwpx

Descripción

get_hwp_info

Estadísticas de versión, páginas, fuentes, tablas/imágenes/notas al pie/fórmulas

get_hwp_page_def

Tamaño de papel, márgenes, columnas, márgenes de encabezado/pie por sección

list_hwp_fields

Lista de campos de Hancom

get_hwp_field_value

Consultar valor de campo

list_hwp_bindata

Lista de entradas BinData/ de .hwpx

Renderizado visual (4)

Herramienta

.hwp

.hwpx

Descripción

render_hwp_page

Página específica → SVG (inline/archivo)

render_hwp_all_pages

SVG de todas las páginas en lote

render_hwp_html

Página → HTML

render_hwp_equation_svg

Script de fórmula OWPML → SVG

Escritura — Texto (5)

Herramienta

.hwpx

Descripción

replace_hwp_text

Buscar y reemplazar una cadena específica

fill_hwp_template

Múltiples marcadores de posición como {{nombre}}

set_hwp_paragraph_text

Reemplazar completamente el texto del N-ésimo párrafo

set_hwp_cell_text

Establecer directamente el texto de una celda de tabla (fila, columna)

set_hwp_field_value

Establecer valor de campo

Escritura — Estructura (9)

Herramienta

.hwpx

Descripción

append_hwp_paragraph

Nuevo párrafo al final del cuerpo

delete_hwp_paragraph

Eliminar el N-ésimo párrafo

append_hwp_table_row

Nueva fila al final de la tabla

delete_hwp_table_row

Eliminar fila de tabla

append_hwp_table_column

Nueva columna al final de la tabla (en todas las filas)

delete_hwp_table_column

Eliminar columna de tabla

merge_hwp_cells_horizontal

Combinar celdas horizontalmente (colSpan)

merge_hwp_cells_vertical

Combinar celdas verticalmente (rowSpan)

replace_hwp_image

Reemplazar imagen incrustada

Escritura — Formato (2)

Herramienta

.hwpx

Descripción

apply_hwp_text_style

Color de fuente, negrita, cursiva, subrayado, tamaño (añadir charPr)

apply_hwp_paragraph_style

Alineación de párrafo, sangría, interlineado (añadir paraPr)

Escritura — Imágenes / Tablas / Nuevo (4)

Herramienta

.hwpx

Descripción

insert_hwp_image

Añadir nueva imagen (BinData + manifiesto + <hp:pic>)

delete_hwp_image

Eliminar entrada BinData/

insert_hwp_table

⚠️

Insertar nueva tabla OWPML (experimental — archivo válido, reconocimiento de rhwp incompleto)

create_hwpx_document

Crear nuevo .hwpx con texto

Matriz de extracción de contenido

Contenido

Extracción

Notas

Texto de párrafo del cuerpo

read_hwp_text, read_hwp

Tablas (incluyendo combinación)

read_hwp_tables como markdown

Imágenes incrustadas

Extracción de PNG/JPG/BMP, etc.

Encabezados / Pies de página

Bloques --- headers --- / --- footers --- en el resultado de read_hwp_text

Notas al pie (footnote)

Bloque --- footnotes --- al final del resultado, formato [1] cuerpo…

Fórmulas (equation)

Formato de script OWPML (ej: TIMES LEFT ( {a} over {b} RIGHT )), bloque --- equations ---

Renderizado SVG de página

render_hwp_page

Cuerpo de cuadro de texto

createShapeControl de rhwp lo crea, pero el patrón de retorno getTextBoxControlIndex no es explícito — rastreo en v0.3

Notas al final (endnote)

No soportado por rhwp (solo footnote)

Gráficos (chart)

Después de v0.3

Matriz de escritura

Tarea

.hwp

.hwpx

Notas

Reemplazo único de texto

replace_hwp_text

Relleno de múltiples marcadores

fill_hwp_template

Reemplazo total de texto de párrafo

set_hwp_paragraph_text

Modificación directa de celda de tabla

set_hwp_cell_text (especificar fila/columna)

Establecer valor de campo

set_hwp_field_value

Añadir / eliminar nuevo párrafo

append_hwp_paragraph / delete_hwp_paragraph

Añadir / eliminar fila de tabla

append_hwp_table_row / delete_hwp_table_row

Reemplazar / eliminar imagen

replace_hwp_image / delete_hwp_image

Crear nuevo documento (texto)

create_hwpx_document

Crear nuevo documento (tabla)

⚠️

Aplanado a filas de texto (tabla OWPML real en v0.3)

Insertar nueva imagen

insert_hwp_image

Añadir / eliminar columna de tabla

append_hwp_table_column / delete_hwp_table_column

Combinar celdas (horizontal/vertical)

merge_hwp_cells_horizontal / merge_hwp_cells_vertical

Formato de texto (color/negrita/cursiva/subrayado/tamaño)

apply_hwp_text_style

Formato de párrafo (alineación/sangría/interlineado)

apply_hwp_paragraph_style

Insertar nueva tabla (OWPML real)

⚠️

insert_hwp_table (experimental)

Nueva inserción de encabezado/pie

v0.3

Definición de gráficos/marcadores/estilos

v0.3

La escritura binaria de .hwp no es compatible en v0.2 debido a las limitaciones de round-trip de exportHwp de rhwp 0.7.7. Por favor, guarde como .hwpx en Hancom Office antes de usar las herramientas de escritura, o espere al lanzamiento de v0.3.


Ejemplos de uso

Leer documentos gubernamentales de Hangul

나: /Users/me/2026년_시행계획.hwpx 읽어줘

AI: # 2026년_시행계획.hwpx
    형식: .HWPX | 문단: 153개 | 표: 15개 | 이미지: 2개

    Ⅰ. 추진 배경
    □ (글로벌 현황) 전세계 AI 솔루션 시장 규모는 ...

    ### 표 9 (7행 x 4열)
    | 도메인 | 입력 데이터 | 학습 내용 | 산업AI 솔루션 적용 기능 예시 |
    | --- | --- | --- | --- |
    | 기계 | · 센서 데이터 로그 ... | ... | ... |

Rellenar plantillas

나: /path/to/form.hwpx 에서 {{이름}}=남대현, {{회사}}=포텐랩 으로 채워줘

AI: 저장 완료 (saved): form_filled.hwpx
    총 2건 치환 (2 replacements)
      '{{이름}}' → 1건
      '{{회사}}' → 1건

Reemplazo de texto

나: /path/to/doc.hwpx 의 "산업AI" 를 "산업-AI" 로 바꿔줘

AI: '산업AI' → '산업-AI': 18건 교체 (replaced 18)
    저장 (saved): doc_modified.hwpx

Crear un nuevo .hwpx

나: employees.hwpx 에 "사원 명부" 와 "두 번째 줄" 두 줄을 가진 문서 만들어줘

AI: HWPX 문서 생성 완료 (created): employees.hwpx

Extracción de imágenes

나: /path/to/document.hwpx 에서 이미지 빼줘

AI: 이미지 2개를 추출했습니다 (extracted 2 images):
    저장 위치: /path/to/document_images
      - image_001.bmp
      - image_002.bmp

Renderizar página a SVG (para análisis visual)

나: /path/to/document.hwpx 의 첫 페이지를 SVG로 보여줘

AI: <svg xmlns="..." width="793" height="1122" viewBox="...">
    <defs>...</defs>
    ...
    </svg>

O guardar en disco:

나: /path/to/document.hwpx 모든 페이지 SVG로 저장해줘

AI: 9/9 페이지 SVG 저장 (rendered 9/9 pages):
    저장 위치: /path/to/document_pages
      - page_001.svg
      - page_002.svg ...

Limitaciones

Limitaciones conocidas de hwp-mcp v0.2:

  • Escritura de .hwp no soportada — La lectura funciona tanto para .hwp como para .hwpx. La escritura es solo para .hwpx. Si se llama a una herramienta de escritura para una entrada .hwp, devolverá un mensaje de error claro. Por favor, guarde como .hwpx en Hancom Office antes de usar, o espere al lanzamiento de v0.3.

  • Rechazo de guardado entre formatos — La entrada .hwpx solo se guarda como .hwpx.

  • Extracción de encabezados/pies de página/notas al pie posible, cuadros de texto/notas al final/fórmulas en v0.3 — En el resultado de read_hwp_text, los encabezados se marcan como --- headers ---, los pies de página como --- footers --- y las notas al pie como bloques --- footnotes ---. La extracción de cuerpo de cuadros de texto, notas al final y fórmulas está prevista para v0.3.

  • No hay coincidencia si el término de búsqueda abarca dos nodos de texto — Ej: Si un <hp:t> termina en "indus" y el siguiente comienza en "trial", "industrial" no coincidirá. Es la misma limitación que hwpctl de Hancom.

  • Las tablas de create_hwpx_document se aplanan a filas de texto en v0.2 — Las tablas OWPML reales estarán en v0.3.


¿Cómo funciona?

  • Lectura: @rhwp/core (el analizador Rust+WASM de rhwp) recorre secciones, párrafos, tablas (incluyendo celdas combinadas) e imágenes.

  • Escritura (.hwpx): Analiza directamente Contents/section*.xml dentro del archivo ZIP, busca/reemplaza el nodo de texto <hp:t> y luego vuelve a empaquetar (el mimetype se almacena según la especificación). Es una capa para eludir el problema de round-trip de exportHwpx() de rhwp.

  • Nuevo documento: Se crea con createBlankDocument + insertText de rhwp y luego se guarda con exportHwpx (el round-trip de texto es estable).

Créditos

rhwp (@edwardkim) — Analizador principal, renderizador, API de campos. Todo el trabajo de abrir el formato cerrado de Hangul es la base de este proyecto. Si puede, por favor apoye también ese proyecto: https://github.com/edwardkim/rhwp

hwp-mcp — Un adaptador MCP ligero sobre rhwp que permite a los agentes de IA invocarlo en lenguaje natural. Todas las capacidades principales son de rhwp, nosotros somos el cableado que lo conecta al LLM.

Cobertura

Área

Cobertura

Lectura/Extracción

~90%

Renderizado

~85% (SVG · HTML · SVG de fórmula · Canvas excluido por ser para navegador)

Escritura — Texto

~95%

Escritura — Estructura

~90% (4 tipos: fila, columna, combinación, imagen)

Escritura — Formato

~70% (fuente + párrafo)

Meta / Campos

~85%

Ponderado total

~85%

Grandes elementos restantes para v0.3: escritura binaria de .hwp, gráficos, definición/aplicación de estilos, extracción de cuerpo de cuadros de texto, 30 acciones de hwpctl (excluidas intencionalmente).

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.

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
4wRelease cycle
2Releases (12mo)
Commit activity

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

  • F
    license
    A
    quality
    D
    maintenance
    An 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
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    An 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.
  • A
    license
    Not graded
    quality
    D
    maintenance
    An 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.
    67
    MIT

View all related MCP servers

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…

View all MCP Connectors

Latest Blog Posts

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