HWP元数据MCP服务器
用于提取韩文(HWP/HWPX)文件元数据的模型上下文协议(MCP)服务器。
功能
- 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 在文件中添加以下内容:
视窗: %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工具
服务器提供以下三种工具:
1. extract_metadata (推荐)
自动检测文件格式以提取元数据
# Claude Desktop에서:
# "이 HWP 파일의 메타데이터를 알려줘: /path/to/file.hwp"2. extract_hwp_metadata
仅限HWP 5.0文件
3. extract_hwpx_metadata
仅限HWPX文件
MCP资源
通过URI查询元数据:
hwp://metadata//path/to/document.hwp
hwp://metadata//path/to/document.hwpx开发
要求
- Python 3.10或更高版本
- mcp>=1.0.0
- 媒染剂>=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/支持环境
- 操作系统:Windows、Linux、macOS
- python: 3.10, 3.11, 3.12
- HWP:5.0以上
- HWPX:所有版本
限制条件
- 加密的HWP文件:可以确认是否加密,但无法提取受密码保护文件的详细元数据
- 文档内容:只提取元数据,不提取正文文本
- 无编辑功能:只读。不支持文件编辑
许可证
BSD-3条款许可
贡献
欢迎发布和Pull Request!
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
相关项目
咨询
请通过问题联系:
