Markdown转PDF服务

一个基于MCP协议的Markdown转PDF服务器,支持自定义格式、样式和元数据生成。

  • by Ronicley
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Ronicley/mcp-md-to-pdf

使用说明

MCP Markdown 转 PDF 服务器

这个项目实现了一个服务器 模型上下文协议(MCP) 能够将Markdown内容或文件转换为自定义PDF。它是用TypeScript构建的,使用了库(注:原文在此处截断,未提供具体库名,以下为假设性翻译)…… md-to-pdf (基于Puppeteer)用于渲染和 pdf-lib 用于提取元数据。

✨ 资源

  • 通过文件路径或内联内容提供的Markdown转换
  • 格式选项(页面大小、边距、方向、页眉/页脚)
  • 包含本地或远程样式表
  • 将PDF以Base64格式返回和/或保存到磁盘的可能性
  • 丰富的元数据(转换时间、文件大小、页数)

📦 先决条件

  • Node.js 18或更高版本
  • 已安装的依赖项 npm install
  • 能够运行无头模式Chromium的环境(由Puppeteer自动安装)

🚀 执行

安装依赖项

npm install

编译项目

npm run build

运行MCP服务器

npm start

该服务器通过STDIO运行。配置您的MCP客户端(例如,Claude Desktop)以指向编译后的二进制文件。 dist/index.js。

🛠️ 可用工具

convert_markdown_to_pdf

入口(JSON Schema):

  • markdown_content (字符串,可选)
  • markdown_file_path (字符串,可选)
  • output_path (字符串,可选)
  • pdf_options (对象,可选)
    • format: A4, A3, A5, Letter, Legal
    • orientation: portrait, landscape
    • margin字符串 CSS(20mm 15mm等
    • print_background布尔类型(或布尔值)
  • stylesheet_urls (字符串或字符串数组)
  • css (字符串)
  • highlight_style (字符串)
  • header_template / footer_template (字符串 HTML)
  • include_default_styles (boolean,默认 true)
  • return_pdf (布尔值,默认 false)

输出:

{
  "success": true,
  "message": "PDF generated successfully at ...",
  "outputPath": "...",
  "pdfBase64": "...",
  "metadata": {
    "durationMs": 123,
    "fileSizeBytes": 45678,
    "fileSizeReadable": "45 KB",
    "pageCount": 3,
    "usedStylesheets": ["https://..."],
    "highlightStyle": "github",
    "sourceType": "file"
  }
}

🧪 开发

  • npm run dev 以 watch 模式重新编译
  • npm test (保留用于未来的测试)

📁 结构

src/
  index.ts        # Bootstrap do servidor MCP
  server.ts       # Registro das ferramentas
  lib/            # Conversor, validação e config default
  types.ts        # Tipos compartilhados

⚖️ 许可证

根据ISC许可证分发。请参阅 package.json 以获取详情。