Hwpx

135 tools. 74 can modify or destroy data without limits.

7 destructive tools with no built-in limits. Policy required.

Last updated:

74 can modify or destroy data
61 read-only
135 tools total

Community server · catalogue entry verified 06/05/2026 · full schemas captured for 132 of 135 tools

How to control Hwpx ↓

What Hwpx exposes to your agents

Read (61) Write / Execute (67) Destructive / Financial (7)

What Hwpx costs in tokens

19,131 tokens of tool definitions, loaded on every request
9.6% of a 200k context window
1,172 heaviest tool: build_document
Critical Risk

The most dangerous Hwpx tools

74 of Hwpx's 135 tools can modify, destroy, or commit something on every call — and an agent calls them with no built-in limits.

How to control Hwpx

PolicyLayer is an MCP gateway — it sits between your AI agents and Hwpx, and nothing reaches the server without passing your rules. These are the rules we recommend:

Deny destructive operations
{
  "delete_image": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Blocked by default. Requires approval."
      }
    ]
  }
}

Destructive tools should never be available to autonomous agents without human approval.

Rate limit write operations
{
  "invalidate_reading_cache": {
    "limits": [
      {
        "counter": "invalidate_reading_cache_per_hour",
        "window": "hour",
        "max": 30,
        "scope": "grant"
      }
    ]
  }
}

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "build_position_index": {
    "limits": [
      {
        "counter": "build_position_index_per_minute",
        "window": "minute",
        "max": 60,
        "scope": "grant"
      }
    ]
  }
}

Controls API costs and prevents retry loops from exhausting upstream rate limits.

  1. Create a free account and register Hwpx — nothing to install.
  2. Add these rules — paste them, or build them visually. Tune the limits to your setup.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
ENFORCE POLICY ON HWPX →

Free to start. No card required.

All 135 Hwpx tools

