项目简介

markdown2pdf-mcp 是一个基于 Model Context Protocol (MCP) 构建的服务器,专门用于将 Markdown 格式的文本转换为 PDF 文件。此服务器提供了一个简单而高效的方式,让 LLM 应用能够通过调用工具,轻松地将 Markdown 内容生成为具有专业外观的 PDF 文档。它支持代码语法高亮、自定义 CSS 样式,并允许在 PDF 首页添加水印。

主要功能点

  • Markdown 到 PDF 转换: 核心功能是将 Markdown 文本转换为 PDF 文件。
  • 代码高亮: 支持代码块的语法高亮显示,使技术文档更易读。
  • 自定义样式: 允许通过自定义 CSS 样式来美化 PDF 输出,满足个性化需求。
  • 灵活的纸张设置: 支持多种纸张格式(如 letter, A4, A3 等)、纸张方向( portrait, landscape)和边距设置。
  • 水印功能: 可以在生成 PDF 的首页添加水印文字,例如 "草稿"、"机密" 等。
  • 输出目录配置: 可以通过环境变量 'M2P_OUTPUT_DIR' 配置 PDF 文件的输出目录。

安装步骤

  1. 克隆仓库
    git clone https://github.com/MCP-Mirror/2b3pro_markdown2pdf-mcp.git
  2. 进入项目目录
    cd 2b3pro_markdown2pdf-mcp
  3. 安装依赖
    npm install
  4. 构建项目
    npm run build

服务器配置

要将 'markdown2pdf' 服务器配置到 MCP 客户端(例如 Cline 或 Claude),您需要在客户端的 MCP 服务器配置文件中添加以下 JSON 配置。请根据实际情况修改 'path/to/markdown2pdf-mcp' 为您本地仓库的路径,'/path/to/output/directory' 为您希望PDF文件输出的目录(可选)。

{
  "mcpServers": {
    "markdown2pdf": {
      "command": "node",
      "args": ["path/to/markdown2pdf-mcp/build/index.js"],
      "env": {
        "M2P_OUTPUT_DIR": "/path/to/output/directory" // (可选) PDF 文件输出目录,不配置则默认保存到用户Home目录
      }
    }
  }
}

基本使用方法

  1. 启动服务器

    在 MCP 客户端配置完成后,启动 'markdown2pdf' 服务器。通常,MCP 客户端会自动启动配置的服务器。您也可以在项目目录下手动运行以下命令启动服务器:

    npm start
  2. 使用 'create_pdf_from_markdown' 工具

    在支持 MCP 协议的 LLM 应用中,您可以使用 'create_pdf_from_markdown' 工具将 Markdown 文本转换为 PDF。该工具接受以下参数:

    • 'markdown': (必填) 要转换为 PDF 的 Markdown 文本内容。
    • 'outputFilename': (可选) PDF 文件名,例如 '"output.pdf"'。 默认值为 '"output.pdf"'。
    • 'paperFormat': (可选) PDF 纸张格式,可选值包括 '"letter"', '"a4"', '"a3"', '"a5"', '"legal"', '"tabloid"'。 默认值为 '"letter"'。
    • 'paperOrientation': (可选) PDF 纸张方向,可选值包括 '"portrait"', '"landscape"'。 默认值为 '"portrait"'。
    • 'paperBorder': (可选) PDF 边距,可以使用 CSS 单位,例如 '"2cm"', '"1.5cm"', '"20mm"'。 默认值为 '"2cm"'。
    • 'watermark': (可选) PDF 首页水印文字,最多15个字符,仅限大写字母、数字和空格。

    使用示例 (假设在 LLM 应用中使用 'use_mcp_tool' 函数):

    await use_mcp_tool({
      server_name: "markdown2pdf",
      tool_name: "create_pdf_from_markdown",
      arguments: {
        markdown: "# Hello World\n\nThis is a test document.",
        outputFilename: "example.pdf",
        paperFormat: "a4",
        paperOrientation: "landscape",
        watermark: "DRAFT"
      },
    });

    执行成功后,PDF 文件将保存在配置的输出目录或默认的用户 Home 目录下,并返回 PDF 文件的绝对路径。

信息

分类

开发者工具