文档转换服务

Gotenberg MCP Server 是一个基于 Gotenberg 的文档转换服务,提供网页、HTML、Markdown、Office 文档到 PDF 的转换以及 PDF 合并和网页截图功能。

  • by alexandreshah
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 alexandreshah/gotenberg-mcp

使用说明

Gotenberg MCP 服务器

一个模型上下文协议(MCP)服务器,提供用于文档转换的工具 Gotenberg(人名,可音译为“戈滕伯格”)。

特点/功能

这个MCP服务器将Gotenberg的文档转换功能作为MCP工具提供出来:

  • 将URL转换为PDF - 将网页转换为PDF格式
  • 将HTML转换为PDF - 将HTML内容转换为PDF,可选添加页眉/页脚
  • 将Markdown转换为PDF - 将Markdown转换为带有自定义样式的PDF
  • 将Office文件转换为PDF - 将Office文档(Word、Excel、PowerPoint)转换为PDF
  • 合并PDF文件 - 将多个PDF文件合并成一个
  • 截图网址 - 截取网页截图

先决条件

  1. Gotenberg 服务器你需要一个正在运行的Gotenberg实例

    docker run --rm -p 3333:3000 gotenberg/gotenberg:8
    
  2. Python 3.10及以上版本运行MCP服务器所需的(条件/软件/设置等)

安装

  1. 安装依赖项:

    pip install -r requirements.txt
    
  2. 使服务器可执行:

    chmod +x server.py
    

配置

服务器已配置为连接到Gotenberg,连接地址为 http://localhost:3333 默认情况下。如果您的 Gotenberg 实例运行在不同的主机/端口上,请编辑 GOTENBERG_URL (变量)在...中 server.py。

与Claude桌面版的使用

将此添加到您的Claude桌面配置文件中:

macOS(苹果电脑操作系统)

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "gotenberg": {
      "command": "python3",
      "args": ["/absolute/path/to/gotenberg-mcp/server.py"]
    }
  }
}

注:更换 /absolute/path/to/gotenberg-mcp/ 使用你克隆此仓库的实际路径。如果使用虚拟环境,请使用该Python可执行文件的完整路径。

Windows

编辑 %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "gotenberg": {
      "command": "python",
      "args": ["C:\\absolute\\path\\to\\gotenberg-mcp\\server.py"]
    }
  }
}

示例用法

配置完成后,您可以在Claude中使用这些工具:

  1. 将网页转换为PDF格式:

    Convert https://example.com to a PDF and save it as example.pdf
    
  2. 将HTML转换为PDF:

    Convert this HTML to PDF: <html><body><h1>Hello World</h1></body></html>
    
  3. 合并PDF文件:

    Merge document1.pdf and document2.pdf into combined.pdf
    
  4. 转换Office文档:

    Convert my report.docx to PDF
    

工具参考

将URL转换为PDF

  • 网址 (必填):要转换的网页的URL
  • 输出路径 (必填):将PDF文件保存到何处
  • 风景;景色 (可选):使用横向布局
  • 页码范围 (可选):要打印的具体页面(例如,“1-3, 5”)
  • scale 翻译成中文是“规模”或“比例” (可选):网页缩放比例(0.1 至 2.0)

将HTML转换为PDF

  • html_content(可译为“HTML内容”) (必需):要转换的HTML内容
  • 输出路径 (必填):将PDF文件保存到何处
  • 风景;景色 (可选):使用横向布局
  • HTML头部 (可选):页面标题的HTML
  • 页脚HTML (可选):页面页脚的HTML代码

将Markdown转换为PDF

  • Markdown内容 (必需):要转换的Markdown内容
  • 输出路径 (必填):将PDF文件保存到何处
  • 风景;景观 (可选):使用横向布局
  • css_content(注:在中文语境中,这通常直接保留为“css_content”,因为它是一个特定的术语或标识符,不直接对应中文含义,但根据上下文,它可能指的是某种CSS内容或配置。) (可选):自定义CSS样式

将Office文档转换为PDF

  • 文件路径 (必需):Office 文档的路径
  • 输出路径 (必填):将PDF文件保存到何处
  • 合并 (可选):将多个文档合并为一个PDF文件
  • PDF/A(Portable Document Format/Archival,便携式文档格式/存档) (可选):转换为PDF/A格式(例如,“PDF/A-1b”)

合并PDF文件

  • pdf_paths(可译为“PDF文件路径”或根据上下文具体化为“相关PDF文件的路径列表”等) (必填):要合并的PDF文件列表
  • 输出路径 (必填):合并后的PDF文件保存位置

截图链接

  • 网址 (必填):截图的URL
  • 输出路径 (必填):将截图保存到哪里
  • 格式 (可选):图像格式(png、jpeg、webp)
  • 质量 (可选):图像质量(0-100,适用于JPEG/WebP格式)

故障排除

  1. 连接错误确保 Gotenberg 已启动,并可通过配置的 URL 访问
  2. 权限错误确保输出目录存在且可写
  3. 超时错误大型文档的转换可能需要更长时间;超时设置为60-120秒

发展

要修改服务器:

  1. 编辑 server.py 添加新工具或修改现有工具
  2. 重启 Claude 桌面版以重新加载 MCP 服务器
  3. 检查Claude Desktop的日志以获取调试信息

许可证

MIT 许可证 - 有关底层转换工具的许可证,请参阅 Gotenberg 的许可证。