hwp-mcp
If you are the rightful owner of hwp-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
HWP-MCP is a Model Context Protocol server that allows AI models like Claude to control the Korean word processor (HWP) for document creation, editing, and manipulation.
HWP-MCP (ํ๊ธ Model Context Protocol)
HWP-MCP๋ ํ๊ธ ์๋ ํ๋ก์ธ์(HWP)๋ฅผ Claude์ ๊ฐ์ AI ๋ชจ๋ธ์ด ์ ์ดํ ์ ์๋๋ก ํด์ฃผ๋ Model Context Protocol(MCP) ์๋ฒ์ ๋๋ค. ์ด ํ๋ก์ ํธ๋ ํ๊ธ ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑ, ํธ์ง, ์กฐ์ํ๋ ๊ธฐ๋ฅ์ AI์๊ฒ ์ ๊ณตํฉ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
- ๋ฌธ์ ์์ฑ ๋ฐ ๊ด๋ฆฌ: ์ ๋ฌธ์ ์์ฑ, ์ด๊ธฐ, ์ ์ฅ ๊ธฐ๋ฅ
- ํ ์คํธ ํธ์ง: ํ ์คํธ ์ฝ์ , ๊ธ๊ผด ์ค์ , ๋จ๋ฝ ์ถ๊ฐ
- ํ ์ด๋ธ ์์ : ํ ์ด๋ธ ์์ฑ, ๋ฐ์ดํฐ ์ฑ์ฐ๊ธฐ, ์ ๋ด์ฉ ์ค์
- ์์ฑ๋ ๋ฌธ์ ์์ฑ: ํ ํ๋ฆฟ ๊ธฐ๋ฐ ๋ณด๊ณ ์ ๋ฐ ํธ์ง ์๋ ์์ฑ
- ์ผ๊ด ์์ : ์ฌ๋ฌ ์์ ์ ํ ๋ฒ์ ์คํํ๋ ๋ฐฐ์น ๊ธฐ๋ฅ
์์คํ ์๊ตฌ์ฌํญ
- Windows ์ด์์ฒด์
- ํ๊ธ(HWP) ํ๋ก๊ทธ๋จ ์ค์น
- Python 3.7 ์ด์
- ํ์ Python ํจํค์ง (requirements.txt ์ฐธ์กฐ)
์ค์น ๋ฐฉ๋ฒ
- ์ ์ฅ์ ํด๋ก :
git clone https://github.com/jkf87/hwp-mcp.git
cd hwp-mcp
- ์์กด์ฑ ์ค์น:
pip install -r requirements.txt
- (์ ํ์ฌํญ) 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 ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ํ์ผ์ ์ฐธ์กฐํ์ธ์.
๊ธฐ์ฌ ๋ฐฉ๋ฒ
- ์ด์ ์ ๋ณด ๋๋ ๊ธฐ๋ฅ ์ ์: GitHub ์ด์๋ฅผ ์ฌ์ฉํ์ธ์.
- ์ฝ๋ ๊ธฐ์ฌ: ๋ณ๊ฒฝ์ฌํญ์ ํฌํจํ Pull Request๋ฅผ ์ ์ถํ์ธ์.
๊ด๋ จ ํ๋ก์ ํธ
- HWP SDK: ํ๊ธ๊ณผ์ปดํจํฐ์ ๊ณต์ SDK
- Cursor MCP
- Smithery
์ฐ๋ฝ์ฒ
ํ๋ก์ ํธ ๊ด๋ จ ๋ฌธ์๋ GitHub ์ด์, ์ฝ๋์ค๋ฅผ ํตํด ํด์ฃผ์ธ์.