🚀 HWP MCP 服務器
HWP MCP 服務器藉助 HWP COM API,使大語言模型(LLMs)能夠讀取和修改二進制 HWP(韓文字處理軟件文檔)文件。
🚀 快速開始
運行 MCP 服務器
python -m hwp_mcp.server
Claude 桌面配置
{
"mcpServers": {
"hwp": {
"command": "uv",
"args": ["run", "--directory", "/path/to/hwp-mcp", "hwp-mcp"]
}
}
}
✨ 主要特性
- 支持大語言模型通過 HWP COM API 讀取和修改二進制 HWP 文檔。
- 提供豐富的工具集,涵蓋文檔管理、讀寫、格式設置、表格操作等多個方面。
📦 安裝指南
uv pip install -e .
💻 使用示例
基礎用法
python -m hwp_mcp.server
📚 詳細文檔
MCP 工具(140 個)
文檔管理(5 個)
| 工具 |
描述 |
open_document |
打開 HWP 文檔 |
close_document |
關閉文檔 |
list_open_documents |
列出已打開的文檔 |
save_document |
保存文檔 |
save_document_as |
以不同名稱/格式保存文檔 |
讀取(5 個)
| 工具 |
描述 |
get_document_text |
提取全文 |
get_paragraphs |
獲取段落列表 |
get_tables |
獲取表格列表 |
get_table_data |
獲取表格數據(二維數組) |
search_text |
搜索文本 |
寫入(5 個)
| 工具 |
描述 |
replace_text |
替換文本 |
insert_text |
插入文本 |
set_table_cell_text |
設置表格單元格文本 |
append_paragraph |
追加段落 |
set_text_file |
根據文本數據設置文檔內容 |
格式設置(3 個)
| 工具 |
描述 |
set_text_style |
字符格式設置(字體、大小、加粗、顏色等) |
set_paragraph_style |
段落格式設置(對齊方式、行間距) |
set_page_style |
頁面格式設置(頁邊距、方向) |
表格(3 個)
| 工具 |
描述 |
create_table |
創建表格 |
add_table_row |
添加表格行 |
delete_table_row |
刪除表格行 |
高級操作(5 個)
| 工具 |
描述 |
run_hwp_action |
執行任意 HWP 操作(高級用戶) |
convert_to_hwpx |
將 HWP 轉換為 HWPX |
convert_to_pdf |
將 HWP 轉換為 PDF |
batch_convert_files |
批量轉換文件(HWP、PDF、DOCX 等) |
set_file_security |
文件安全設置(複製/打印限制) |
光標與導航(11 個)
| 工具 |
描述 |
move_cursor |
將光標移動到指定位置 |
get_cursor_position |
獲取當前光標位置 |
set_cursor_position |
設置光標位置(列表、段落、位置) |
get_pos_by_set |
獲取光標位置作為集合 |
set_pos_by_set |
根據集合設置光標位置 |
get_selected_pos_by_set |
獲取選擇的起始/結束位置 |
select_text |
通過座標選擇文本範圍 |
get_selection_info |
獲取當前選擇信息 |
clear_selection |
清除選擇 |
delete_selection |
刪除所選內容 |
init_scan |
初始化文檔掃描 |
字段(12 個)
| 工具 |
描述 |
create_field |
創建命名字段(模板佔位符) |
field_exists |
檢查字段是否存在 |
get_field_list |
獲取所有字段名稱 |
get_field_text |
讀取字段文本 |
put_field_text |
設置字段文本 |
get_current_field |
獲取光標處的字段名稱 |
set_current_field_name |
設置當前字段名稱 |
move_to_field |
將光標移動到字段 |
rename_field |
重命名字段 |
modify_field_properties |
修改字段屬性 |
set_field_ctrl_properties |
設置字段控件屬性 |
batch_fill_fields |
批量填充多個字段 |
高級表格(11 個)
| 工具 |
描述 |
add_table_column |
添加表格列 |
delete_table_column |
刪除表格列 |
merge_table_cells |
合併單元格 |
split_table_cell |
拆分單元格 |
set_table_cell_style_adv |
單元格樣式(背景、垂直對齊) |
set_table_border_adv |
表格邊框樣式 |
table_to_text |
表格轉換為文本 |
text_to_table |
文本轉換為表格 |
swap_table_row_col |
交換表格行/列 |
apply_table_template |
應用表格模板 |
增強格式設置(5 個)
| 工具 |
描述 |
set_char_shape |
擴展字符屬性(字距、間距、陰影等) |
set_bullet_style |
項目符號樣式 |
set_numbering_style |
編號樣式 |
set_tab_definition |
製表位 |
manage_style |
創建/刪除/應用樣式 |
頁面與章節(10 個)
| 工具 |
描述 |
set_section_definition |
章節定義(裝訂邊距、文本流向) |
set_page_border |
頁面邊框和背景 |
set_columns |
多列布局 |
set_page_number |
頁碼 |
set_header_footer |
頁眉/頁腳 |
set_footnote_style |
腳註樣式 |
set_master_page |
母版頁 |
set_page_hiding |
隱藏頁面元素(頁眉/頁腳等) |
set_page_num_ctrl |
頁碼控制(重新開始編號) |
set_text_direction |
文本方向(水平/垂直) |
圖像與公式(3 個)
| 工具 |
描述 |
insert_picture |
插入圖片 |
insert_background_picture |
插入背景圖片 |
create_equation |
插入公式 |
表單控件(3 個)
| 工具 |
描述 |
insert_form_control |
插入表單控件(按鈕、複選框等) |
set_form_properties |
設置表單控件屬性 |
get_form_data |
讀取表單數據 |
文檔信息(5 個)
| 工具 |
描述 |
get_document_info |
文檔元數據(頁數、修改狀態) |
get_document_summary |
文檔摘要(標題、作者) |
get_page_text |
提取特定頁面的文本 |
get_page_count |
總頁數 |
export_page_as_image |
將頁面導出為圖像 |
打印與導出(3 個)
| 工具 |
描述 |
print_document |
打印文檔 |
set_watermark |
設置水印(文本/圖像) |
save_as_image |
將文檔保存為圖像 |
實用工具(4 個)
| 工具 |
描述 |
convert_units |
單位轉換(毫米、磅、HWP 單位) |
rgb_color |
RGB/十六進制顏色轉換為 HWP 顏色值 |
run_macro |
運行 HWP 宏 |
get_file_info |
獲取文件元數據(無需打開) |
書籤與超鏈接(6 個)
| 工具 |
描述 |
insert_bookmark |
插入書籤 |
insert_hyperlink |
插入超鏈接 |
hyperlink_jump |
跳轉到超鏈接目標 |
insert_index_mark |
插入索引標記 |
insert_auto_number |
插入自動編號字段 |
insert_cross_reference |
插入交叉引用 |
頁眉/頁腳與標題(2 個)
| 工具 |
描述 |
set_drop_cap |
首字下沉(裝飾性首字母) |
set_caption |
表格/圖像標題 |
文檔操作(8 個)
| 工具 |
描述 |
sort_text |
對文本進行排序 |
spell_check |
拼寫檢查 |
set_track_changes |
跟蹤更改 |
mail_merge |
郵件合併 |
make_table_of_contents |
生成目錄 |
insert_file |
插入另一個文件 |
set_password |
設置文檔密碼 |
save_block |
將選擇內容保存到文件 |
兼容性與設置(3 個)
| 工具 |
描述 |
set_compatible_document |
文檔兼容模式 |
set_view_properties |
HWP 視圖屬性(縮放、視圖模式等) |
set_engine_properties |
HWP 引擎屬性(拼寫檢查、自動保存等) |
控件與對象(4 個)
| 工具 |
描述 |
delete_ctrl |
刪除所選控件 |
find_ctrl |
查找控件 |
check_x_object |
檢查 X 對象是否存在 |
release_scan |
釋放掃描資源 |
樣式與腳本(4 個)
| 工具 |
描述 |
import_style |
導入樣式 |
export_style |
導出樣式 |
run_script |
運行 HWP 腳本 |
get_script_source |
獲取腳本源代碼 |
系統與安全(11 個)
| 工具 |
描述 |
register_module |
註冊 COM 模塊 |
set_drm_authority |
DRM 權限 |
lock_command |
鎖定/解鎖命令 |
is_command_lock |
檢查命令鎖定狀態 |
set_message_box_mode |
消息框模式 |
get_message_box_mode |
獲取消息框模式 |
is_action_enable |
檢查操作是否啟用 |
replace_action |
替換操作處理程序 |
get_hwp_property |
獲取 HWP COM 屬性 |
set_hwp_property |
設置 HWP COM 屬性 |
hwp_enum |
字符串轉換為 HWP 枚舉值 |
HParameterSet 操作(10 個)
| 工具 |
描述 |
HParameterSet 數量 |
hwp_table_param_action |
表格操作 |
14 |
hwp_file_param_action |
文件操作 |
11 |
hwp_draw_param_action |
繪圖對象操作 |
22 |
hwp_shape_param_action |
形狀操作 |
6 |
hwp_style_param_action |
樣式/邊框操作 |
6 |
hwp_form_param_action |
表單操作 |
13 |
hwp_doc_info_param_action |
文檔信息操作 |
9 |
hwp_hanja_param_action |
漢字/轉換操作 |
11 |
hwp_selection_param_action |
選擇/位置操作 |
6 |
hwp_misc_param_action |
雜項操作 |
69 |
項目結構
hwp-mcp/
├── src/hwp_mcp/
│ ├── __init__.py
│ ├── _core.py # FastMCP 實例與共享輔助函數
│ ├── server.py # 入口點,導入所有工具模塊
│ ├── bridge.py # PowerShell 子進程管理器
│ ├── commands.py # JSON 命令構建器
│ └── tools/ # MCP 工具定義(140 個工具)
│ ├── cursor.py
│ ├── doc_info.py
│ ├── document.py
│ ├── drawing.py
│ ├── field.py
│ ├── form.py
│ ├── formatting.py
│ ├── hparam.py
│ ├── hwpobject.py
│ ├── page_section.py
│ ├── print_export.py
│ ├── system.py
│ ├── table.py
│ ├── text.py
│ └── utility.py
├── scripts/
│ ├── hwp_bridge.ps1 # PowerShell COM 橋接調度器
│ └── handlers/ # 12 個處理模塊
│ ├── document.ps1
│ ├── text.ps1
│ ├── table.ps1
│ ├── style_format.ps1
│ ├── action.ps1
│ ├── cursor_selection.ps1
│ ├── field.ps1
│ ├── draw_object.ps1
│ ├── form_control.ps1
│ ├── document_info.ps1
│ ├── print_export.ps1
│ ├── utility.ps1
│ └── hwpobject_methods.ps1
├── tests/
│ ├── test_bridge.py # 橋接單元測試
│ ├── test_commands.py # 命令構建器單元測試
│ └── test_server.py # 服務器工具單元測試
└── pyproject.toml
開發
uv pip install -e ".[dev]"
pytest tests/ -v
ruff check src/ tests/
🔧 技術細節
Python MCP 服務器管理一個長期運行的 PowerShell 子進程,該子進程託管 HWP COM 對象。架構如下:
LLM ↔ MCP Server (Python/FastMCP) ↔ PowerShell Bridge (JSON stdin/stdout) ↔ HWP COM API ↔ 한글
📄 許可證
本項目採用 MIT 許可證。
⚠️ 侷限性
- 僅支持 Windows:HWP COM API 僅在 Windows 系統上可用。
- 需要安裝韓文字處理軟件:必須安裝 한컴오피스 한글。
- 僅支持二進制 HWP 文件:基於 XML 的 HWPX 文件需要單獨的服務器。