Skip to main content

Model Context Protocol server for local HWPX document automation.

Project description

hwpx-mcp-server

Stateless MCP server for reading and editing HWPX documents with python-hwpx.

What Changed in v2

  • Stateless tool design: every tool receives filename (or source_filename) and works in one call.
  • No session/handle IDs in default workflow.
  • Token-safe text responses with max_chars limits.
  • LLM-friendly tool names (get_document_text, find_text, search_and_replace, batch_replace).
  • Advanced XML/pipeline tools are opt-in with HWPX_MCP_ADVANCED=1.

Install

uvx hwpx-mcp-server

Requirements:

  • Python 3.10+
  • python-hwpx >= 1.9

MCP Client Config

Example (claude_desktop_config.json):

{
  "mcpServers": {
    "hwpx": {
      "command": "uvx",
      "args": ["hwpx-mcp-server"]
    }
  }
}

Core Tool Surface

Document

  • create_document(filename, title?, author?)
  • get_document_info(filename)
  • get_document_text(filename, max_chars?)
  • get_document_outline(filename)
  • list_available_documents(directory?)
  • copy_document(source_filename, destination_filename?)

Content

  • add_heading(filename, text, level?)
  • add_paragraph(filename, text, style?)
  • insert_paragraph(filename, paragraph_index, text, style?)
  • delete_paragraph(filename, paragraph_index)
  • add_table(filename, rows, cols, data?)
  • get_table_text(filename, table_index?)
  • set_table_cell_text(filename, table_index, row, col, text)
  • add_page_break(filename)
  • add_memo(filename, paragraph_index, text)
  • remove_memo(filename, paragraph_index)

Search / Replace

  • find_text(filename, text_to_find, match_case?, max_results?)
  • search_and_replace(filename, find_text, replace_text)
  • batch_replace(filename, replacements)

batch_replace runs in order and saves once after all replacements.

Formatting

  • format_text(filename, paragraph_index, start_pos, end_pos, ...)
  • create_custom_style(filename, style_name, ...)
  • list_styles(filename)
  • format_table(filename, table_index, has_header_row?)
  • merge_table_cells(filename, table_index, start_row, start_col, end_row, end_col)
  • split_table_cell(filename, table_index, row, col)

Advanced Mode (Opt-in)

Set HWPX_MCP_ADVANCED=1 to enable advanced/debug tools:

  • package_parts
  • package_get_xml
  • package_get_text
  • object_find_by_tag
  • object_find_by_attr
  • plan_edit
  • preview_edit
  • apply_edit
  • validate_structure
  • lint_text_conventions

These tools are hidden by default.

Environment Variables

Variable Description Default
HWPX_MCP_MAX_CHARS Default max text size for text-returning tools 10000
HWPX_MCP_AUTOBACKUP Create .bak before save when 1 1
LOG_LEVEL Log level INFO
HWPX_MCP_ADVANCED Enable advanced tools when 1 0

Example: Year Rollover

batch_replace("school_plan.hwpx", [
  {"find": "2026", "replace": "2027"},
  {"find": "2025", "replace": "2026"},
])

Development

Run tests:

pytest -q

Run server (stdio transport):

hwpx-mcp-server

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hwpx_mcp_server-2.0.4.tar.gz (87.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hwpx_mcp_server-2.0.4-py3-none-any.whl (77.4 kB view details)

Uploaded Python 3

File details

Details for the file hwpx_mcp_server-2.0.4.tar.gz.

File metadata

  • Download URL: hwpx_mcp_server-2.0.4.tar.gz
  • Upload date:
  • Size: 87.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for hwpx_mcp_server-2.0.4.tar.gz
Algorithm Hash digest
SHA256 bf1a73d4cf54c40c52434541cc64bb76a8122ee0f385d6926f5b14db007b7676
MD5 a9aa872e53f762d9d172bfdb973f565d
BLAKE2b-256 e828b58f0a5f59449ae66080507c5f7fd5c965704b0a490abfad8283bf168e49

See more details on using hashes here.

File details

Details for the file hwpx_mcp_server-2.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for hwpx_mcp_server-2.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c924b2160c3ce4ff69cb6e24d0fbf69745dbeb6a388d55bdfde9c8c55a34d816
MD5 b0715fd43efcc7b48bfc041025f2eecd
BLAKE2b-256 8f917d6815bfb5ad1a7dfe0f5606cfe3052916a743d714a7d45b258d95a29ccb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page