Advanced HWP MCP Server

Advanced HWP MCP Server

Enables comprehensive control of Korean Hangul (HWP) documents with 59 features including document manipulation, text editing, formatting, table operations, PDF export, and advanced automation capabilities like template filling and document structure analysis.

Category
访问服务器

README

Advanced HWP MCP Server

고도화된 한글(HWP) MCP 서버 - 한글의 모든 기능을 제어할 수 있는 MCP 서버입니다.

🚀 주요 기능

기본 문서 제어

  • ✅ 새 문서 생성 (create_document)
  • ✅ 문서 열기 (open_document) - NEW! 모든 대화상자 자동 처리 + 창 최상단 표시
    • 버전 경고 자동 처리
    • 접근 권한 확인 자동 승인
    • 암호 입력 자동 건너뛰기
    • 한글 창 자동으로 화면 제일 앞에 표시
  • ✅ 문서 저장 (save_document)
  • ✅ 문서 닫기 (close_document)
  • ✅ 모든 문서 닫기 (close_all_documents)
  • ✅ 한글 종료 (quit_hwp)
  • ✅ 문서 정보 조회 (get_document_info)

실행 중인 한글 연결

  • ✅ 열린 문서 목록 조회 (get_running_hwp_documents)
  • ✅ 실행 중인 한글에 연결 (connect_to_running_hwp)
  • ✅ 특정 문서로 전환 (switch_to_document)
  • ✅ 활성 문서 정보 조회 (get_active_document_info)
  • ✅ 모든 한글 창 목록 조회 (list_all_hwp_windows)
  • ✅ 특정 한글 창에 연결 (connect_to_hwp_window) - 참고: COM 한계로 창 확인용

⚠️ 중요: 한글 파일을 더블클릭으로 여러 개 실행하면 각각 별도의 프로세스로 실행됩니다. COM은 하나의 프로세스에만 연결되므로, 다른 프로세스의 문서는 직접 제어할 수 없습니다. 아래 "권장 워크플로우" 섹션을 참고하세요.

고급 텍스트 조작

  • ✅ 정밀한 텍스트 위치 지정 (insert_text_at_position)
  • ✅ 텍스트 범위 선택 (select_text_range)
  • ✅ 찾기/바꾸기 (find_and_replace)
  • ✅ 일반 텍스트 삽입 (insert_text)

완전한 서식 제어

  • ✅ 글꼴 서식 적용 (apply_font_format)
  • ✅ 문단 서식 설정 (set_paragraph_format)
  • ✅ 페이지 여백 설정 (set_page_margins)
  • ✅ 용지 크기 및 방향 설정 (set_page_size)

표 기능

  • ✅ 표 생성 (create_table)
  • ✅ 셀 병합 (merge_table_cells)

객체 삽입

  • ✅ 이미지 삽입 (insert_image)
  • ✅ 도형 삽입 (insert_shape)
  • ✅ 하이퍼링크 삽입 (insert_hyperlink)

문서 구조 관리

  • ✅ 머리글/바닥글 삽입 (insert_header_footer)
  • ✅ 페이지 나누기 (insert_page_break)
  • ✅ 목차 생성 (create_table_of_contents)
  • ✅ 제목 스타일 적용 (apply_heading_style)

텍스트 읽기 기능

  • ✅ 문서 전체 텍스트 읽기 (get_text_all)
  • ✅ 특정 페이지 텍스트 읽기 (get_text_by_page)
  • ✅ 선택된 텍스트 읽기 (get_selected_text)
  • ✅ 특정 문단 텍스트 읽기 (get_paragraph_text)
  • ✅ 텍스트 파일로 저장 (save_as_text)

🆕 고급 분석 및 자동화 기능

  • ✅ 표를 CSV로 추출 (get_table_as_csv) - 특정 표를 CSV 형식으로 추출/저장
  • ✅ 일괄 바꾸기 (batch_replace) - 여러 텍스트를 한번에 바꾸기
  • ✅ 텍스트 검색 (find_text) - 텍스트 위치와 주변 내용 검색
  • ✅ 템플릿 채우기 (fill_template) - 플레이스홀더를 값으로 채우기
  • ✅ 문서 구조 분석 (get_document_structure) - 페이지/문단/표/이미지/개요 분석

