hwp-mcp
An MCP server for reading, writing, and managing Korean Hangul Word Processor (HWP/HWPX) files. It allows users to extract content, fill templates, and create new documents directly through AI assistants.
README
hwp-mcp
MCP server for reading and writing HWP/HWPX (Korean Hangul word processor) files.
Works with Claude Code, Claude Desktop, VS Code Copilot, Cursor, ChatGPT, and any MCP-compatible client.
Install
# Claude Code
claude mcp add hwp-mcp -- uvx --from hwp-mcp hwp-mcp
# Claude Desktop / Other clients (settings JSON)
{
"mcpServers": {
"hwp-mcp": {
"command": "uvx",
"args": ["--from", "hwp-mcp", "hwp-mcp"]
}
}
}
Tools
Read
| Tool | Description |
|---|---|
read_hwp |
Read full document (text + tables + images) |
read_hwp_text |
Extract text only |
read_hwp_tables |
Extract tables as markdown |
list_hwp_images |
List embedded images |
extract_hwp_images |
Save images to disk |
Write
| Tool | Description |
|---|---|
fill_hwp_template |
Fill template placeholders (e.g. {{name}} -> John) |
replace_hwp_text |
Find and replace text |
create_hwpx_document |
Create new HWPX document with text and tables |
Usage Examples
Read an HWP file
You: Read /path/to/document.hwp
AI: # document.hwp
Format: .HWP | Paragraphs: 23 | Tables: 2 | Images: 1
| Name | Position | Company |
| --- | --- | --- |
| Kim | CTO | Acme |
...
Fill a template
You: Fill template /path/to/form.hwp with name=Kim, company=Acme
AI: Saved: form_filled.hwp
Total 2 replacements
'{{name}}' -> 1
'{{company}}' -> 1
Replace text in HWP
You: Replace "홍길동" with "남대현" in /path/to/document.hwp
AI: '홍길동' -> '남대현': 3 replacements
Saved: document_modified.hwp
Create a new HWPX document
You: Create a document with title "Employee Info" and a table with columns Name, Role
AI: HWPX document created: employee.hwpx
Extract images
You: Extract images from /path/to/document.hwp
AI: Extracted 3 images to /path/to/document_images/
- BIN0001.png
- BIN0002.jpg
- BIN0003.emf
Supported Formats
| Format | Read | Write |
|---|---|---|
| HWP (v5.0) | Text, tables, images | Text replacement |
| HWPX (OWPML) | Text, tables, images | Text replacement, create new |
How It Works
- HWP: Parses OLE/CFB binary format, decompresses zlib streams, decodes HWPTAG records (text, tables, images)
- HWPX: Extracts ZIP archive, parses OWPML XML (section*.xml) for text/tables, reads BinData/ for images
- Write: Rebuilds OLE container with modified stream data (custom CFB writer for size-changed streams)
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.