WRITE 67 tools
Write invalidate_reading_cache 🔄 Clear cached chunks and position index. Call this after modifying the document to ensure fresh data on nex Write remove_hanging_indent Remove hanging indent from a paragraph (HWPX only) Write remove_table_cell_hanging_indent Remove hanging indent from a paragraph inside a table cell (HWPX only) Write build_document ⭐ Build an entire document body in a SINGLE call. Instead of calling insert_paragraph 30+ times, pass all elem Write append_text_to_paragraph Append text to an existing paragraph (HWPX only) Write format_text Apply character formatting to a specific character range within a paragraph. Splits runs as needed. Positions Write redo Redo the last undone change(s). Supports multiple redo with count parameter. Write render_mermaid Render a Mermaid diagram and insert it as an independent element OUTSIDE tables (HWPX only). Uses mermaid.ink Write repair_xml Attempt to repair XML issues in a section. Removes orphan closing tags and fixes table structure. Write split_cell Split a merged table cell back into individual cells (HWPX only). Only works on cells with colSpan > 1 or rowS Write undo Undo the last change(s). Supports multiple undo with count parameter. Write apply_style Apply a named style to a paragraph (HWPX only) Write batch_fill_table Fill multiple table cells at once from a 2D array. Perfect for: - Filling data tables from CSV/JSON - Batch u Write batch_replace Perform multiple text replacements at once (HWPX only) Write close_document Close an open document Write copy_paragraph Copy a paragraph to another location (HWPX only) Write copy_table Copy a table to another location (HWPX only). Preserves original and generates new IDs for the copy. Uses stri Write create_document Create a new empty HWPX document Write export_to_html Export document to HTML file Write export_to_text Export document to plain text file Write fill_by_path ⭐ RECOMMENDED for template work! Fill multiple cells using path-based addressing. jkf87-style path format: "l Write insert_bookmark Insert a bookmark at a specific location (HWPX only) Write insert_ellipse Insert an ellipse drawing object (HWPX only) Write insert_endnote Insert an endnote at a specific location (HWPX only) Write insert_equation Insert an equation (HWPX only) Write insert_footnote Insert a footnote at a specific location (HWPX only) Write insert_hyperlink Insert a hyperlink in a paragraph (HWPX only) Write insert_image Insert an image as an independent element in the document (HWPX only). The image is placed OUTSIDE of tables, Write insert_image_in_cell 📍 Insert an image INSIDE a specific table cell (HWPX only). The image appears inline within the cell content. Write insert_line Insert a line drawing object (HWPX only) Write insert_memo Insert a memo/comment (HWPX only) Write insert_nested_table Insert a table inside a table cell (nested table, HWPX only) Write insert_page_break Insert a page break after the specified element (HWPX only). Creates an empty paragraph with pageBreak attribu Write insert_paragraph Insert a new paragraph with optional inline styles (HWPX only). Supports paragraph style (align, margin) and t Write insert_rect Insert a rectangle drawing object (HWPX only) Write insert_section Insert a new section (HWPX only) Write insert_table Insert a new table with optional header row auto-styling (HWPX only). Use header_bg_color/header_font_color to Write insert_table_column Insert a new column in a table (HWPX only) Write insert_table_row Insert a new row in a table (HWPX only) Write merge_cells Merge multiple table cells into a single cell (HWPX only). The top-left cell becomes the master cell with incr Write move_paragraph Move a paragraph to another location (HWPX only) Write move_table Move a table to another location (HWPX only). Uses XML-based approach for accurate structure preservation with Write render_mermaid_in_cell 📍 Render a Mermaid diagram and insert it INSIDE a specific table cell (HWPX only). Uses mermaid.ink API. ⚠️ Write replace_text Find and replace text throughout the ENTIRE document (HWPX only). ⚠️ This searches ALL paragraphs and table c Write replace_text_in_cell Replace text within a specific table cell (HWPX only). More targeted than replace_text. Write save_document Save the document (HWPX only). Supports backup creation and integrity verification. Write set_auto_hanging_indent Automatically set hanging indent based on detected marker in paragraph text (HWPX only). Detects markers like Write set_cell_background_color Set background color for a table cell (HWPX only). Creates borderFill definition and updates cell reference. Write set_cell_properties Set table cell properties (HWPX only) Write set_column_def Set column definition for a section (HWPX only) Write set_column_widths Set individual column widths for an existing table (HWPX only). Updates cellSz, colSz, and table width in XML. Write set_document_metadata Set document metadata (HWPX only) Write set_footer Set footer content for a section (HWPX only) Write set_hanging_indent Set hanging indent with MANUAL pt value (HWPX only). 💡 In most cases, use set_auto_hanging_indent instead - Write set_header Set header content for a section (HWPX only) Write set_numbering Apply numbering (ordered) or bullet (unordered) list style to a paragraph. Use get_numbering_defs/get_bullet_d Write set_page_settings Set page settings (HWPX only) Write set_paragraph_style Apply paragraph formatting (HWPX only) Write set_raw_section_xml ⚠️ DEPRECATED: Use set_section_xml instead. This tool is kept for backward compatibility only. Write set_section_xml Set (replace) raw XML content of a section (HWPX only). WARNING: This completely replaces the section XML. The Write set_table_cell_auto_hanging_indent Automatically set hanging indent on a paragraph inside a table cell based on detected marker (HWPX only). Dete Write set_table_cell_hanging_indent Set hanging indent on a paragraph inside a table cell (HWPX only). Hanging indent pulls the first line left wh Write set_text_style Apply character formatting to a paragraph run (HWPX only). Can target both top-level paragraphs and table cell Write update_image_size Update the size of an existing image (HWPX only) Write update_paragraph_text ⭐ RECOMMENDED for template work. Update paragraph text content while PRESERVING existing styles (font, alignme Write update_paragraph_text_preserve_styles Update paragraph text while preserving the style structure of multiple runs. When a paragraph has multiple st Write update_table_cell ⭐ RECOMMENDED for template work with tables. Update cell content with optional inline styles. Features: - Pre
READ 61 tools
Read build_position_index 🗂️ Build position index for document elements (headings, paragraphs, tables). Creates a searchable index of Read analyze_xml Analyze document XML for issues like tag imbalance, malformed elements, etc. Useful for diagnosing save failur Read chunk_document 📖 Split document into overlapping chunks for agentic reading. Use this for: - Large document analysis where Read extract_toc 📋 Extract table of contents based on Korean document formatting conventions. Detects headings by: - Roman nu Read find_cell_by_label 🔍 Find table cells by label text and get the adjacent cell position. Perfect for Korean documents with "레이블: Read find_empty_tables Find tables that are empty or contain only placeholder text (dashes, bullets, numbers only) Read find_insert_position_after_header Find the right insertion position after text. Searches both independent paragraphs AND table cell contents by Read find_insert_position_after_table Find the right insertion position AFTER a specific table (OUTSIDE the table). Returns section_index and inser Read find_paragraph_by_text Find paragraphs containing specific text. Returns element indices with surrounding context. Read find_table_by_header Find tables by their header text (partial match, case-insensitive) Read get_bookmarks Get all bookmarks in the document Read get_bullet_defs Get available bullet (unordered list) definitions from the document Read get_cell_context Get surrounding cells' content around a specific cell. Returns center cell and neighboring cells in each dire Read get_char_shapes Get all character shape definitions Read get_chunk_at_offset 📌 Get the chunk containing a specific character offset. Use after finding a position in the index to get the Read get_chunk_context 📄 Get surrounding chunks for expanded context around a specific chunk. After finding a relevant chunk with s Read get_column_def Get column definition for a section Read get_document_metadata Get document metadata (title, author, dates, etc.) Read get_document_outline Get document outline - hierarchical structure showing sections, headings, and tables with their positions Read get_document_structure Get document structure (sections, paragraphs, tables, images count) Read get_document_text Get all text content from the document Read get_element_index_for_table Convert a global table index to element index in its section. Use this to find the right position for insertin Read get_endnotes Get all endnotes in the document Read get_equations Get all equations in the document Read get_footer Get footer content for a section Read get_footnotes Get all footnotes in the document Read get_hanging_indent Get hanging indent value for a paragraph Read get_header Get header content for a section Read get_hyperlinks Get all hyperlinks in the document Read get_images Get all images in the document. For inserting images, see insert_image or insert_image_in_cell. Read get_insert_context Get context around an element index to verify insertion point. Shows elements before/after. Read get_memos Get all memos/comments in the document Read get_numbering_defs Get available numbering (ordered list) definitions from the document Read get_page_settings Get page settings (paper size, margins) Read get_para_shapes Get all paragraph shape definitions Read get_paragraph Get a specific paragraph with full details Read get_paragraph_style Get paragraph formatting Read get_paragraphs Get paragraphs from the document with their text and styles Read get_position_index 📍 Get cached position index (builds if not available). Returns all indexed elements. Use search_position_ind Read get_raw_section_xml ⚠️ DEPRECATED: Use get_section_xml instead. This tool is kept for backward compatibility only. Read get_section_xml Get raw XML content of a section. Useful for AI-based document manipulation. Returns the complete section XML Read get_sections Get all sections in the document Read get_styles Get all defined styles in the document Read get_table Get a specific table with full data Read get_table_as_csv Export table content as CSV format Read get_table_cell Get content of a specific table cell Read get_table_cell_hanging_indent Get hanging indent value for a paragraph inside a table cell Read get_table_map ⭐ RECOMMENDED for finding tables. Returns ALL tables with their headers and metadata. Returns for each table: Read get_tables Get all tables from the document Read get_tables_by_section Get all tables within a specific section Read get_tables_summary Get summary of multiple tables by index range. Returns compact info: header, size, empty status, and content p Read get_text_style Get character formatting of a paragraph Read get_tool_guide 🎯 START HERE! Get recommended tools for your task. Call this FIRST to understand which tools to use. Availab Read get_user_paths Return absolute paths on the user's local machine (home, Documents, Downloads, skills/templates) plus a list o Read get_word_count Get word and character count statistics Read list_open_documents List all currently open documents Read list_template_profiles List all built-in template profiles and their preset catalogs. Use this to discover what presets build_documen Read search_chunks 🔍 Search document chunks using BM25-based relevance scoring. Returns chunks ranked by similarity to query wi Read search_position_index 🔎 Search position index by text and/or element type. Filter the position index to find specific headings, pa Read search_text Search for text in the document (includes table cells by default) Read open_document Open an HWPX or HWP document for reading and editing