⭐ 정밀 위치 제어 (NEW!)

  • ✅ 특정 페이지로 이동 (move_to_page) - 페이지 번호로 커서 이동
  • ✅ 특정 문단으로 이동 (move_to_paragraph_number) - 문단 번호로 커서 이동
  • ✅ 문서 시작/끝 이동 (move_to_document_start, move_to_document_end)

⭐ 텍스트 삭제 기능 (NEW!)

  • ✅ 선택된 텍스트 삭제 (delete_selected_text)
  • ✅ 특정 텍스트 모두 삭제 (delete_all_occurrences)
  • ✅ 현재 줄 삭제 (delete_current_line)
  • ✅ 현재 문단 삭제 (delete_current_paragraph)
  • ✅ 특정 페이지 내용 삭제 (delete_page_content)

⭐ 서식 유지 및 조회 (NEW!)

  • ✅ 현재 서식 정보 가져오기 (get_current_char_shape) - 글꼴, 크기, 색상 등 조회
  • ✅ 서식 유지하며 텍스트 삽입 (insert_text_preserving_format)

⭐ 고급 삽입 기능 (NEW!)

  • ✅ 특정 텍스트 뒤에 삽입 (insert_after_text) - "제목" 뒤에 추가
  • ✅ 특정 텍스트 앞에 삽입 (insert_before_text) - "제목" 앞에 추가
  • ✅ 문단 끝에 추가 (append_to_paragraph) - N번째 문단 끝에
  • ✅ 문단 앞에 추가 (prepend_to_paragraph) - N번째 문단 앞에
  • ✅ 페이지 시작에 삽입 (insert_at_page_start)
  • ✅ 페이지 끝에 삽입 (insert_at_page_end)

⭐ 선택 및 교체 (NEW!)

  • ✅ 문단 선택 (select_paragraph_by_number)
  • ✅ 페이지 선택 (select_page_content)
  • ✅ 문단 내용 교체 (replace_paragraph) - 문단 전체를 새 텍스트로

🚀 성능 최적화 및 자동화 제어 (NEW!)

  • ✅ 화면 업데이트 제어 (set_screen_updating) - 대량 작업 시 성능 향상
  • ✅ 자동화 모드 제어 (set_automation_mode) - 모든 확인창 자동 승인
  • ✅ 대량 작업 최적화 (optimize_for_bulk_operations) - 최고 성능 모드
  • ✅ 일반 모드 복원 (restore_normal_mode) - 최적화 해제

내보내기 기능

  • ✅ PDF 내보내기 (export_to_pdf)
  • ✅ 한글 초기화 (initialize_hwp)

📋 필수 요구사항

시스템 요구사항

  • 운영체제: Windows (한글 프로그램 지원)
  • Python: 3.10 이상
  • 한글: 한글 2010 이상 (HWPFrame.HwpObject 지원)

필수 패키지

pip install mcp fastmcp pywin32

🛠️ 설치 및 설정

1. 패키지 설치

# 필수 패키지 설치
pip install -r requirements.txt

# 또는 개별 설치
pip install mcp fastmcp pywin32

2. Claude Desktop 설정

Claude Desktop의 설정 파일에 다음 내용을 추가합니다:

Windows 설정 파일 위치: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "advanced-hwp": {
      "command": "python",
      "args": [
        "D:/mcp/33MCP_HWP_Limone/advanced_hwp_server.py"
      ],
      "env": {
        "PYTHONPATH": "D:/mcp/33MCP_HWP_Limone"
      }
    }
  }
}

3. 한글 프로그램 설치 확인

  • 한글 프로그램이 설치되어 있어야 합니다
  • COM 객체 등록이 정상적으로 되어 있어야 합니다

💡 권장 워크플로우 (중요!)

한글 파일 작업 시 필수 절차

Windows COM의 특성상, 한글 프로그램이 여러 개 실행 중일 때는 하나의 인스턉스에만 연결됩니다. 다음 3단계 워크플로우를 반드시 따라야 안정적으로 작동합니다:

✅ 1단계: 실행 중인 한글 문서 확인

"현재 열려있는 한글 파일 목록을 보여줘"

list_all_hwp_windows() 호출 → 실행 중인 모든 한글 창과 파일명, 경로 확인

출력 예시:

실행 중인 한글 창 (2개):
  [0] !220324(보도자료)_주간아파트가격동향.hwp [C:\Users\...\Downloads\]
      PID: 27380, HWND: 12345
  [1] 회의록.hwp [D:\Documents\] - 한글
      PID: 28901, HWND: 67890

✅ 2단계: 목표 문서의 전체 경로 확인 및 열기

"아파트가격동향 파일을 열어줘"

open_document("C:\Users\...\아파트가격동향.hwp") 호출 → MCP 인스턴스가 해당 파일을 열고 제어 가능 상태로 전환 → 자동으로 모든 대화상자 처리 (버전 경고, 접근 권한, 암호 등) → 한글 창이 화면 제일 앞으로 자동 이동

중요:

  • 빈 문서를 열지 않고 실제 파일 경로를 사용해야 함
  • 파일 경로는 1단계에서 확인한 경로 사용

✅ 3단계: 문서 작업 수행

"'경기(-0.03%)'를 '[TEMP_GYEONGGI]'로 바꿔줘"
"문서 전체 내용을 읽어줘"

find_and_replace(), get_text_all() 등 사용 → 모든 확인창 자동 승인으로 즉시 실행

📖 실제 사용 예시

사용자: "지금 열려있는 한글 파일 중에 아파트가격동향 문서에서 '경기'를 'GYEONGGI'로 바꿔줘"

Claude 자동 실행 순서:

# 1단계
list_all_hwp_windows()
# → 출력: "!220324(보도자료)_주간아파트가격동향.hwp [C:\Users\LENOVO\Downloads\]"

# 2단계
open_document("C:\\Users\\LENOVO\\Downloads\\!220324(보도자료)_주간아파트가격동향.hwp")
# → "문서를 열었습니다" + 한글 창 최상단 표시

# 3단계
find_and_replace("경기", "GYEONGGI")
# → 자동으로 모든 '경기' 텍스트 바꾸기 (확인창 없음)

⚠️ 주의사항

상황 동작 방식 해결 방법
한글 1개 실행 중 MCP가 해당 인스턴스에 연결되어 모든 문서 제어 가능 정상 작동
한글 여러 개 실행 중 MCP는 하나의 인스턴스에만 연결됨 1단계로 확인 후 open_document()로 필요한 파일 열기
한글 실행 안 됨 initialize_hwp() 호출 시 자동으로 새 한글 실행 정상 작동
빈 문서만 열림 ❌ 잘못된 접근 - 실제 파일이 아닌 빈 문서 제어 중 반드시 1-2단계 거쳐서 실제 파일 경로로 열기

🚀 자동화 기능

모든 확인 대화상자는 자동으로 승인됩니다:

  • ✅ 버전 경고 대화상자
  • ✅ 파일 접근 권한 확인
  • ✅ 암호 입력 건너뛰기
  • ✅ 찾기/바꾸기 확인창
  • ✅ 삭제 확인창

이 기능은 initialize() 시 자동 활성화되며, 수동 제어도 가능합니다.

🎯 사용 방법

기본 사용법

Claude Desktop에서 다음과 같이 요청하면 됩니다:

새 한글 문서를 만들고 "안녕하세요"라는 텍스트를 삽입해주세요.

고급 사용법

1. 서식이 적용된 문서 생성

새 문서를 만들고 제목을 "보고서"로 하되 맑은고딕 18pt 굵게 설정하고, 
본문에 "내용입니다"를 바탕 12pt로 추가해주세요.

2. 표가 포함된 문서

3행 4열 표를 만들고 첫 번째 행의 셀들을 병합해주세요.

3. 이미지 삽입

C:\images\logo.png 이미지를 문서에 삽입하고 크기를 100x50mm로 설정해주세요.

4. 페이지 설정

A4 용지를 가로 방향으로 설정하고 여백을 상하좌우 15mm로 설정해주세요.

5. 문서 내용 읽기

이 한글 문서를 열고 전체 내용을 읽어주세요.

6. 특정 페이지/문단 읽기

문서의 2페이지 내용만 읽어주세요.
첫 번째 문단의 내용을 확인해주세요.

7. 텍스트 파일로 변환

이 한글 문서를 텍스트 파일로 저장해주세요.

8. 실행 중인 한글에 연결

