Markdown+Mermaid到PDF MCP服务器
MCP(模型上下文协议)服务器,可将包含Mermaid图的Markdown文件转换为PDF文档,也可将独立的Mermaid图表转换为PNG或PDF。服务器使用混合方法:将Markdown转换为HTML,将Mermaid图渲染为SVG图形,然后使用Puppeteer生成输出。
特性
- 将带有美人鱼图的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的绝对路径。如果未提供,则使用与输入相同的名称.pdf扩展custom_css(可选):应用于PDF的其他CSS样式
例子:
{
"input_path": "/path/to/document.md",
"output_path": "/path/to/output.pdf"
}工具: convert_mermaid_to_png
将独立的Mermaid图代码转换为PNG图像文件。
参数:
mermaid_code(必填):原始美人鱼图代码为字符串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(必填):原始美人鱼图代码为字符串output_path(必填):PDF文件应保存的绝对路径
例子:
{
"mermaid_code": "sequenceDiagram\n Alice->>Bob: Hello\n Bob->>Alice: Hi!",
"output_path": "/path/to/diagram.pdf"
}运作原理
- Markdown解析:使用
marked图书馆 - HTML生成:将Markdown转换为HTML,同时保留Mermaid代码块
- 美人鱼渲染:注入Mermaid.js库,在浏览器中将图表渲染为SVG
- PDF导出:使用Puppeteer(无头Chrome)生成最终的PDF,并渲染所有内容
Markdown示例
看 example.md 查看带有Mermaid图的示例文档。
发展
# Install dependencies
npm install
# Build
npm run build
# Watch mode for development
npm run dev
# Run the server
npm start需求
- Node.js 18或更高版本
- 足够的内存让Puppeteer运行无头Chrome
许可证
麻省理工学院
