HWP MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| open_documentB | Open an HWP document for reading and editing. Args: file_path: Path to the HWP file Returns: Document info including doc_id and file name |
| close_documentA | Close an open document. Args: doc_id: Document ID from open_document Returns: Confirmation with status |
| list_open_documentsA | List all currently open documents. Returns: List of open document summaries |
| save_documentA | Save the document. Args: doc_id: Document ID from open_document output_path: Optional output path. If None, overwrites the original. Returns: Save confirmation |
| save_document_asB | Save the document to a new file. Args: doc_id: Document ID from open_document output_path: Output file path Returns: Save confirmation with path |
| get_document_textB | Get all text content from the document. Args: doc_id: Document ID from open_document Returns: Full text content |
| get_paragraphsA | Get paragraphs from the document. Args: doc_id: Document ID from open_document start: Starting paragraph index limit: Maximum number of paragraphs to return Returns: List of paragraphs with text and index |
| get_tablesB | Get tables from the document. Args: doc_id: Document ID from open_document Returns: List of tables with metadata |
| get_table_dataA | Get full table data as a 2D array. Args: doc_id: Document ID from open_document table_index: Index of the table Returns: 2D array of cell text values |
| search_textC | Search for text in the document. Args: doc_id: Document ID from open_document query: Text to search for case_sensitive: Whether the search is case sensitive Returns: Number of matches found |
| replace_textA | Replace all occurrences of text in the document. Args: doc_id: Document ID from open_document old_text: Text to find new_text: Replacement text Returns: Number of replacements made |
| insert_textC | Insert text at the current cursor position. Args: doc_id: Document ID from open_document text: Text to insert Returns: Insertion confirmation |
| set_table_cell_textC | Set the text of a specific table cell. Args: doc_id: Document ID from open_document table_index: Index of the table row: Row index col: Column index new_text: New text content Returns: Update confirmation |
| append_paragraphA | Append a new paragraph to the end of the document. Args: doc_id: Document ID from open_document text: Paragraph text Returns: Append confirmation |
| create_tableA | Create a new table in the document. Args: doc_id: Document ID from open_document rows: Number of rows cols: Number of columns data: Optional 2D array of initial cell values Returns: Table creation confirmation |
| add_table_rowA | Add a new row to a table. Args: doc_id: Document ID from open_document table_index: Index of the table position: Row position to insert at (default: end) Returns: Row addition confirmation |
| delete_table_rowB | Delete a row from a table. Args: doc_id: Document ID from open_document table_index: Index of the table row_index: Index of the row to delete Returns: Row deletion confirmation |
| add_table_columnA | Add a column to a table. Args: doc_id: Document ID from open_document table_index: Index of the table col_index: Position to insert (default: append at end) |
| delete_table_columnB | Delete a column from a table. Args: doc_id: Document ID from open_document table_index: Index of the table col_index: Index of the column to delete |
| merge_table_cellsB | Merge a range of table cells. Args: doc_id: Document ID from open_document table_index: Index of the table start_row: Starting row index start_col: Starting column index end_row: Ending row index (inclusive) end_col: Ending column index (inclusive) |
| split_table_cellB | Split a table cell into multiple cells. Args: doc_id: Document ID from open_document table_index: Index of the table row: Row index of the cell col: Column index of the cell split_rows: Number of rows to split into split_cols: Number of columns to split into |
| set_table_cell_style_advB | Set advanced style for a table cell (background, alignment). Args: doc_id: Document ID from open_document table_index: Index of the table row: Row index col: Column index background_color: Background color in hex (e.g., "#FFFF00") vertical_align: Vertical alignment ("top", "middle", "bottom") |
| set_table_border_advA | Set border style for an entire table. Args: doc_id: Document ID from open_document table_index: Index of the table border_width: Border width in pt border_color: Border color in hex border_style: Style ("solid", "dashed", "dotted", "double", "none") outer_only: Only set outer borders |
| table_to_textB | Convert a table to text. Args: doc_id: Document ID from open_document table_index: Index of the table delimiter: Delimiter type ("tab", "comma", "space", "custom") custom_char: Custom delimiter character |
| text_to_tableC | Convert selected text to a table. Args: doc_id: Document ID from open_document delimiter: Delimiter to detect ("tab", "comma", "space") num_cols: Number of columns |
| set_text_styleB | Set character formatting for the current selection. Args: doc_id: Document ID from open_document font_name: Font name (e.g., "맑은 고딕") font_size: Font size in pt bold: Bold text italic: Italic text underline: Underline text color: Text color in hex (e.g., "#FF0000") Returns: Style confirmation |
| set_paragraph_styleB | Set paragraph formatting for the current paragraph. Args: doc_id: Document ID from open_document align: Text alignment ("left", "center", "right", "justify") line_spacing: Line spacing percentage (e.g., 160 = 160%) Returns: Style confirmation |
| set_page_styleB | Set page style for the document. Args: doc_id: Document ID from open_document orientation: "portrait" or "landscape" margin_top: Top margin in pt margin_bottom: Bottom margin in pt margin_left: Left margin in pt margin_right: Right margin in pt Returns: Style confirmation |
| set_char_shapeC | Set extended character shape properties (spacing, ratio, shadow, outline, etc.). |
| set_bullet_styleC | Apply bullet style to current paragraph. |
| set_numbering_styleC | Apply numbering style to current paragraph. |
| set_tab_definitionC | Configure tab stops for current paragraph. |
| manage_styleB | Create, delete, or apply a named style. Args: doc_id: Document ID from open_document action: "create", "delete", or "apply" style_name: Name of the style style_type: 0 = paragraph style, 1 = character style (for create) based_on: Base style name (for create) |
| move_cursorA | Move the cursor to a named position or raw MovePos ID. Args: doc_id: Document ID from open_document position: Named position (doc_start, doc_end, para_start, para_end, line_start, line_end, next_para, prev_para, next_word, prev_word, next_char, prev_char, next_page, prev_page) move_id: Raw MovePos integer ID (advanced usage) |
| get_cursor_positionA | Get the current cursor position (list, para, pos). |
| set_cursor_positionC | Set cursor to a specific position. Args: doc_id: Document ID from open_document list: List number para: Paragraph number pos: Position within paragraph |
| select_textC | Select a text range by start/end coordinates. Args: doc_id: Document ID from open_document start_list: Start list number start_para: Start paragraph number start_pos: Start position end_list: End list number end_para: End paragraph number end_pos: End position |
| get_selection_infoC | Get information about the current text selection. |
| clear_selectionC | Clear the current text selection. |
| delete_selectionC | Delete the selected content. Args: doc_id: Document ID from open_document option: Delete option (0 = selected content) |
| create_fieldA | Create a named field (placeholder for templates). Args: doc_id: Document ID from open_document name: Field name direction: 0 = horizontal, 1 = vertical memo: Field memo/description |
| field_existsC | Check if a named field exists in the document. Args: doc_id: Document ID from open_document name: Field name to check |
| get_field_listA | Get list of all fields in the document. Args: doc_id: Document ID from open_document option: 0 = all fields, 1 = clickhere fields only direction: 0 = horizontal, 1 = vertical |
| get_field_textB | Get the text content of a named field. Args: doc_id: Document ID from open_document name: Field name |
| put_field_textB | Set the text content of a named field. Args: doc_id: Document ID from open_document name: Field name text: Text to set |
| get_current_fieldC | Get the field name at the current cursor position. Args: doc_id: Document ID from open_document option: Detection option |
| move_to_fieldB | Move cursor to a named field. Args: doc_id: Document ID from open_document name: Field name get_text: Whether to get text start: Move to start of field select: Select the field content |
| rename_fieldB | Rename a field. Args: doc_id: Document ID from open_document old_name: Current field name new_name: New field name |
| modify_field_propertiesC | Modify properties of a named field. Args: doc_id: Document ID from open_document name: Field name property: Property name to modify value: New property value |
| batch_fill_fieldsA | Fill multiple fields at once (batch operation). Args: doc_id: Document ID from open_document fields: Dict mapping field names to text values |
| insert_pictureC | Insert a picture into the document. |
| insert_background_pictureC | Insert a background picture (mode: 0=tile, 1=center, 2=fill). |
| create_equationC | Create an equation using HWP equation syntax. |
| insert_form_controlC | Insert a form control (button, checkbox, combobox, edit, listbox). |
| set_form_propertiesC | Set properties on the currently selected form control. |
| get_form_dataC | Get form control data from the document. |
| set_section_definitionC | Set extended section definition (gutter, text flow, start page). |
| set_page_borderC | Set page border and fill color. |
| set_columnsC | Set multi-column layout for current section. |
| set_page_numberC | Insert page number control. |
| set_header_footerB | Set header or footer text. Args: doc_id: Document ID from open_document type: "header" or "footer" where: 0=all pages, 1=odd, 2=even, 3=first text: Text content |
| set_footnote_styleC | Configure footnote style (numbering, separator). |
| get_document_infoB | Get document metadata (page count, modification status, path, version). |
| get_document_summaryC | Get or set document summary info (title, author, subject, keywords). |
| get_page_textB | Get text content of a specific page (1-based page number). |
| get_page_countC | Get the total page count of the document. |
| export_page_as_imageC | Export a page as an image file (bmp, jpg, png). |
| print_documentA | Print the document. Args: doc_id: Document ID from open_document range: 0=all, 1=current page, 2=specified pages from_page: Start page (when range=2) to_page: End page (when range=2) copies: Number of copies printer_name: Target printer name collate: Collate copies |
| set_watermarkC | Set a print watermark (text or image type). |
| save_as_imageC | Save document pages as image files. |
| convert_unitsC | Convert between units (mm, pt, hwpunit). |
| rgb_colorA | Convert RGB or hex to HWP internal color value. |
| run_macroC | Execute or inspect HWP macros. Args: doc_id: Document ID from open_document action: "run" (inline), "run_named" (by name), "get_source" script: Inline script text (for "run") name: Macro name (for "run_named"/"get_source") module: Module name (for "run_named") |
| get_file_infoA | Get file metadata without opening the document. |
| register_moduleC | Register a module with HWP COM. Args: name: Module name to register path: Optional file path for the module |
| set_drm_authorityC | Set DRM authority level. Args: level: DRM authority level value |
| lock_commandB | Lock or unlock a HWP command. Args: cmd: Command name to lock/unlock lock: True to lock, False to unlock |
| is_command_lockB | Check if a command is locked. Args: cmd: Command name to check |
| set_message_box_modeA | Set message box display mode. Use 0x00020000 to suppress all dialogs. Args: mode: Message box mode flags |
| get_message_box_modeA | Get current message box mode. |
| is_action_enableB | Check if a HWP action is currently enabled. Args: action: Action name to check (e.g. "Copy", "Paste", "Undo") |
| replace_actionC | Replace one action handler with another. Args: old_action: Action name to replace new_action: Replacement action name |
| get_hwp_propertyB | Get a property value from HWP COM object. Args: property_name: Property name (e.g. "Version", "CurFieldName") |
| set_hwp_propertyB | Set a property on HWP COM object. Args: property_name: Property name to set value: Value to assign (string, int, or bool) |
| hwp_enumA | Convert string to HWP enum value. Supported enum_type values: HAlign, VAlign, TextAlign, FontType, HwpLineType, HwpLineWidth, BorderShape, BrushType, ArcType, DrawShadowType, PageType, NumberFormat, Numbering, TableFormat, ImageFormat. Args: enum_type: Enum category name value: Enum member string to convert |
| set_text_fileC | Set text content in the document from a string. Args: doc_id: Document ID from open_document data: Text data to set format: Format type ("TEXT", "HWPML", "HTML", etc.) option: Additional format option string |
| get_pos_by_setB | Get current cursor position as list/para/pos set. Args: doc_id: Document ID from open_document |
| set_pos_by_setC | Set cursor position using list/para/pos values. Args: doc_id: Document ID from open_document list: List index para: Paragraph index pos: Position within paragraph |
| get_selected_pos_by_setA | Get selected range start and end positions. Args: doc_id: Document ID from open_document |
| set_current_field_nameC | Set the current field name at cursor position. Args: doc_id: Document ID from open_document name: Field name to set option: Field option flags prev: Previous field name next: Next field name |
| delete_ctrlC | Delete the currently selected control object. Args: doc_id: Document ID from open_document |
| find_ctrlC | Find a control object in the document. Args: doc_id: Document ID from open_document |
| check_x_objectB | Check if an X object exists by name. Args: doc_id: Document ID from open_document name: Name of the X object to check |
| init_scanA | Initialize document scanning for text extraction. option=0x0077(119) scans all text. Use with get_text/release_scan. Args: doc_id: Document ID from open_document option: Scan option flags (default 119 = all text) range: Scan range (0=entire document) |
| release_scanB | Release scan resources after InitScan. Args: doc_id: Document ID from open_document |
| import_styleC | Import a style into the document. Args: doc_id: Document ID from open_document style: Style definition string to import |
| export_styleC | Export a style from the document. Args: doc_id: Document ID from open_document style: Style name to export |
| run_scriptB | Execute a HWP script macro directly. Args: doc_id: Document ID from open_document script: Script source code to execute |
| get_script_sourceA | Get the source code of a named script. Args: doc_id: Document ID from open_document name: Script name to retrieve |
| run_hwp_actionB | Execute an arbitrary HWP action (escape hatch for power users). Args: doc_id: Document ID from open_document action_name: HWP action name (e.g., "SelectAll", "MoveDocBegin") params: Optional parameter dict for HAction.Execute param_set_name: Name of the HParameterSet to use Returns: Action execution result |
| convert_to_hwpxA | Convert HWP document to HWPX format. Args: doc_id: Document ID from open_document output_path: Output file path for the HWPX file Returns: Conversion confirmation with path |
| convert_to_pdfA | Export document as PDF. Args: doc_id: Document ID from open_document output_path: Output file path for the PDF Returns: Conversion confirmation with path |
| insert_bookmarkC | Insert a bookmark at current position. Args: doc_id: Document ID from open_document name: Bookmark name command: Bookmark command (0=insert) type: Bookmark type |
| insert_hyperlinkB | Insert a hyperlink. Args: doc_id: Document ID from open_document url: URL or link target text: Display text (defaults to url) direct_insert: 1 to insert directly |
| hyperlink_jumpC | Jump to a hyperlink target. Args: doc_id: Document ID from open_document source: Source hyperlink identifier target: Target to jump to |
| insert_index_markB | Insert an index mark entry. Args: doc_id: Document ID from open_document first: Primary index term second: Optional secondary index term |
| insert_auto_numberC | Insert auto-numbering field. Args: doc_id: Document ID from open_document num_type: Numbering type num_format: Number format (0=default) new_number: Optional starting number |
| insert_cross_referenceC | Insert a cross-reference field. Args: doc_id: Document ID from open_document command: Cross-reference command string |
| set_drop_capA | Set drop cap (initial letter decoration) for paragraph. Args: doc_id: Document ID from open_document style: Drop cap style (0=none, 1=embedded, 2=marginal) spacing: Spacing around drop cap in hwpunits face_name: Font face name face_color: Font color as HWP color value |
| set_captionA | Set caption on a table or image. Args: doc_id: Document ID from open_document side: Caption position (0=below, 1=above, 2=left, 3=right) width: Caption width in hwpunits gap: Gap between object and caption cap_full_size: 1 to match object width |
| set_field_ctrl_propertiesB | Set field control properties. Args: doc_id: Document ID from open_document command: Field command string editable: 1=editable, 0=read-only field_dirty: 1=mark as modified user: User identifier string |
| sort_textA | Sort text in selection or document. Args: doc_id: Document ID from open_document action_params: Optional HSort parameter overrides |
| spell_checkC | Run spell checker. Args: doc_id: Document ID from open_document action_params: Optional HSpellCheck parameter overrides |
| set_track_changesC | Configure track changes settings. Args: doc_id: Document ID from open_document action_params: Optional HTrackChange parameter overrides |
| mail_mergeC | Execute mail merge operation. Args: doc_id: Document ID from open_document action_params: Optional HMailMerge parameter overrides |
| make_table_of_contentsC | Generate table of contents. Args: doc_id: Document ID from open_document action_params: Optional HTableOfContents parameter overrides |
| insert_fileC | Insert another file into the document. Args: doc_id: Document ID from open_document file_path: Path to the file to insert |
| set_passwordC | Set document password. Args: doc_id: Document ID from open_document password: Password string to set |
| set_compatible_documentB | Set document compatibility mode. Args: doc_id: Document ID from open_document target_program: Target program identifier (0=HWP) current_version: Optional version number for compatibility |
| save_blockA | Save selected block to a file. Args: doc_id: Document ID from open_document filename: Output file path format: File format ("HWP", "HWPX", "HTML", "TEXT", etc.) argument: Optional format-specific argument |
| batch_convert_filesB | Batch convert files between formats (HWP, HWPX, PDF, DOCX, etc.). Args: doc_id: Document ID from open_document src_files: List of source file paths dest_files: List of destination file paths format: Target format string |
| set_file_securityB | Set file security — restrict copy/print. Args: doc_id: Document ID from open_document password: Security password no_copy: 1 to disable copy no_print: 1 to disable print |
| set_master_pageC | Set master page settings for the section. Args: doc_id: Document ID from open_document type: Master page type apply_to: Apply target (0=current section) front: Front page flag duplicate: Duplicate flag |
| set_page_hidingC | Set page element hiding (header, footer, border, etc.). Args: doc_id: Document ID from open_document fields: Bitmask of elements to hide |
| set_page_num_ctrlB | Set page numbering control — restart page number. Args: doc_id: Document ID from open_document page_starts_on: Page number to start on |
| swap_table_row_colC | Swap table rows and columns. Args: doc_id: Document ID from open_document type: Swap type (0=row↔col) swap_margin: Whether to swap margins too |
| apply_table_templateC | Apply a template to the current table. Args: doc_id: Document ID from open_document filename: Template file path format: Template format apply_target: Bitmask of what to apply create_mode: Creation mode |
| set_text_directionC | Set text direction (horizontal/vertical). Args: doc_id: Document ID from open_document text_direction: 0=horizontal, 1=vertical landscape: Landscape mode flag |
| set_view_propertiesB | Set HWP view properties (zoom, view mode, etc.). Args: doc_id: Document ID from open_document action_params: HViewProperties fields to set |
| set_engine_propertiesC | Set HWP engine properties (spell check, auto-save, etc.). Args: doc_id: Document ID from open_document action_params: HEngineProperties fields to set |
| hwp_table_param_actionB | Execute HWP action with table-related HParameterSet. Supported param_set_name values and their key properties:
Args: doc_id: Document ID from open_document action_name: HWP action to execute param_set_name: Must be one of the table param sets listed above params: Properties to set on the param set |
| hwp_file_param_actionB | Execute HWP action with file-related HParameterSet. Supported param_set_name values and their key properties:
Args: doc_id: Document ID from open_document action_name: HWP action to execute param_set_name: Must be one of the file param sets listed above params: Properties to set on the param set |
| hwp_draw_param_actionB | Execute HWP action with draw/shape-related HParameterSet. Supported param_set_name values and their key properties:
Args: doc_id: Document ID from open_document action_name: HWP action to execute param_set_name: Must be one of the draw param sets listed above params: Properties to set on the param set |
| hwp_shape_param_actionA | Execute HWP action with shape object HParameterSet. Supported param_set_name values and their key properties:
Args: doc_id: Document ID from open_document action_name: HWP action to execute param_set_name: Must be one of the shape param sets listed above params: Properties to set on the param set |
| hwp_style_param_actionA | Execute HWP action with style/border HParameterSet. Supported param_set_name values and their key properties:
Args: doc_id: Document ID from open_document action_name: HWP action to execute param_set_name: Must be one of the style param sets listed above params: Properties to set on the param set |
| hwp_form_param_actionA | Execute HWP action with form control HParameterSet. Supported param_set_name values and their key properties:
Args: doc_id: Document ID from open_document action_name: HWP action to execute param_set_name: Must be one of the form param sets listed above params: Properties to set on the param set |
| hwp_doc_info_param_actionB | Execute HWP action with document info HParameterSet. Supported param_set_name values and their key properties:
Args: doc_id: Document ID from open_document action_name: HWP action to execute param_set_name: Must be one of the doc info param sets listed above params: Properties to set on the param set |
| hwp_hanja_param_actionB | Execute HWP action with hanja/conversion HParameterSet. Supported param_set_name values and their key properties:
Args: doc_id: Document ID from open_document action_name: HWP action to execute param_set_name: Must be one of the hanja/conversion param sets listed above params: Properties to set on the param set |
| hwp_selection_param_actionA | Execute HWP action with selection/navigation HParameterSet. Supported param_set_name values and their key properties:
Args: doc_id: Document ID from open_document action_name: HWP action to execute param_set_name: Must be one of the selection param sets listed above params: Properties to set on the param set |
| hwp_misc_param_actionA | Execute HWP action with miscellaneous HParameterSet. This is the catch-all for all 67 remaining HParameterSets not covered by the specialized category tools. Key param_set_name values include: Section & Page:
Character & Paragraph:
Insert & Objects:
Find & Replace:
Print & Export:
Misc:
Args: doc_id: Document ID from open_document action_name: HWP action to execute param_set_name: Any HParameterSet name not covered by other tools params: Properties to set on the param set |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mjyoo2/hwp-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server