jkf87/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 μ΄μ, μ½λμ€λ₯Ό ν΅ν΄ ν΄μ£ΌμΈμ.