Skip to content

twoLoop-40/HwpAutomation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

44 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

HWP MCP Server

ν•œκΈ€(HWP) λ¬Έμ„œ μžλ™ν™”λ₯Ό μœ„ν•œ Model Context Protocol (MCP) μ„œλ²„

κ°œμš”

이 ν”„λ‘œμ νŠΈλŠ” ν•œκΈ€κ³Όμ»΄ν“¨ν„°μ˜ HWP λ¬Έμ„œλ₯Ό Claude Desktop을 톡해 μžλ™ν™”ν•  수 있게 ν•΄μ£ΌλŠ” MCP μ„œλ²„μž…λ‹ˆλ‹€.

μ£Όμš” νŠΉμ§•

  • βœ… νƒ€μž… μ•ˆμ „μ„±: Idris2 ν˜•μ‹ λͺ…μ„Έ 기반 μƒνƒœ 관리
  • βœ… μƒνƒœ μ „ν™˜ 검증: λ¬Έμ„œ 생λͺ…μ£ΌκΈ° μžλ™ 관리 (Closed β†’ Opened β†’ Modified β†’ Saved)
  • βœ… COM μžλ™ν™”: pywin32λ₯Ό ν†΅ν•œ ν•œκΈ€ COM API 연동
  • βœ… MCP ν‘œμ€€: Claude Desktopκ³Ό μ™„μ „ ν˜Έν™˜

ν•„μš” 쑰건

  • OS: Windows (ν•œκΈ€ ν”„λ‘œκ·Έλž¨ ν•„μš”)
  • Python: 3.10 이상
  • ν•œκΈ€: ν•œκΈ€κ³Όμ»΄ν“¨ν„° μ›Œλ“œν”„λ‘œμ„Έμ„œ μ„€μΉ˜ ν•„μš”
  • νŒ¨ν‚€μ§€ κ΄€λ¦¬μž: uv ꢌμž₯

μ„€μΉ˜

1. uv둜 μ„€μΉ˜ (ꢌμž₯)

# uv μ„€μΉ˜ (μ—†λŠ” 경우)
pip install uv

# ν”„λ‘œμ νŠΈ μ˜μ‘΄μ„± μ„€μΉ˜
uv pip install -e .

2. pip둜 μ„€μΉ˜

pip install -e .

Claude Desktop μ„€μ •

claude_desktop_config.json νŒŒμΌμ— λ‹€μŒ λ‚΄μš© μΆ”κ°€:

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "hwp": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\Users\\YourName\\Projects\\HwpAutomation",
        "run",
        "python",
        "-m",
        "src.server"
      ]
    }
  }
}

μ‚¬μš© κ°€λŠ₯ν•œ 도ꡬ (Tools)

1. hwp_create_document

μƒˆ ν•œκΈ€ λ¬Έμ„œ 생성

μƒνƒœ μ „ν™˜: Closed β†’ Opened
νŒŒλΌλ―Έν„°: μ—†μŒ

2. hwp_open_document

κΈ°μ‘΄ ν•œκΈ€ λ¬Έμ„œ μ—΄κΈ°

μƒνƒœ μ „ν™˜: Closed β†’ Opened
νŒŒλΌλ―Έν„°:
  - path (string): μ—΄ 파일 경둜

3. hwp_close_document

ν˜„μž¬ λ¬Έμ„œ λ‹«κΈ°

μƒνƒœ μ „ν™˜: Opened β†’ Closed
νŒŒλΌλ―Έν„°: μ—†μŒ

4. hwp_save_document

λ¬Έμ„œ μ €μž₯

μƒνƒœ μ „ν™˜: Modified β†’ Saved
νŒŒλΌλ―Έν„°: μ—†μŒ

5. hwp_insert_text

ν…μŠ€νŠΈ μ‚½μž…

μƒνƒœ μ „ν™˜: Opened β†’ Modified
νŒŒλΌλ―Έν„°:
  - text (string): μ‚½μž…ν•  ν…μŠ€νŠΈ

6. hwp_create_table

ν‘œ λ§Œλ“€κΈ°

