Hangeul-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| 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 |
|---|---|
| describe_capabilitiesA | Report per-capability availability, tool buckets, and runtime identity for this PC. |
| detect_formatB | Detect whether a path is HWPX (zip+mimetype), binary HWP, or unknown. |
| analyze_formC | Detect fillable fields in FILE MODE: labels, inline blanks, placeholders, checkboxes, form fields. |
| fill_formC | Fill detected named/label fields and write a NEW byte-preserving HWPX copy (file mode). |
| scan_piiB | Scan extracted document text for Korean PII patterns and return masked findings. |
| analyze_formfitC | Estimate overflow/fit risk for candidate values against detected field capacity. |
| extract_textC | Extract plain document text from an HWPX file (returns a string). |
| preview_assessmentA | Validate and preview three deterministic assessment variants without writing files. |
| apply_assessmentC | Atomically publish a reviewed three-variant assessment bundle to a safe root. |
| find_textA | Count plain-text matches per cell in FILE MODE; for edit-ready structural addresses use find_text_occurrences. |
| get_document_outlineC | Return the heading/outline structure of an HWPX document. |
| get_table_mapC | Map tables with per-cell text and merge structure for label-to-cell reasoning. |
| inspect_editable_regionsA | Inspect FILE-MODE structural edit targets before any addressed/template write. Named fields / |
| get_paragraph_mapA | List body paragraphs with stable bN addresses for addressed edits. |
| find_text_occurrencesA | Locate repeated visible text in FILE MODE so edits can be scoped, not guessed. Named fields / |
| find_cell_by_labelC | Locate the input cell next to or under a label cell in tables. |
| verify_fillB | Verify expected label:value pairs actually appear in the (filled) document. |
| verify_targetsA | Verify expected_text at exact structural targets (tN.rN.cN[.pN] / bN) after edits. |
| plan_template_completionA | Plan whole-template completion in FILE MODE and return addressable edit targets. Named fields / |
| list_stylesC | List charPr/paraPr style definitions available in the document. |
| extract_hwp_textC | Headless .hwp text extraction gate; returns available:false until a verified non-COM reader lands. |
| validate_hwpxC | Validate HWPX package integrity (zip layout, mimetype, XML declarations); ok mirrors valid. |
| search_and_replaceA | One-shot text replace written to a NEW file; fails closed on 2+ matches unless scope='all'. |
| batch_replaceA | Apply multiple find->replace pairs to a NEW file in one pass (text substitution only). |
| preview_search_and_replaceB | Preview a text replace as an edit session (entry/count audit) without writing output. |
| preview_batch_replaceA | Preview multiple find->replace pairs as one edit session without writing output. |
| apply_edit_sessionC | Write a previewed edit session to a NEW file with journal/snapshot for restore. |
| preview_addressed_editsA | Resolve STRUCTURAL addressed edits in file mode without writing output.
|
| apply_addressed_editsA | Write the previewed addressed edits to a NEW file-mode output copy. The reviewed addressed plan came from structural addresses, not |
| complete_addressed_templateA | Complete a whole template in ONE addressed file-mode call and write a new copy. Gather or generate all values first, then send one |
| restore_edit_sessionB | Restore the pre-apply snapshot of an applied edit session (file-mode undo). |
| hwpx_to_htmlC | Convert HWPX to HTML via python-hwpx (delegate extra required). |
| hwpx_to_markdownC | Convert HWPX to Markdown via python-hwpx (delegate). |
| add_paragraphB | Append a text paragraph and write a NEW file (python-hwpx delegate; reserialized, re-validate after). |
| merge_table_cellsB | Merge a table cell range (e.g. A1:B2) and write a NEW file (delegate). |
| set_cell_shadingC | Set a table cell fill color and write a NEW file (delegate). |
| mail_mergeC | Generate one output per record from a template using the OWN byte-preserving fill engine. |
| emphasize_textA | Apply bold/italic/underline/color/size to matched text and write a NEW file (delegate). |
| set_headerC | Set the page header text (page_type: BOTH/EVEN/ODD as accepted by python-hwpx) to a NEW file. |
| set_footerC | Set the page footer text (page_type: BOTH/EVEN/ODD as accepted by python-hwpx) to a NEW file. |
| split_merged_cellC | Split a previously merged table cell apart and write a NEW file (delegate). |
| set_page_sizeC | Set paper width/height/orientation (e.g. PORTRAIT/LANDSCAPE) and write a NEW file (delegate). |
| set_page_marginsB | Set page margins (left/right/top/bottom/header/footer/gutter, HWPUNIT) to a NEW file (delegate). |
| set_columnsC | Set the body column count and write a NEW file (delegate). |
| set_page_numberB | Place page numbers (position e.g. BOTTOM_CENTER, as accepted by python-hwpx) to a NEW file. |
| create_official_documentC | Create a Korean official-document (gongmun) skeleton HWPX from fields (delegate). |
| create_hwpx_tableC | Create a new HWPX containing one table from headers/rows (delegate). |
| create_document_from_blocksC | Create an HWPX from ordered content blocks (delegate). |
| create_document_from_specC | Create an HWPX from a DocumentSpec v1 payload (validated template union; delegate). |
| create_hwpx_from_markdownC | Create an HWPX from Markdown content (delegate). |
| add_imageC | Insert an image file into the document and write a NEW file (delegate). |
| add_tableC | Append a rows x cols table and write a NEW file (python-hwpx delegate). |
| render_previewC | Render page PNG previews via python-hwpx + Playwright/Chromium (render extra). |
| hwp_statusA | Live COM availability probe — side-effect-free, never launches Hangul. connected:false is the NORMAL idle state (no attach is attempted here);
|
| open_in_hwpA | Open a .hwp/.hwpx file in a CONTROLLABLE Hangul window. Hand-opened windows are not a safe exact-path live-attach anchor on their own. Use this tool to attach by exact path in the automation-visible window first, then apply_to_open_hwp / apply_small_live_label_cells. Leaves the window open; saves and closes nothing. If Hangul is not running, this launches it — cold start can take tens of seconds (see cold_start/elapsed_seconds). timeout_seconds > 0 runs in an isolated worker and returns timeout_outcome_unknown (state may be partially applied). |
| apply_to_open_hwpA | One-shot VALUE fill of named form fields (누름틀) in the OPEN Hangul window. Value insertion only — formatting/styling edits are not supported live; use the file-mode delegate tools instead. Legacy pathless mode writes to the active automation document; with path=... it performs broker-targeted exact-path live apply and refuses to guess across multiple automation brokers. No timeout_seconds worker-isolation contract yet. |
| preview_small_live_label_cellsA | Preview small live label:value cell fills WITHOUT COM or ROT access. This is not whole-template completion. For a full lesson plan or other structured form, use compact inspect then complete_addressed_template(path, edits, out_path) or the complete_and_load route — the verified NEW file opens as a new tab and the original stays untouched (plain open_in_hwp may reuse the active tab). This pure preview does not probe COM ROT or attach candidates; exact-path attachment is deferred to apply_small_live_label_cells. |
| apply_small_live_label_cellsA | Fill a small set of label:value CELLS in the OPEN Hangul window live. Handles empty label:value cells AND inline blanks (colon "은행명:", marker "∘ 프로그램명", checkboxes). Value insertion only — no formatting/styling. Not for whole-template completion: use compact inspect plus complete_addressed_template(path, edits, out_path) or the complete_and_load route — new file created, original untouched, opened as a new tab (plain open_in_hwp may reuse the active tab). Attaches to the automation-visible instance on call and verifies the requested exact path is active; if not, it opens it there when open_if_needed=true. Cold start can take tens of seconds. Preview first with preview_small_live_label_cells. |
| resolve_current_hwp_documentA | Resolve the current/open Hangul document inventory without writing anything. This is the side-effect-free entry point for the pathless current-document UX. It never auto-selects around an unsupported, unsaved, or unprovable current document. |
| preview_current_hwp_documentA | Preview the saved current Pass |
| apply_to_current_hwp_documentA | Apply a previously previewed pathless current-document edit by token only. The token is authoritative: no fresh values or target hints, and the selected broker and exact target are revalidated before mutating the live document. complete_and_load tokens instead write the verified completion to the NEW file from the preview and open it as a new tab — the original stays untouched and the created path is returned even if the open fails. This path does not expose a timeout_seconds worker-isolation contract. |
| live_delete_table_rowsA | Delete table ROWS in the OPEN Hangul window (live-only; Windows + Hangul). Offline row delete is unsafe (cellAddr/rowCnt/merge recompute), so this
drives the open window — Hangul's TableSubtractRow recomputes merges.
|
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/pblsketch/Hangeul-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server