article
README
🚀 Markdown + Mermaid 转 PDF MCP 服务器
这是一个 MCP(模型上下文协议)服务器,它可以将包含 Mermaid 图表的 Markdown 文件转换为 PDF 文档,还能将独立的 Mermaid 图表转换为 PNG 或 PDF 格式。该服务器采用混合方法:先将 Markdown 转换为 HTML,把 Mermaid 图表渲染为 SVG 图形,然后使用 Puppeteer 生成输出文件。
✨ 主要特性
- 将包含 Mermaid 图表的 Markdown 文件转换为 PDF
- 将独立的 Mermaid 图表代码转换为 PNG 图像
- 将独立的 Mermaid 图表代码转换为 PDF 文件
- 自动将 Mermaid 图表渲染为高质量的 SVG 图形
- 拥有简洁、专业的默认样式
- 支持自定义 CSS 样式(用于 Markdown 转换)
- 具备简单的 MCP 工具界面
📦 安装指南
npm install
npm run build
💻 使用示例
作为 MCP 服务器
将此服务器添加到您的 MCP 客户端配置(例如,Claude Desktop)中:
{
"mcpServers": {
"md-mmd-pdf": {
"command": "node",
"args": ["/absolute/path/to/md-mmd-pdf/build/index.js"]
}
}
}
工具:convert_md_to_pdf
将包含 Mermaid 图表的 Markdown 文件转换为 PDF。
参数:
input_path(必需):输入 Markdown 文件的绝对路径output_path(可选):PDF 文件的保存绝对路径。如果未提供,则使用与输入文件相同的名称,扩展名为.pdfcustom_css(可选):应用于 PDF 的额外 CSS 样式
示例:
{
"input_path": "/path/to/document.md",
"output_path": "/path/to/output.pdf"
}
工具:convert_mermaid_to_png
将独立的 Mermaid 图表代码转换为 PNG 图像文件。
参数:
mermaid_code(必需):原始 Mermaid 图表代码字符串output_path(必需):PNG 文件的保存绝对路径
示例:
{
"mermaid_code": "graph TD\n A[Start] --> B[Process]\n B --> C[End]",
"output_path": "/path/to/diagram.png"
}
工具:convert_mermaid_to_pdf
将独立的 Mermaid 图表代码转换为 PDF 文件。
参数:
mermaid_code(必需):原始 Mermaid 图表代码字符串output_path(必需):PDF 文件的保存绝对路径
示例:
{
"mermaid_code": "sequenceDiagram\n Alice->>Bob: Hello\n Bob->>Alice: Hi!",
"output_path": "/path/to/diagram.pdf"
}
📚 详细文档
工作原理
- Markdown 解析:使用
marked库读取并解析 Markdown 内容。 - HTML 生成:将 Markdown 转换为 HTML,同时保留 Mermaid 代码块。
- Mermaid 渲染:注入 Mermaid.js 库,在浏览器中将图表渲染为 SVG。
- PDF 导出:使用 Puppeteer(无头 Chrome)生成包含所有渲染内容的最终 PDF。
示例 Markdown 文件
查看 example.md 可获取包含 Mermaid 图表的示例文档。
开发步骤
# 安装依赖
npm install
# 构建项目
npm run build
# 开发模式下的监听模式
npm run dev
# 启动服务器
npm start
运行要求
- Node.js 18 或更高版本
- 足够的内存以支持 Puppeteer 运行无头 Chrome
📄 许可证
本项目采用 MIT 许可证。
微信扫一扫