Related servers

Other MCP servers with similar tools — same risk classification, starter policies for each.

Questions about Hwpx

Can an AI agent delete data through the Hwpx MCP server? +

Yes. The Hwpx server exposes 7 destructive tools including delete_image, delete_memo, delete_paragraph. These permanently remove resources with no undo. PolicyLayer blocks destructive tools by default so they never reach the upstream server.

How do I prevent bulk modifications through Hwpx? +

The Hwpx server has 67 write tools including invalidate_reading_cache, remove_hanging_indent, remove_table_cell_hanging_indent. Set a rate limit in your policy -- for example, 10 calls per hour prevents an agent from making more than 10 modifications per hour. PolicyLayer enforces this at the gateway, before calls reach Hwpx.

How many tools does the Hwpx MCP server expose? +

135 tools across 4 categories: Destructive, Execute, Read, Write. 61 are read-only. 74 can modify, create, or delete data.

How do I enforce a policy on Hwpx? +

Register the Hwpx MCP server in PolicyLayer, apply the suggested rules above (adjust the limits to your use case), and point your AI client at the PolicyLayer proxy URL instead of the server directly. Your agents keep the same tools; PolicyLayer evaluates every call against policy before it executes. Nothing to install, live in minutes.

Enforce policy on every Hwpx tool call.

Deterministic rules across all 135 Hwpx tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Free to start. No card required.

135 Hwpx tools catalogued and risk-classified — across an index of 43,000+ MCP servers.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.