Hwp Metadata MCP
MCP server for extracting metadata from Korean HWP/HWPX files
Installation
npx hwp-metadata-mcpAsk AI about Hwp Metadata MCP
Powered by Claude ยท Grounded in docs
I know everything about Hwp Metadata MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
HWP Metadata MCP Server
ํ๊ธ(HWP/HWPX) ํ์ผ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ MCP(Model Context Protocol) ์๋ฒ์ ๋๋ค.
๊ธฐ๋ฅ
- HWP 5.0 ์ง์: OLE ๊ธฐ๋ฐ ๋ฐ์ด๋๋ฆฌ HWP ํ์ผ
- HWPX ์ง์: XML ๊ธฐ๋ฐ ์คํ ํฌ๋งท HWPX ํ์ผ
- ์๋ ๊ฐ์ง: ํ์ผ ํ์์ ์๋์ผ๋ก ๊ฐ์งํ์ฌ ์ฒ๋ฆฌ
- ํฌ๋ก์ค ํ๋ซํผ: Windows, Linux, macOS ์ง์
- HWP ์ค์น ๋ถํ์: ์์ Python ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๊ตฌํ
์ถ์ถ ๊ฐ๋ฅํ ๋ฉํ๋ฐ์ดํฐ
- ๋ฌธ์ ์ ๋ณด: ์ ๋ชฉ, ์์ฑ์, ํค์๋, ์ฃผ์ , ์ค๋ช
- ์๊ฐ ์ ๋ณด: ์์ฑ์ผ, ์์ ์ผ, ๋ง์ง๋ง ์ธ์์ผ
- ๋ฌธ์ ํต๊ณ: ํ์ด์ง ์, ๋จ์ด ์, ๋ฌธ์ ์, ๋ฌธ๋จ ์
- ๋ณด์ ์ ๋ณด: ์ํธํ ์ฌ๋ถ, ์ฝ๊ธฐ ์ ์ฉ ์ฌ๋ถ
- ๊ธฐ์ ์ ๋ณด: HWP ๋ฒ์ , ์ฌ์ฉ๋ ๊ธ๊ผด ๋ชฉ๋ก
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด: ์์ฑ ํ๋ก๊ทธ๋จ ๋ฐ ๋ฒ์
์ค์น
# pip ์ฌ์ฉ
pip install hwp-metadata-mcp
# uv ์ฌ์ฉ (๊ถ์ฅ)
uv add hwp-metadata-mcp
# ๊ฐ๋ฐ ๋ฒ์ ์ค์น
git clone https://github.com/heonseung4-del/hwp-metadata-mcp
cd hwp-metadata-mcp
uv pip install -e .
์ฌ์ฉ๋ฒ
Claude Desktop์์ ์ฌ์ฉ
claude_desktop_config.json ํ์ผ์ ๋ค์์ ์ถ๊ฐํ์ธ์:
Windows: %APPDATA%/Claude/claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"hwp-metadata": {
"command": "uvx",
"args": ["hwp-metadata-mcp"]
}
}
}
๋๋ ๋ก์ปฌ ์ค์น๋ ๊ฒฝ์ฐ:
{
"mcpServers": {
"hwp-metadata": {
"command": "python",
"args": ["-m", "hwp_metadata_mcp.server"]
}
}
}
Python์์ ์ง์ ์ฌ์ฉ
from hwp_metadata_mcp.hwp_parser import HwpParser
from hwp_metadata_mcp.hwpx_parser import HwpxParser
from hwp_metadata_mcp.hwp_parser import detect_file_type
# ์๋ ๊ฐ์ง
file_type = detect_file_type("document.hwp")
if file_type == "HWP":
metadata = HwpParser.parse("document.hwp")
elif file_type == "HWPX":
metadata = HwpxParser.parse("document.hwpx")
# ๋ฉํ๋ฐ์ดํฐ ์ ๊ทผ
print(f"์ ๋ชฉ: {metadata.title}")
print(f"์์ฑ์: {metadata.author}")
print(f"ํ์ด์ง ์: {metadata.page_count}")
print(f"์์ฑ์ผ: {metadata.created_date}")
MCP Tools
์๋ฒ๋ ๋ค์ 3๊ฐ์ tool์ ์ ๊ณตํฉ๋๋ค:
1. extract_metadata (๊ถ์ฅ)
ํ์ผ ํ์์ ์๋์ผ๋ก ๊ฐ์งํ์ฌ ๋ฉํ๋ฐ์ดํฐ ์ถ์ถ
# Claude Desktop์์:
# "์ด HWP ํ์ผ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์๋ ค์ค: /path/to/file.hwp"
2. extract_hwp_metadata
HWP 5.0 ํ์ผ ์ ์ฉ
3. extract_hwpx_metadata
HWPX ํ์ผ ์ ์ฉ
MCP Resources
URI๋ฅผ ํตํด ๋ฉํ๋ฐ์ดํฐ ์กฐํ:
hwp://metadata//path/to/document.hwp
hwp://metadata//path/to/document.hwpx
๊ฐ๋ฐ
์๊ตฌ์ฌํญ
- Python 3.10 ์ด์
- mcp >= 1.0.0
- pydantic >= 2.0.0
- olefile >= 0.46
๋ก์ปฌ ํ ์คํธ
# MCP Inspector๋ก ํ
์คํธ
uv run mcp dev src/hwp_metadata_mcp/server.py
# ์ง์ ์คํ
uv run python -m hwp_metadata_mcp.server
ํ ์คํธ ์คํ
# ํ
์คํธ ํจํค์ง ์ค์น
uv add --dev pytest pytest-asyncio
# ํ
์คํธ ์คํ
pytest tests/
์ง์ ํ๊ฒฝ
- OS: Windows, Linux, macOS
- Python: 3.10, 3.11, 3.12
- HWP: 5.0 ์ด์
- HWPX: ๋ชจ๋ ๋ฒ์
์ ํ์ฌํญ
- ์ํธํ๋ HWP ํ์ผ: ์ํธํ ์ฌ๋ถ๋ ํ์ธ ๊ฐ๋ฅํ์ง๋ง, ์ํธ๋ก ๋ณดํธ๋ ํ์ผ์ ์์ธ ๋ฉํ๋ฐ์ดํฐ๋ ์ถ์ถํ ์ ์์ต๋๋ค
- ๋ฌธ์ ๋ด์ฉ: ๋ฉํ๋ฐ์ดํฐ๋ง ์ถ์ถํ๋ฉฐ, ๋ณธ๋ฌธ ํ ์คํธ๋ ์ถ์ถํ์ง ์์ต๋๋ค
- ํธ์ง ๊ธฐ๋ฅ ์์: ์ฝ๊ธฐ ์ ์ฉ์ ๋๋ค. ํ์ผ ํธ์ง์ ์ง์ํ์ง ์์ต๋๋ค
๋ผ์ด์ ์ค
BSD-3-Clause License
๊ธฐ์ฌ
์ด์ ๋ฐ Pull Request๋ฅผ ํ์ํฉ๋๋ค!
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
๊ด๋ จ ํ๋ก์ ํธ
๋ฌธ์
์ด์๋ฅผ ํตํด ๋ฌธ์ํด์ฃผ์ธ์: GitHub Issues
