2026-02-12 16:24:41 +08:00
2026-02-12 16:24:41 +08:00
2026-02-12 16:24:41 +08:00
2026-02-12 16:24:41 +08:00
2026-02-12 16:24:41 +08:00
2026-02-12 16:24:41 +08:00
2026-02-12 16:24:41 +08:00

DOCX 转换工具 MCP 服务器

这是一个基于 MCP (Model Context Protocol) 的服务器,目前只提供 HTML → DOCX 的转换能力,底层通过 Pandoc 实现高质量排版。

功能

  • html_to_docx_pandoc:将包含 HTML 标签的文本转换为 DOCX 文件支持引用模板、Lua 过滤器等高级格式控制。

安装依赖(本机运行)

pip install -r requirements.txt

请确保系统已安装 Pandocpandoc --version 可正常执行)。

使用方法

方式一:本机直接运行

运行服务器:

python mcp_docx_server.py

在 MCP 客户端中连接该服务器后,会看到一个名为 html_to_docx_pandoc 的工具。

方式二:使用 Docker 封装运行

本项目已提供 Dockerfile,可以直接构建镜像并运行:

# 构建镜像
docker build -t mcp-docx-server .

# 运行容器(前台运行)
docker run --rm -it mcp-docx-server

如果你希望在容器外部自定义 ref.docxcolor.lua 或输出目录,可以通过挂载卷的方式:

docker run --rm -it ^
  -v %cd%/ref.docx:/app/ref.docx ^
  -v %cd%/color.lua:/app/color.lua ^
  -v %cd%/output:/app/output ^
  mcp-docx-server

在类 Unix 系统(如 macOS / Linux中可改为

docker run --rm -it \
  -v "$(pwd)/ref.docx:/app/ref.docx" \
  -v "$(pwd)/color.lua:/app/color.lua" \
  -v "$(pwd)/output:/app/output" \
  mcp-docx-server

方式三:使用 docker-compose 运行

已提供 docker-compose.yml,可以一条命令完成构建与运行:

# 构建并启动(前台)
docker-compose up --build

默认会:

  • 构建镜像:使用当前目录下的 Dockerfile
  • 挂载当前目录到容器 /app:方便直接访问 ref.docxcolor.lua 和输出文件
  • 在容器内执行python mcp_docx_server.py

如需在后台运行,可使用:

docker-compose up -d --build

工具说明html_to_docx_pandoc

作用: 使用 Pandoc 将 HTML 文本转换为 DOCX 文件,尽可能保留原始样式,并支持:

  • 使用 ref.docx 作为参考模板(如果文件存在)
  • 使用 color.lua 作为 Lua 过滤器(如果文件存在)
  • 独立 HTML 模式、图片提取、自定义 CSS 等选项

参数:

  • html_text(必需):需要转换的 HTML 文本内容
  • output_path(必需):输出 DOCX 文件的完整路径
  • standalone(可选,默认 true):是否以独立 HTML 模式调用 Pandoc
  • extract_media(可选):图片提取目录(如 ./media),不需要提取可不传
  • css_file可选CSS 样式文件路径

依赖项

  • mcp: MCP Python SDK
  • python-docxlxml:内部保留的 DOCX/HTML 处理能力(当前未通过 MCP 暴露)
  • 外部工具Pandoc必须预先在系统中安装

注意事项

  • 必须安装 MCP SDK 才能运行服务器
  • 确保有足够的权限读取输入文件和写入输出文件
  • 大文件转换可能需要较长时间
Description
No description provided
Readme 129 KiB
Languages
Python 98%
Dockerfile 2%