HWP MCP Server

by jkf87
Verified
# hwp-mcp 프로젝트 구조 설명 ## 개요 hwp-mcp는 한글 워드 프로세서(HWP)를 Claude와 같은 AI 모델이 제어할 수 있도록 해주는 Model Context Protocol(MCP) 서버입니다. 이 프로젝트는 한글 문서를 자동으로 생성, 편집, 조작하는 기능을 Claude에게 제공합니다. ## 작동 방식 1. **Claude 호출 과정**: - Claude 데스크톱 애플리케이션에서 hwp-mcp를 호출하면 `D:\hwp-mcp\hwp_mcp_stdio_server.py` 스크립트가 실행됩니다. - 이 스크립트는 표준 입출력(stdio)을 통해 Claude와 통신하는 FastMCP 서버를 생성합니다. - 서버는 HWP를 조작하기 위한 여러 도구(tool)들을 등록합니다. 2. **기능 실행 과정**: - Claude가 HWP 관련 기능을 요청하면, 등록된 도구가 호출됩니다. - 도구는 `HwpController`를 사용하여 Windows COM 자동화를 통해 HWP 프로그램과 상호작용합니다. - `win32com` 라이브러리를 통해 HWP에 명령을 전송합니다. ## 주요 컴포넌트 1. **hwp_mcp_stdio_server.py**: - 프로젝트의 진입점(entry point) - FastMCP 서버를 초기화하고 도구들을 등록 - stdio를 통해 Claude와 통신하는 인터페이스 제공 2. **src/tools/hwp_controller.py**: - HWP와 상호작용하는 핵심 컨트롤러 클래스 - win32com을 이용하여 한글 프로그램을 자동화 - 문서 생성, 열기, 저장, 텍스트 삽입, 테이블 생성 등의 기능 제공 3. **security_module/**: - 파일 경로 체크 보안 경고창을 우회하기 위한 모듈 참조 - 실제 파일은 확인되지 않음 ## 의존성 1. **Python 패키지 의존성** (requirements.txt): - flask==2.3.3 - pywin32==306 (HWP 자동화를 위한 핵심 라이브러리) - python-dotenv==1.0.0 - pydantic==2.5.2 - jsonschema==4.19.1 - pytest==7.4.2 2. **외부 의존성**: - `mcp` Python 패키지: 이 프로젝트의 핵심 외부 의존성 - `FastMCP`를 `mcp.server.fastmcp`에서 임포트 - Claude가 HWP 프로그램과 통신할 수 있게 해주는 Model Context Protocol 구현체 ## 프로젝트 삭제 시 고려사항 이 프로젝트를 삭제하고자 할 경우 다음 사항을 고려해야 합니다: 1. 이 코드는 Claude와 HWP 사이의 브릿지 역할을 합니다. 2. 외부 패키지인 `mcp`에 의존성이 있으며, 이는 별도로 설치되어 있을 가능성이 높습니다. 3. Claude 데스크톱 설정 파일에 이 프로젝트에 대한 참조가 있습니다. 프로젝트를 삭제할 경우 Claude는 더 이상 HWP를 제어할 수 없게 됩니다. 이것이 의도한 바라면, Claude 설정에서 hwp mcp 항목을 제거하는 것도 함께 진행해야 합니다. ## 설정 파일 예시 ```json { "mcpServers": { "hwp": { "command": "python", "args": ["D:\\hwp-mcp\\hwp_mcp_stdio_server.py"] } } } ``` 위 설정에서 "hwp" 항목을 제거하면 Claude가 더 이상 HWP MCP를 호출하지 않습니다.