현재 열려있는 한글 문서 목록을 보여주세요.
아파트 가격 문서로 전환해주세요.

🆕 고급 분석 및 자동화 기능 사용법

9. 표를 CSV로 추출

문서의 첫 번째 표를 CSV로 추출해줘
두 번째 표를 C:\output\table.csv로 저장해줘

10. 여러 텍스트 한번에 바꾸기

다음 텍스트들을 한번에 바꿔줘: 주식회사->㈜, 2023년->2024년, 홍길동->김철수

11. 텍스트 검색

문서에서 "세종"이 어디에 있는지 찾아줘
"아파트"라는 단어가 몇 번 나오는지 확인해줘

12. 템플릿 채우기

문서의 {{이름}}을 홍길동으로, {{날짜}}를 2024-01-01로, {{금액}}을 1,000,000원으로 채워줘

13. 문서 구조 분석

이 문서의 전체 구조를 분석해줘
문서에 표가 몇 개 있고 어떤 내용인지 알려줘

⭐ 새로운 편집 기능 사용법 (문제 해결!)

14. 정확한 위치에 텍스트 삽입

3페이지로 이동해서 "새로운 내용"을 추가해줘
"서론" 뒤에 "이 문서는..."을 추가해줘
첫 번째 문단 끝에 "추가 설명"을 넣어줘

15. 텍스트 삭제

"초안"이라는 단어를 모두 삭제해줘
현재 문단을 삭제해줘
2페이지의 모든 내용을 지워줘

16. 서식 유지하며 편집

현재 위치의 서식 정보를 알려줘
서식을 유지하면서 "중요 내용"을 삽입해줘

17. 고급 삽입 (특정 텍스트 기준)

"1. 서론" 뒤에 줄바꿈하고 본문을 추가해줘
"제목" 앞에 "최종본 - "을 붙여줘
두 번째 "결론" 뒤에 추가 설명을 넣어줘  (nth_occurrence 사용)

18. 문단 단위 편집

0번째 문단을 "새로운 제목"으로 교체해줘
1번째 문단을 선택하고 서식을 적용해줘
2번째 문단 앞에 "중요: "를 추가해줘

🚀 성능 최적화 사용법 (NEW!)

19. 대량 작업 최적화

대량 작업 최적화 모드를 켜줘
(1000개 텍스트를 일괄 바꾸기)
일반 모드로 복원해줘

20. 수동 최적화 제어

화면 업데이트를 꺼줘  (성능 향상)
(작업 수행)
화면 업데이트를 켜줘  (정상 속도)

21. 자동화 모드 (확인창 자동 승인)

자동화 모드를 켜줘  (모든 확인창 자동 Yes)
(바꾸기, 삭제 등 작업 - 확인창 없이 즉시 실행)

💡 팁: 초기화 시 자동으로 자동화 모드가 활성화되므로, 따로 설정하지 않아도 확인창이 뜨지 않습니다!

📁 프로젝트 구조

33MCP_HWP_Limone/
├── advanced_hwp_server.py      # 메인 MCP 서버
├── requirements.txt            # 필수 패키지 목록
├── claude_desktop_config.json  # Claude Desktop 설정 예시
├── README.md                   # 이 파일
├── INSTALLATION_GUIDE.md       # 설치 가이드
└── hwp_mcp.log                 # 실행 로그

🔧 문제해결

1. 한글 초기화 실패

한글 프로그램이 설치되지 않았거나 초기화할 수 없습니다.
  • 한글 프로그램이 설치되어 있는지 확인
  • 한글을 한 번 실행해서 정상 동작하는지 확인
  • COM 객체 등록 확인

2. 패키지 설치 오류

pip install pywin32
  • 관리자 권한으로 실행
  • 가상환경 사용 권장

3. Claude Desktop 연결 실패

  • 설정 파일 경로가 정확한지 확인
  • Python 경로가 올바른지 확인
  • 방화벽 설정 확인

📊 기능 요약 (총 59개 - 24개 신규 추가!)

카테고리 기능 수 주요 기능
기본 문서 제어 7개 생성, 열기, 저장, 닫기, 종료
한글 연결 6개 실행 중 한글 연결, 창 목록, 문서 전환
텍스트 조작 4개 삽입, 선택, 찾기/바꾸기
서식 제어 4개 글꼴, 문단, 페이지 여백, 용지
표 기능 2개 생성, 셀 병합
객체 삽입 3개 이미지, 도형, 하이퍼링크
문서 구조 4개 머리글/바닥글, 페이지 나누기, 목차, 제목
텍스트 읽기 5개 전체, 페이지별, 선택, 문단별, 텍스트 저장
고급 자동화 5개 CSV 추출, 일괄 바꾸기, 검색, 템플릿, 구조 분석
⭐ 정밀 위치 제어 4개 (NEW) 페이지/문단 이동, 시작/끝 이동
⭐ 텍스트 삭제 5개 (NEW) 선택 삭제, 패턴 삭제, 줄/문단/페이지 삭제
⭐ 서식 유지 2개 (NEW) 서식 조회, 서식 유지 삽입
⭐ 고급 삽입 6개 (NEW) 텍스트 앞/뒤 삽입, 문단/페이지 위치 삽입
⭐ 선택 및 교체 3개 (NEW) 문단/페이지 선택, 문단 교체
🚀 성능 최적화 4개 (NEW) 화면 업데이트, 자동화 모드, 대량 작업 최적화
내보내기 2개 PDF, 초기화

🚧 알려진 제한사항

  1. Windows 전용: 한글 프로그램의 특성상 Windows에서만 동작
  2. 한글 필수: 한글 프로그램이 설치되어 있어야 함
  3. COM 의존성: Windows COM 객체에 의존
  4. 단일 인스턴스 연결: 한글이 여러 개 실행 중일 때 COM은 하나의 프로세스에만 연결됨
    • list_all_hwp_windows()로 어떤 파일이 열려있는지 확인 가능
    • 다른 프로세스의 문서를 제어하려면 open_document()로 해당 파일을 MCP 인스턴스에서 열어야 함

📈 향후 개선 계획

  • [x] 텍스트 읽기 기능 추가 (완료)
  • [x] 고급 분석 및 자동화 기능 추가 (완료)
  • [x] 정밀 위치 제어 및 삭제 기능 추가 (완료)
  • [x] 서식 유지 및 고급 삽입 기능 추가 (완료)
  • [x] 문서 열기 자동화 강화 (대화상자 자동 처리, 창 최상단 표시) (완료)
  • [ ] 매크로 실행 기능 추가
  • [ ] 차트 삽입 기능 추가
  • [ ] 일괄 서식 적용 기능 강화
  • [ ] 성능 최적화
  • [ ] 오류 처리 개선

🤝 기여하기

이 프로젝트는 한국어 문서 작업의 자동화를 위한 프로젝트입니다. 기여, 피드백, 이슈 리포트를 환영합니다!

GitHub: https://github.com/crowwan/hwp-mcp-advanced-custom.git

📄 라이선스

이 프로젝트는 MIT 라이선스 하에 배포됩니다.


💡 주요 개선사항 (v2.0)

해결된 문제점

  1. ✅ 위치 지정 문제 해결

    • 기존: 마우스 커서 위치에만 삽입 가능
    • 개선: 페이지 번호, 문단 번호, 특정 텍스트 기준으로 정확한 위치 제어
  2. ✅ 삭제 기능 완전 구현

    • 기존: 삭제 함수 부재
    • 개선: 5가지 삭제 방식 (선택, 패턴, 줄, 문단, 페이지)
  3. ✅ 서식 유지 기능 추가

    • 기존: 텍스트만 삽입되어 서식이 깨짐
    • 개선: 현재 서식 조회 및 유지하며 삽입 가능
  4. ✅ 고급 삽입 기능

    • 기존: 현재 위치에만 삽입
    • 개선: "제목" 앞/뒤, N번째 문단 끝, 페이지 시작/끝 등 정밀 삽입
  5. ✅ 문서 열기 자동화 강화

    • 기존: 대화상자(버전 경고, 접근 권한 등) 수동 처리 필요
    • 개선: 모든 확인 대화상자 자동 승인 + 한글 창 자동으로 화면 최상단 표시

참고: 이 MCP 서버는 총 59개의 한글 제어 기능을 제공하며, 실무에서 발생하는 대부분의 문서 편집 문제를 해결할 수 있습니다.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选