μƒνƒœ μ „ν™˜: Opened β†’ Modified
νŒŒλΌλ―Έν„°:
  - rows (integer): ν–‰ 개수
  - cols (integer): μ—΄ 개수

7. hwp_get_document_state

ν˜„μž¬ λ¬Έμ„œ μƒνƒœ 쑰회

νŒŒλΌλ―Έν„°: μ—†μŒ
λ°˜ν™˜: λ¬Έμ„œ μƒνƒœ 및 경둜 정보

μ‚¬μš© 예제

Claude Desktopμ—μ„œ λ‹€μŒκ³Ό 같이 μš”μ²­ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

μƒˆ ν•œκΈ€ λ¬Έμ„œλ₯Ό λ§Œλ“€κ³  "μ•ˆλ…•ν•˜μ„Έμš”, MCP!"λΌλŠ” ν…μŠ€νŠΈλ₯Ό λ„£μ–΄μ£Όμ„Έμš”.
그리고 3x3 ν‘œλ₯Ό ν•˜λ‚˜ λ§Œλ“€μ–΄μ£Όμ„Έμš”.

Claudeκ°€ μžλ™μœΌλ‘œ:

  1. hwp_create_document 호좜
  2. hwp_insert_text 호좜
  3. hwp_create_table 호좜

μ•„ν‚€ν…μ²˜

디렉토리 ꡬ쑰

HwpAutomation/
β”œβ”€β”€ Specs/
β”‚   └── HwpMCP.idr          # Idris2 ν˜•μ‹ λͺ…μ„Έ
β”œβ”€β”€ HwpBooks/
β”‚   └── ActionTable_2504.pdf # ν•œκΈ€ Action μ°Έμ‘° λ¬Έμ„œ
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ types.py            # νƒ€μž… μ •μ˜ (Idris μŠ€νŽ™ 기반)
β”‚   β”œβ”€β”€ hwp_client.py       # HWP COM ν΄λΌμ΄μ–ΈνŠΈ
β”‚   β”œβ”€β”€ tools.py            # MCP 도ꡬ μ •μ˜
β”‚   └── server.py           # MCP μ„œλ²„ μ§„μž…μ 
β”œβ”€β”€ pyproject.toml
β”œβ”€β”€ README.md
└── claude.md               # 개발 둜그

μƒνƒœ λ‹€μ΄μ–΄κ·Έλž¨

Closed ──create/open──> Opened ──insert_text/create_table──> Modified
  ↑                        ↓                                      ↓
  └────── close β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                      β”‚
                                                                  β”‚
                                         Saved <───── save β”€β”€β”€β”€β”€β”€β”€β”˜

개발

Idris2 μŠ€νŽ™ 컴파일

cd Specs
idris2 HwpMCP.idr -o build/hwp_mcp

νƒ€μž… 검증

mypy src/

ν…ŒμŠ€νŠΈ

pytest tests/

참고 자료

λΌμ΄μ„ μŠ€

MIT License

κΈ°μ—¬

이슈 및 Pull Request ν™˜μ˜ν•©λ‹ˆλ‹€!

문제 ν•΄κ²°

HWP ν”„λ‘œκ·Έλž¨μ΄ 열리지 μ•ŠλŠ” 경우

  • ν•œκΈ€κ³Όμ»΄ν“¨ν„° μ›Œλ“œν”„λ‘œμ„Έμ„œκ°€ μ„€μΉ˜λ˜μ–΄ μžˆλŠ”μ§€ 확인
  • Windowsμ—μ„œλ§Œ λ™μž‘ν•©λ‹ˆλ‹€

COM μ΄ˆκΈ°ν™” 였λ₯˜

uv pip install --upgrade pywin32
python -m win32com.client.makepy "HWPFrame.HwpObject"

κΆŒν•œ 였λ₯˜

  • κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰
  • ν•œκΈ€ ν”„λ‘œκ·Έλž¨μ΄ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ—μ„œ μ‚¬μš© 쀑이지 μ•Šμ€μ§€ 확인

About

MCP server for HWP (Hangul Word Processor) automation with Idris2 formal specifications

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages