Skip to main content
Glama
airmang

hwpx-mcp-server

by airmang

[!NOTE] Tren de lanzamiento público: python-hwpx 6.2.1 → python-hwpx-automation 7.0.2 → hwpx-plugin 2.0.1 (automation 7.0.2 · plugin 2.0.1 publicados el 2026-08-16, tren de parches de reparación de guardado en Windows — reparación de guardado #98·guía de ruta de subida #75, contrato con core 34a91560759dc47a inmutable). Las coordenadas públicas solo se promocionan tras observar la verdad remota (core·automation en PyPI y plugin en GitHub Release·marketplace·instalación real en marketplace) — runbook de lanzamiento

Capa de aplicación que ofrece creación de documentos, relleno de formularios, maquetación de exámenes y flujos de trabajo de agentes seguros sobre el motor python-hwpx. La instalación básica se usa sin MCP mediante la API de Python y el CLI hwpx; el servidor del Protocolo de Contexto de Modelo (MCP) se añade cuando se necesita con el extra [mcp]. No requiere Hancom Office ni Windows, por lo que funciona incluso dentro de un chat de ChatGPT donde se ejecute Python.

Repositorio

Rol

📦

python-hwpx

Motor Python puro para leer, modificar y crear documentos HWPX

🔌

python-hwpx-automation

Flujos de trabajo de creación y relleno de formularios, CLI hwpx, servidor MCP opcional

🎯

hwpx-plugins

Paquete de plugins/habilidades que ayudan al agente a elegir la herramienta adecuada

Comenzar con la automatización Python

pip install python-hwpx-automation
from hwpx_automation import create_document_from_plan

document = create_document_from_plan(
    {
        "schemaVersion": "hwpx.document_plan.v1",
        "title": "회의 결과",
        "blocks": [{"type": "paragraph", "text": "결정 사항"}],
    }
)
document.save_to_path("meeting-result.hwpx")

python -m hwpx_automation --help y hwpx help ejecutan el mismo CLI de tareas.

Related MCP server: hwpx-mcp-server

Comenzar con el adaptador MCP

pip install "python-hwpx-automation[mcp]"
hwpx-automation-mcp

Con un solo bloque en el archivo de configuración del cliente MCP se conecta el servidor hwpx — en Claude Desktop es claude_desktop_config.json, en VS Code es .vscode/mcp.json (la clave es servers en lugar de mcpServers), en Gemini CLI es ~/.gemini/settings.json, y en Cursor·Windsurf es el archivo de configuración MCP de cada editor.

{
  "mcpServers": {
    "hwpx": {
      "command": "uvx",
      "args": [
        "--from",
        "python-hwpx-automation[mcp]==7.0.2",
        "hwpx-automation-mcp"
      ],
      "env": {
        "HWPX_AUTOMATION_WORKSPACE_ROOTS": "[\"~/Documents\"]"
      }
    }
  }
}

En HWPX_AUTOMATION_WORKSPACE_ROOTS especifique las carpetas donde están los documentos (ruta absoluta o ~). En Windows se escribe como "[\"C:\\\\hwpx\"]". Si deja el valor vacío, el cliente GUI lanza el servidor desde el directorio del sistema, por lo que todas las rutas de documentos quedan bloqueadas — se recomienda especificarlo desde el principio. Para las demás opciones, consulte la tabla de variables de entorno.

Para leer documentos que no son HWPX (PDF/DOCX/XLSX/HTML/TXT) con document_to_markdown, instale también el adaptador MarkItDown con pip install "python-hwpx-automation[ingest]". Requisitos: Python >= 3.10 · python-hwpx >= 5.0.0.

Las distribuciones, importaciones, consolas y claves de configuración existentes de hwpx-mcp-server siguen funcionando durante 6.x — lista completa y reglas de mantenimiento: superficie de compatibilidad 6.x

Qué hace

En el modo básico ofrece múltiples herramientas HWPX, y en el modo avanzado (HWPX_AUTOMATION_ADVANCED=1) se añaden herramientas de inspección y verificación.

  • Lectura·exploración — get_document_info, get_document_map (esquema·mapa de tablas·anclas en una sola llamada), find_text (sin guardar)

  • Búsqueda·reemplazo·edición — search_and_replace, apply_document_commands (aplicación atómica de ediciones heterogéneas·dry-run·rollback·clave de idempotencia), add_tracked_edit (seguimiento de cambios)

  • Tablas·relleno de formularios — transacción con preservación de bytes analyze_form_fill → apply_form_fill → verify_form_fill, table_compute (sumas·subtotales)

  • Generación de documentos·documentos oficiales — create_document_from_plan declarativo, inspect_official_document_style (lint de normativa administrativa), mail_merge

  • Formato·imágenes·generadores — set_paragraph_format·set_page_setup, insert_picture, tablones de fotos·placas de identificación·organigramas

  • Vista previa·extracción·reparación·diagnóstico — render_preview (autoverificación HTML/PNG), hwpx_to_markdown, repair_hwpx, mcp_server_health

Más detalles: casos de uso · flujos de trabajo con prioridad de habilidades

Cómo usarlo de forma segura

No es necesario memorizar todas las herramientas desde el principio. Normalmente el flujo es así.

  1. Lectura — get_document_info → get_document_outline/get_document_text → find_text, get_table_map para identificar solo las partes necesarias. (sin guardar)

  2. Modificación segura — cree una copia con copy_document, aplique el cambio más pequeño (search_and_replace, set_table_cell_text, apply_document_commands), vuelva a leer para verificar y entregue la copia revisada.

La clave es copy first · smallest edit · re-read after edits. Las herramientas de modificación guardan inmediatamente al llamarse, así que el trabajo de revisión debe hacerse siempre en una copia.

El modelo envía solo la operación/plan y no edita directamente el XML crudo. La ruta de guardado normal pasa por la única puerta SavePipeline de python-hwpx, que verifica integridad·XML·OPC/ID· seguridad de apertura, y si la puerta falla no escribe nada. El handshake de capability bloquea con fail-closed el skew de versiones+hash de core/automation/plugin. Detalles de seguridad: guía de endurecimiento · identificadores de compatibilidad con nombres antiguos: superficie de compatibilidad 6.x

Contrato de ubicación — paragraph_index es el índice 0-based de los párrafos directos del cuerpo. Los párrafos dentro de tablas no se mezclan aquí; se especifican con un objeto location como {"kind":"table_cell_paragraph","table_index":0,"row":0,"col":1,"cell_paragraph_index":0}, y se pueden pasar directamente los valores devueltos por get_table_map/find_text.

Variables de entorno

Variable

Descripción

Valor predeterminado

HWPX_AUTOMATION_WORKSPACE_ROOTS

Matriz JSON de rutas absolutas de workspace permitidas (soporta múltiples raíces). Las rutas relativas se basan en la primera raíz

sin definir → cwd del proceso. cwd degenerado se rechaza con WORKSPACE_ROOT_INVALID

HWPX_AUTOMATION_MAX_CHARS

Longitud máxima predeterminada de las herramientas que devuelven texto

10000

HWPX_AUTOMATION_AUTOBACKUP

Si es 1, crea una copia de seguridad .bak antes de guardar

1

HWPX_AUTOMATION_ADVANCED

Si es 1, activa las herramientas avanzadas

0

HWPX_AUTOMATION_FETCH_TIMEOUT_SECONDS

Timeout de fetch de HWPX basado en URL

20.0

HWPX_AUTOMATION_ALLOW_PRIVATE_NETWORK

Si es 1, permite destinos HTTPS privados/de bucle local de confianza. Link-local·metadata·direcciones reservadas se siguen bloqueando

0

HWPX_AUTOMATION_QUALITY

Política global predeterminada de la puerta de guardado (transparent/strict). El quality por herramienta tiene prioridad

transparent

HWPX_AUTOMATION_REQUIRE_CAPABILITY

Si es 0, desactiva el fail-closed de skew de capability (para diagnóstico/uso experto)

1

HWPX_AUTOMATION_WORKFLOW_STORE

Ruta SQLite del workflow durable. Tiene prioridad sobre el HWPX_WORKFLOW_STORE existente

Ruta de estado 6.x existente

LOG_LEVEL

Nivel de registro

INFO

Las claves HWPX_MCP_* existentes con el mismo sufijo se mantienen como fallback durante 6.x; si ambas claves están presentes, HWPX_AUTOMATION_* tiene prioridad. La lista completa de claves conservadas para integración con render·workflow·oracle·plugin y las reglas de ruta de la base de datos de workflow están en superficie de compatibilidad 6.x.

Las rutas rechazan por defecto el traversal fuera del workspace y el escape de symlink, y las entradas URL solo permiten HTTPS·IP públicas. Las advertencias de concurrencia en hosts que no ofrecen rename atómico están en la guía de endurecimiento.

Contribuir

good first issue · hitos · Discussions · CONTRIBUTING · CHANGELOG

python -m pip install -e ".[test]"   # 테스트 의존성
python -m pytest -q                   # 전체 테스트
python scripts/run_conformance.py run \
  --tier structural --check tests/conformance/golden/structural.json

Agradecimientos

Funciona sobre la biblioteca principal python-hwpx y debe su existencia a los siguientes estándares y proyectos públicos.

Licencia · Mantenedor

Apache-2.0 (LICENSE · NOTICE) — Kohkyuhyun @airmang · kokyuhyun@hotmail.com

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    Not graded
    maintenance
    Enables reading, editing, and creating Korean HWPX documents through python-hwpx library. Supports document creation, paragraph/table/image insertion, metadata management, and workspace-restricted file operations with automatic backup functionality.
    8
    MIT
  • 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.
    33 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server for reading, writing, and managing Korean Hangul Word Processor (HWP/HWPX) files. It allows users to extract content, fill templates, and create new documents directly through AI assistants.
    34
    119 npm
    100
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for reading and writing HWP/HWPX (Korean Hangul word processor) files, enabling document reading, text extraction, table extraction, image extraction, template filling, text replacement, and creation of new documents.
    MIT