HTML-to-PDF Generator MCP 服务器使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 提供将文本或HTML内容转换为 PDF 文档的功能。作为一个 MCP 服务器,它允许 LLM 客户端通过标准化的 JSON-RPC 协议调用预定义的功能(工具),从而扩展 LLM 的能力,使其能够生成和处理 PDF 文档。

主要功能点

  • 文本转 PDF: 允许 LLM 客户端将纯文本内容、标题和作者信息转换为 PDF 文档。
  • HTML 转 PDF: 支持将 HTML 代码转换为 PDF 文档,可以处理复杂的网页结构和样式。
  • 可配置的 PDF 生成选项: HTML 转 PDF 功能支持通过 'options' 参数传递 Puppeteer 的 PDF 生成选项,例如页面格式、边距、背景打印等,提供高度的定制化能力。
  • Base64 编码输出: 生成的 PDF 文档以 Base64 编码的字符串形式返回,方便在 JSON-RPC 响应中传输和在客户端解码使用。
  • 内容类型声明: 返回的响应明确声明了 'contentType' 为 'application/pdf',方便客户端正确处理 PDF 数据。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/ivarvd-hldng/pdf-generator-mcp-server.git
    cd pdf-generator-mcp-server
  2. 安装依赖: 确保你已安装 Node.js 和 npm。在项目根目录下运行以下命令安装项目依赖:
    npm install

服务器配置

MCP 客户端需要配置以下信息以连接到此 MCP 服务器。请将以下 JSON 配置添加到你的 MCP 客户端配置中:

{
  "serverName": "pdf-generator-server",
  "command": "node",
  "args": ["src/server.js"]
}

配置参数说明:

  • 'serverName': 服务器的名称,可以自定义,用于在客户端标识该服务器。例如 '"pdf-generator-server"'。
  • 'command': 启动服务器的命令。由于本项目是 Node.js 应用,此处应设置为 '"node"'。
  • 'args': 启动服务器命令的参数,以数组形式提供。对于本项目,需要指定服务器入口文件 'src/server.js'。

基本使用方法

  1. 启动服务器: 在项目根目录下,运行以下命令启动 MCP 服务器:

    npm start

    或者直接使用配置中的命令:

    node src/server.js

    服务器默认会在标准输入/输出 (stdio) 上监听 MCP 客户端的请求。

  2. 配置 MCP 客户端: 根据 MCP 客户端的文档,配置上述提供的服务器连接信息。确保客户端能够通过 JSON-RPC 协议与服务器通信。

  3. 调用工具函数: 客户端可以使用 MCP 协议定义的 JSON-RPC 请求格式,调用服务器提供的 'generatePDF' 和 'generatePDFFromHTML' 工具函数。

    • 调用 'generatePDF' (文本转 PDF) 示例请求 (JSON-RPC):

      {
        "jsonrpc": "2.0",
        "method": "call",
        "params": {
          "function": "generatePDF",
          "args": {
            "content": "This is the content of the PDF document.",
            "title": "My PDF Title",
            "author": "Your Name"
          }
        },
        "id": 1
      }
    • 调用 'generatePDFFromHTML' (HTML 转 PDF) 示例请求 (JSON-RPC):

      {
        "jsonrpc": "2.0",
        "method": "call",
        "params": {
          "function": "generatePDFFromHTML",
          "args": {
            "html": "<h1>This is a heading</h1><p>This is a paragraph.</p>",
            "options": {
              "format": "Letter"
            }
          }
        },
        "id": 2
      }
  4. 接收响应: 服务器会返回 JSON-RPC 响应,其中 'result.data' 字段包含 Base64 编码的 PDF 文档内容,'result.contentType' 字段为 '"application/pdf"'。客户端需要解码 Base64 数据并将其处理为 PDF 文件。

注意事项

  • 确保 MCP 客户端和服务器使用兼容的 MCP 协议版本。
  • 'generatePDFFromHTML' 功能依赖 'puppeteer' 库,首次运行时可能需要下载 Chromium,请确保网络连接正常。
  • 可以根据需要扩展 'PDFGeneratorServer' 类,注册更多工具函数,以提供更丰富的功能。

信息

分类

AI与计算