Best of the MCP
HWP MCP

HWP MCP

by jkf87/hwp-mcp

1 views
Created
2 months ago
Stars
111
Language
Python
Issues
2

mcp for handling hwp

Document Processing

HWP-MCP (ํ•œ๊ธ€ Model Context Protocol)

GitHub

HWP-MCP๋Š” ํ•œ๊ธ€ ์›Œ๋“œ ํ”„๋กœ์„ธ์„œ(HWP)๋ฅผ Claude์™€ ๊ฐ™์€ AI ๋ชจ๋ธ์ด ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” Model Context Protocol(MCP) ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ํ•œ๊ธ€ ๋ฌธ์„œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑ, ํŽธ์ง‘, ์กฐ์ž‘ํ•˜๋Š” ๊ธฐ๋Šฅ์„ AI์—๊ฒŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

  • ๋ฌธ์„œ ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ: ์ƒˆ ๋ฌธ์„œ ์ƒ์„ฑ, ์—ด๊ธฐ, ์ €์žฅ ๊ธฐ๋Šฅ
  • ํ…์ŠคํŠธ ํŽธ์ง‘: ํ…์ŠคํŠธ ์‚ฝ์ž…, ๊ธ€๊ผด ์„ค์ •, ๋‹จ๋ฝ ์ถ”๊ฐ€
  • ํ…Œ์ด๋ธ” ์ž‘์—…: ํ…Œ์ด๋ธ” ์ƒ์„ฑ, ๋ฐ์ดํ„ฐ ์ฑ„์šฐ๊ธฐ, ์…€ ๋‚ด์šฉ ์„ค์ •
  • ์™„์„ฑ๋œ ๋ฌธ์„œ ์ƒ์„ฑ: ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜ ๋ณด๊ณ ์„œ ๋ฐ ํŽธ์ง€ ์ž๋™ ์ƒ์„ฑ
  • ์ผ๊ด„ ์ž‘์—…: ์—ฌ๋Ÿฌ ์ž‘์—…์„ ํ•œ ๋ฒˆ์— ์‹คํ–‰ํ•˜๋Š” ๋ฐฐ์น˜ ๊ธฐ๋Šฅ

์‹œ์Šคํ…œ ์š”๊ตฌ์‚ฌํ•ญ

  • Windows ์šด์˜์ฒด์ œ
  • ํ•œ๊ธ€(HWP) ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜
  • Python 3.7 ์ด์ƒ
  • ํ•„์ˆ˜ Python ํŒจํ‚ค์ง€ (requirements.txt ์ฐธ์กฐ)

์„ค์น˜ ๋ฐฉ๋ฒ•

  1. ์ €์žฅ์†Œ ํด๋ก :
git clone https://github.com/jkf87/hwp-mcp.git
cd hwp-mcp
  1. ์˜์กด์„ฑ ์„ค์น˜:
pip install -r requirements.txt
  1. (์„ ํƒ์‚ฌํ•ญ) MCP ํŒจํ‚ค์ง€ ์„ค์น˜:
pip install mcp

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Claude์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ธฐ

Claude ๋ฐ์Šคํฌํ†ฑ ์„ค์ • ํŒŒ์ผ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด HWP-MCP ์„œ๋ฒ„๋ฅผ ๋“ฑ๋กํ•˜์„ธ์š”:

{
  "mcpServers": {
    "hwp": {
      "command": "python",
      "args": ["๊ฒฝ๋กœ/hwp-mcp/hwp_mcp_stdio_server.py"]
    }
  }
}

์ฃผ์š” ๊ธฐ๋Šฅ ์˜ˆ์‹œ

์ƒˆ ๋ฌธ์„œ ์ƒ์„ฑ

hwp_create()

ํ…์ŠคํŠธ ์‚ฝ์ž…

hwp_insert_text("์›ํ•˜๋Š” ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.")

ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ

# ํ…Œ์ด๋ธ” ์ƒ์„ฑ
hwp_insert_table(rows=5, cols=2)

# ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ ์ฑ„์šฐ๊ธฐ
hwp_fill_table_with_data([
    ["์›”", "ํŒ๋งค๋Ÿ‰"], 
    ["1์›”", "120"], 
    ["2์›”", "150"], 
    ["3์›”", "180"], 
    ["4์›”", "200"]
], has_header=True)

# ํ‘œ์— ์—ฐ์†๋œ ์ˆซ์ž ์ฑ„์šฐ๊ธฐ
hwp_fill_column_numbers(start=1, end=10, column=1, from_first_cell=True)

๋ฌธ์„œ ์ €์žฅ

hwp_save("๊ฒฝ๋กœ/๋ฌธ์„œ๋ช….hwp")

์ผ๊ด„ ์ž‘์—… ์˜ˆ์‹œ

hwp_batch_operations([
    {"operation": "hwp_create"},
    {"operation": "hwp_insert_text", "params": {"text": "์ œ๋ชฉ"}},
    {"operation": "hwp_set_font", "params": {"size": 20, "bold": True}},
    {"operation": "hwp_save", "params": {"path": "๊ฒฝ๋กœ/๋ฌธ์„œ๋ช….hwp"}}
])

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

hwp-mcp/
โ”œโ”€โ”€ hwp_mcp_stdio_server.py  # ๋ฉ”์ธ ์„œ๋ฒ„ ์Šคํฌ๋ฆฝํŠธ
โ”œโ”€โ”€ requirements.txt         # ์˜์กด์„ฑ ํŒจํ‚ค์ง€ ๋ชฉ๋ก
โ”œโ”€โ”€ hwp-mcp-๊ตฌ์กฐ์„ค๋ช….md       # ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ ์„ค๋ช… ๋ฌธ์„œ
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ tools/
โ”‚   โ”‚   โ”œโ”€โ”€ hwp_controller.py  # ํ•œ๊ธ€ ์ œ์–ด ํ•ต์‹ฌ ์ปจํŠธ๋กค๋Ÿฌ
โ”‚   โ”‚   โ””โ”€โ”€ hwp_table_tools.py # ํ…Œ์ด๋ธ” ๊ด€๋ จ ๊ธฐ๋Šฅ ์ „๋ฌธ ๋ชจ๋“ˆ
โ”‚   โ”œโ”€โ”€ utils/                 # ์œ ํ‹ธ๋ฆฌํ‹ฐ ํ•จ์ˆ˜
โ”‚   โ””โ”€โ”€ __tests__/             # ํ…Œ์ŠคํŠธ ๋ชจ๋“ˆ
โ””โ”€โ”€ security_module/
    โ””โ”€โ”€ FilePathCheckerModuleExample.dll  # ๋ณด์•ˆ ๋ชจ๋“ˆ

ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

๋ณด์•ˆ ๋ชจ๋“ˆ ๊ด€๋ จ ๋ฌธ์ œ

๊ธฐ๋ณธ์ ์œผ๋กœ ํ•œ๊ธ€ ํ”„๋กœ๊ทธ๋žจ์€ ์™ธ๋ถ€์—์„œ ํŒŒ์ผ ์ ‘๊ทผ ์‹œ ๋ณด์•ˆ ๊ฒฝ๊ณ ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์šฐํšŒํ•˜๊ธฐ ์œ„ํ•ด FilePathCheckerModuleExample.dll ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ณด์•ˆ ๋ชจ๋“ˆ ๋“ฑ๋ก์— ์‹คํŒจํ•ด๋„ ๊ธฐ๋Šฅ์€ ์ž‘๋™ํ•˜์ง€๋งŒ, ํŒŒ์ผ ์—ด๊ธฐ/์ €์žฅ ์‹œ ๋ณด์•ˆ ๋Œ€ํ™” ์ƒ์ž๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•œ๊ธ€ ์—ฐ๊ฒฐ ์‹คํŒจ

