ai.smithery/airmang-hwpx-mcp

자동화하여 HWPX 문서의 로딩, 탐색, 편집, 검증을 한 번에 처리합니다. 문단·표·주석 추가, 텍스트 일괄 치환, 머리말·꼬리말 설정 등 반복 작업을 신속히 수행합니다. 기…

AI & MLPythonv1.14.0
</p>

hwpx-mcp-server모델 컨텍스트 프로토콜(MCP) 표준을 따르는 서버로, python-hwpx 기반에서 HWPX 문서의 열람 · 검색 · 편집 · 추출을 AI 클라이언트에서 직접 수행할 수 있게 합니다.

참고 이 서버는 Open XML 기반 .hwpx 포맷을 지원합니다. 바이너리 .hwp 포맷은 직접 편집 대상이 아닙니다.

왜 필요한가?

국내 공공기관·학교·기업에서는 한글 문서 기반 업무가 많지만, 자동화는 오랫동안 운영체제와 프로그램에 크게 의존했습니다.

hwpx-mcp-server는 이 제약을 줄이는 데 초점을 둡니다.

  • 운영체제 무관 — Windows, macOS, Linux에서 동작
  • 한글 워드프로세서 불필요 — 순수 파이썬 기반 처리
  • AI 연동 중심 — Claude Desktop, VS Code, Gemini CLI 등 MCP 클라이언트와 직접 연결
  • 일관된 호출 방식 — 도구 호출마다 filename을 명시하는 stateless 구조

사용 사례

빠른 시작

1. 설치 및 실행

uv 기준:

bash
uvx hwpx-mcp-server

또는 pip 설치 후 실행:

bash
pip install hwpx-mcp-server
hwpx-mcp-server

요구 사항:

  • Python >= 3.10
  • python-hwpx >= 2.6

현재 저장소 기준 검증 버전은 python-hwpx 2.7.1입니다.

2. MCP 클라이언트 설정

<details> <summary><b>Claude Desktop</b></summary>

claude_desktop_config.json

json
{
  "mcpServers": {
    "hwpx": {
      "command": "uvx",
      "args": ["hwpx-mcp-server"]
    }
  }
}
</details> <details> <summary><b>Gemini CLI</b></summary>

~/.gemini/settings.json

json
{
  "mcpServers": {
    "hwpx": {
      "command": "uvx",
      "args": ["hwpx-mcp-server"]
    }
  }
}
</details> <details> <summary><b>VS Code</b></summary>

.vscode/mcp.json

json
{
  "servers": {
    "hwpx": {
      "command": "uvx",
      "args": ["hwpx-mcp-server"]
    }
  }
}
</details> <details> <summary><b>Cursor / Windsurf</b></summary>

각 에디터의 MCP 설정 파일에 같은 블록을 추가하면 됩니다.

json
{
  "mcpServers": {
    "hwpx": {
      "command": "uvx",
      "args": ["hwpx-mcp-server"]
    }
  }
}
</details>

주요 기능

기본 모드에서 주요 HWPX 편집 도구를 제공하며, 고급 모드(HWPX_MCP_ADVANCED=1)에서는 점검·검증용 도구가 추가로 활성화됩니다.

📖 읽기 및 탐색

도구설명
get_document_info문서 메타데이터, 섹션, 문단, 표 개수 조회
get_document_text문서 전체 텍스트 추출 (max_chars 지원)
get_document_outline제목과 개요 구조 추출
get_paragraph_text특정 문단 텍스트 조회
get_paragraphs_text문단 범위 조회
list_available_documents폴더 안의 .hwpx 파일 목록 조회

🔎 검색 및 치환

도구설명
find_text키워드 검색과 주변 문맥 반환
search_and_replace단일 텍스트 치환
batch_replace여러 치환 작업 일괄 실행

✏️ 문서 편집

도구설명
add_heading제목(헤딩) 문단 추가
add_paragraph / insert_paragraph / delete_paragraph문단 추가, 삽입, 삭제
add_page_break페이지 나누기 추가
add_memo / remove_memo메모 추가, 제거
copy_document안전한 사본 생성 후 작업 시작

📊 표 편집

도구설명
add_table / get_table_text표 생성, 조회
set_table_cell_text셀 텍스트 수정
merge_table_cells / split_table_cell셀 병합, 분할
format_table표 헤더 등 기본 서식 적용

🎨 서식 및 스타일

도구설명
format_text텍스트 범위 서식 적용
create_custom_style커스텀 스타일 생성
list_styles문서 스타일 목록 조회

스타일 참조 팁: add_paragraph(..., style=...)insert_paragraph(..., style=...)list_stylesid, create_custom_style이 반환하는 style_id, 스타일 이름을 모두 받을 수 있습니다.

📤 추출

도구설명
hwpx_to_markdownHWPX 문서를 Markdown으로 변환
hwpx_to_htmlHWPX 문서를 HTML로 변환
hwpx_extract_jsonHWPX 문서를 구조화된 JSON으로 추출

🔬 고급 도구

HWPX_MCP_ADVANCED=1일 때 활성화:

도구설명
package_partsOPC 파트 목록 조회
package_get_xml / package_get_text파트 XML 또는 텍스트 조회
object_find_by_tag / object_find_by_attrXML 요소 검색
plan_edit / preview_edit / apply_edit편집 계획, 미리보기, 적용
validate_structure / lint_text_conventions구조 검증, 텍스트 규칙 점검

환경 변수

변수설명기본값
HWPX_MCP_MAX_CHARS텍스트 반환 도구 기본 최대 길이10000
HWPX_MCP_AUTOBACKUP1이면 저장 전 .bak 백업 생성1
HWPX_MCP_ADVANCED1이면 고급 도구 활성화0
LOG_LEVEL로그 레벨INFO

환경 변수 포함 MCP 설정 예시:

json
{
  "mcpServers": {
    "hwpx": {
      "command": "uvx",
      "args": ["hwpx-mcp-server"],
      "env": {
        "HWPX_MCP_MAX_CHARS": "12000",
        "HWPX_MCP_AUTOBACKUP": "1",
        "HWPX_MCP_ADVANCED": "0",
        "LOG_LEVEL": "INFO"
      }
    }
  }
}

테스트

bash
# 테스트 의존성 설치
python -m pip install -e ".[test]"

# 전체 테스트
python -m pytest -q

추가 참고:

  • 사용 사례: docs/use-cases.md
  • 종합 리포트: tests/hwpx_mcp_report_updated.md
  • 스킬 기반 워크플로: docs/skill-first-workflows.md

라이선스

MIT

작성자

고규현 — 광교고등학교 정보·컴퓨터 교사

Learn More