Read, create, and edit Korean HWPX documents with advanced support.
HWPX MCP Server - Enhanced Edition
π Original νλ‘μ νΈλ₯Ό Forkνμ¬ μμ μ±κ³Ό κΈ°λ₯μ λν κ°μ ν λ²μ μ λλ€.
AI λꡬ(Claude λ±)μ μ°λνμ¬ νκΈ(HWPX) λ¬Έμλ₯Ό μλμΌλ‘ νΈμ§ν μ μλ MCP(Model Context Protocol) μλ²μ λλ€.
π Cross-Platform Support
λͺ¨λ μ΄μ체μ μμ μλν©λλ€!
| OS | MCP μλ² | HWPX νΈμ§ | κ²°κ³Όλ¬Ό νμΈ |
|---|---|---|---|
| β Windows | β | β | νμ»΄μ€νΌμ€ |
| β macOS | β | β | νμ»΄μ€νΌμ€ Mac |
| β Linux | β | β | νμ»΄μ€νΌμ€ Linux / LibreOffice* |
μ κ°λ₯νκ°μ? HWPX νμΌμ ZIP + XML ꡬ쑰μ λλ€. νκΈ νλ‘κ·Έλ¨ μμ΄λ Node.jsλ§μΌλ‘ μλ²½νκ² μ½κ³ μΈ μ μμ΅λλ€.
*LibreOfficeλ HWPXλ₯Ό μ νμ μΌλ‘ μ§μν©λλ€. μλ²½ν νΈνμ μν΄ νμ»΄μ€νΌμ€ μ¬μ©μ κΆμ₯ν©λλ€.
β¨ Enhanced Features (κ°μ λ κΈ°λ₯)
μλ³Έ νλ‘μ νΈ λλΉ λ€μκ³Ό κ°μ ν΅μ¬ λ¬Έμ λ€μ ν΄κ²°νμ΅λλ€:
π§ Critical Bug Fixes
| λ¬Έμ | μλ³Έ μν | κ°μ ν |
|---|---|---|
| ν μ΄λΈ μ μ₯ μ€ν¨ | μ μμ ν μ μ₯ν΄λ λ³κ²½μ¬ν μ¬λΌμ§ | β μλ²½νκ² μ μ₯λ¨ |
| ν μ€νΈ κ²ΉμΉ¨ νμ | μ μ₯ ν νκΈμμ μ΄λ©΄ κΈμκ° κ²Ήμ³ νμ | β μ μ νμ |
| νμΌ μμ | μ μ₯ μ κ°λ νμΌμ΄ μμλ¨ | β μμμ μ°κΈ°λ‘ 100% μμ |
| λ€μ€ μ μμ | κ°μ νμ μ¬λ¬ μ μμ μ XML μμ | β μΈλ±μ€ κ΄λ¦¬λ‘ μμ |
| μκ°/μ€κ°κ²© μμ€ | μ μ₯ ν μ€νμΌ μ 보 μ μ€ | β λͺ¨λ μ€νμΌ λ³΄μ‘΄ |
π Technical Improvements
Atomic File Writing (μμμ νμΌ μ°κΈ°)
- μμ νμΌ β ZIP κ²μ¦ β μμμ μ΄λ
- μ μ₯ μ€ μ€λ₯ λ°μν΄λ μλ³Έ νμΌ λ³΄νΈ
Smart Lineseg Reset (μ€λ§νΈ μ€ λ μ΄μμ μ΄κΈ°ν)
- ν
μ€νΈ μμ μ
linesegμλ μ΄κΈ°ν - νκΈ νλ‘κ·Έλ¨μ΄ μ΄ λ μλμΌλ‘ μ€λ°κΏ μ¬κ³μ°
- ν μ€νΈ κ²ΉμΉ¨ νμ μμ ν΄κ²°
- ν
μ€νΈ μμ μ
Depth-based XML Parsing (κΉμ΄ κΈ°λ° XML νμ±)
- κΈ°μ‘΄ lazy regexμ μ€μ²© ꡬ쑰 μ€μΈμ λ¬Έμ ν΄κ²°
- 볡μ‘ν ν μ΄λΈ(μ€μ²© ν μ΄λΈ, subList λ±) μλ²½ μ§μ
Complete Style Preservation (μ€νμΌ μμ 보쑴)
charPr,spacingλ± μλ³Έ μ€νμΌ 100% μ μ§- λΆμμ ν μ§λ ¬ν λ‘μ§ μ κ±°λ‘ λ°μ΄ν° λ¬΄κ²°μ± λ³΄μ₯
Safe Multi-Cell Updates (μμ ν λ€μ€ μ μ λ°μ΄νΈ)
- κ°μ ν(row)μ μ¬λ¬ μ μ λμμ μμ ν΄λ μμ
- νλ³ κ·Έλ£Ήν + μμ μ²λ¦¬λ‘ μΈλ±μ€ μμ λ°©μ§
π¦ Installation
1. MCP μλ² μ€μΉ
git clone https://github.com/Dayoooun/hwpx-mcp.git
cd hwpx-mcp/mcp-server
npm install
npm run build
2. MCP ν΄λΌμ΄μΈνΈ μ€μ
μλμμ μ¬μ©νλ ν΄λΌμ΄μΈνΈλ₯Ό μ ννμΈμ.
π₯οΈ Claude Desktop
μ€μ νμΌ μμΉ:
| OS | κ²½λ‘ |
|---|---|
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
μ€μ λ΄μ©:
{
"mcpServers": {
"hwpx-mcp": {
"command": "node",
"args": ["C:/path/to/hwpx-mcp/mcp-server/dist/index.js"]
}
}
}
β οΈ Windowsμμλ κ²½λ‘μ
\\λλ/μ¬μ© (μ:C:/Users/username/hwpx-mcp/...)
π» Claude Code (CLI)
λ°©λ² 1: νλ‘μ νΈλ³ μ€μ (.mcp.json νμΌμ νλ‘μ νΈ λ£¨νΈμ μμ±)
{
"mcpServers": {
"hwpx-mcp": {
"command": "node",
"args": ["/path/to/hwpx-mcp/mcp-server/dist/index.js"]
}
}
}
λ°©λ² 2: μ μ μ€μ (~/.claude/settings.json)
{
"mcpServers": {
"hwpx-mcp": {
"command": "node",
"args": ["/path/to/hwpx-mcp/mcp-server/dist/index.js"]
}
}
}
λ°©λ² 3: CLI λͺ λ Ήμ΄λ‘ μΆκ°
claude mcp add hwpx-mcp node /path/to/hwpx-mcp/mcp-server/dist/index.js
π· Cursor
μ€μ νμΌ: ~/.cursor/mcp.json (μμΌλ©΄ μμ±)
{
"mcpServers": {
"hwpx-mcp": {
"command": "node",
"args": ["/path/to/hwpx-mcp/mcp-server/dist/index.js"]
}
}
}
λλ Cursor Settings > MCP μμ μ§μ μΆκ° κ°λ₯
π VS Code (MCP νμ₯ μ¬μ© μ)
μ€μ νμΌ: .vscode/mcp.json (νλ‘μ νΈ ν΄λ λ΄)
{
"servers": {
"hwpx-mcp": {
"command": "node",
"args": ["${workspaceFolder}/../hwpx-mcp/mcp-server/dist/index.js"]
}
}
}
${workspaceFolder}λ³μλ₯Ό νμ©νλ©΄ μλ κ²½λ‘ μ§μ κ°λ₯
π οΈ κΈ°ν MCP ν΄λΌμ΄μΈνΈ
μΌλ°μ μΈ MCP μ€μ νμ:
{
"mcpServers": {
"hwpx-mcp": {
"command": "node",
"args": ["/absolute/path/to/hwpx-mcp/mcp-server/dist/index.js"]
}
}
}
κ²½λ‘ μμ:
| OS | κ²½λ‘ μμ |
|---|---|
| Windows | C:/Users/username/hwpx-mcp/mcp-server/dist/index.js |
| macOS | /Users/username/hwpx-mcp/mcp-server/dist/index.js |
| Linux | /home/username/hwpx-mcp/mcp-server/dist/index.js |
3. μ€μΉ νμΈ
ν΄λΌμ΄μΈνΈ μ¬μμ ν MCP λꡬ λͺ©λ‘μμ hwpx-mcp μλ²μ 77κ° λκ΅¬κ° νμλλ©΄ μ±κ³΅!
π MCP Tools (77κ°)
π λ¬Έμ κ΄λ¦¬ (Document Management) - 5κ°
| Tool | μ€λͺ | μ£Όμ νλΌλ―Έν° |
|---|---|---|
create_document |
μ λΉ HWPX λ¬Έμ μμ± | title?, creator? |
open_document |
HWPX λ¬Έμ μ΄κΈ° | file_path |
close_document |
μ΄λ¦° λ¬Έμ λ«κΈ° | doc_id |
save_document |
λ¬Έμ μ μ₯ (λ°±μ /λ¬΄κ²°μ± κ²μ¦ μ§μ) | doc_id, output_path?, create_backup?, verify_integrity? |
list_open_documents |
νμ¬ μ΄λ¦° λ¬Έμ λͺ©λ‘ μ‘°ν | - |
π λ¬Έμ μ 보 (Document Info) - 5κ°
| Tool | μ€λͺ | μ£Όμ νλΌλ―Έν° |
|---|---|---|
get_document_text |
λ¬Έμ μ 체 ν μ€νΈ μΆμΆ | doc_id |
get_document_structure |
λ¬Έμ ꡬ쑰 μ‘°ν (μΉμ /λ¨λ½/ν μ΄λΈ/μ΄λ―Έμ§ μ) | doc_id |
get_document_metadata |
λ©νλ°μ΄ν° μ‘°ν (μ λͺ©, μ μ, λ μ§ λ±) | doc_id |
set_document_metadata |
λ©νλ°μ΄ν° μμ | doc_id, title?, creator?, subject?, description? |
get_word_count |
κΈμμ/λ¨μ΄μ ν΅κ³ | doc_id |
Tools (10)
create_documentCreate a new empty HWPX documentopen_documentOpen an existing HWPX documentclose_documentClose an open documentsave_documentSave document with backup and integrity verification supportlist_open_documentsList all currently open documentsget_document_textExtract all text from the documentget_document_structureGet document structure including sections, paragraphs, tables, and imagesget_document_metadataRetrieve metadata like title, author, and datesset_document_metadataModify document metadataget_word_countGet statistics for character and word countsConfiguration
{
"mcpServers": {
"hwpx-mcp": {
"command": "node",
"args": ["/path/to/hwpx-mcp/mcp-server/dist/index.js"]
}
}
}