ํ•œ๊ธ€ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์ค‘์ด์ง€ ์•Š์„ ๊ฒฝ์šฐ ์—ฐ๊ฒฐ์— ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ๊ธ€ ํ”„๋กœ๊ทธ๋žจ์ด ์„ค์น˜๋˜์–ด ์žˆ๊ณ  ์ •์ƒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ๋ฌธ์ œ

ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ ์ปค์„œ ์œ„์น˜๊ฐ€ ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ์œผ๋‚˜, ํ˜„์žฌ ๋ฒ„์ „์—์„œ๋Š” ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์…€์— ์ •ํ™•ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ๋กœ๊ทธ

2025-03-27

  • ํ‘œ ์ƒ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์ฑ„์šฐ๊ธฐ ๊ธฐ๋Šฅ ๊ฐœ์„ 
    • ํ‘œ ์•ˆ์— ํ‘œ๊ฐ€ ์ค‘์ฒฉ๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ
    • ํ‘œ ์ƒ์„ฑ๊ณผ ๋ฐ์ดํ„ฐ ์ฑ„์šฐ๊ธฐ ๊ธฐ๋Šฅ ๋ถ„๋ฆฌ
    • ํ‘œ ์ƒ์„ฑ ์ „ ํ˜„์žฌ ์ปค์„œ ์œ„์น˜ ํ™•์ธ ๋กœ์ง ์ถ”๊ฐ€
    • ๊ธฐ์กด ํ‘œ์— ๋ฐ์ดํ„ฐ๋งŒ ์ฑ„์šฐ๋Š” ๊ธฐ๋Šฅ ๊ฐœ์„ 
  • ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๊ฐœ์„ 
    • .gitignore ํŒŒ์ผ ์ถ”๊ฐ€ (์ž„์‹œ ํŒŒ์ผ, ์บ์‹œ ํŒŒ์ผ ๋“ฑ ์ œ์™ธ)

2025-03-25

  • ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ๊ธฐ๋Šฅ ๊ฐœ์„ 
    • ์ฒซ ๋ฒˆ์งธ ์…€๋ถ€ํ„ฐ ์ •ํ™•ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ๊ฐ€๋Šฅ
    • ์…€ ์„ ํƒ ๋ฐ ์ปค์„œ ์œ„์น˜ ์„ค์ • ๋กœ์ง ๊ฐœ์„ 
    • ํ…์ŠคํŠธ ์ž…๋ ฅ ์‹œ ์ปค์„œ ์œ„์น˜ ์œ ์ง€ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
  • ํ…Œ์ด๋ธ” ์ „์šฉ ๋„๊ตฌ ๋ชจ๋“ˆ(hwp_table_tools.py) ์ถ”๊ฐ€
  • hwp_fill_column_numbers ํ•จ์ˆ˜์— from_first_cell ์˜ต์…˜ ์ถ”๊ฐ€

๋ผ์ด์„ ์Šค

์ด ํ”„๋กœ์ ํŠธ๋Š” MIT ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ LICENSE ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ์—ฌ ๋ฐฉ๋ฒ•

  1. ์ด์Šˆ ์ œ๋ณด ๋˜๋Š” ๊ธฐ๋Šฅ ์ œ์•ˆ: GitHub ์ด์Šˆ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
  2. ์ฝ”๋“œ ๊ธฐ์—ฌ: ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํฌํ•จํ•œ Pull Request๋ฅผ ์ œ์ถœํ•˜์„ธ์š”.

๊ด€๋ จ ํ”„๋กœ์ ํŠธ

์—ฐ๋ฝ์ฒ˜

ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ๋ฌธ์˜๋Š” GitHub ์ด์Šˆ, ์ฝ”๋‚œ์Œค๋ฅผ ํ†ตํ•ด ํ•ด์ฃผ์„ธ์š”.

Install

No configuration available

This service may require manual configuration, please check the details on the left

Related

Related projects feature coming soon

Will recommend related projects based on sub-categories