Markdown2PDF MCP 服务器 (markdown2pdf-mcp)
一个用于将 Markdown 文档转换为 PDF 文件的 MCP 服务器。该服务器提供了一种简单高效的方式,可以从 Markdown 内容生成 PDF,并支持语法高亮和自定义样式。此外,还支持在第 1 页添加水印。
受到 Alan Shaw 的markdown-pdf的启发。
特征
使用单个命令将 Markdown 转换为 PDF
代码块的语法高亮
PDF 输出的自定义 CSS 样式
支持标准 Markdown 格式
使用 Chrome 渲染引擎生成现代 PDF
对现代网络功能和字体的出色支持
可靠的资源加载和渲染
Related MCP server: pymupdf4llm-mcp
限制
不支持以下 Markdown 元素:
LaTeX 数学方程式(例如,
$x^2$或$$\sum_{i=1}^n x_i$$)复杂的数学公式或科学计数法
坚持使用以下受支持的 markdown 元素:
标题(所有级别)
文本格式(粗体、斜体、删除线)
列表(有序和无序)
带有语法高亮的代码块
表格
区块引用
链接
图像(本地文件和外部 URL)
任务列表
安装
# Clone the repository
git clone https://github.com/2b3pro/markdown2pdf-mcp.git
# Navigate to the project directory
cd markdown2pdf-mcp
# Install dependencies
npm install
# Build the project
npm run build用法
启动服务器
npm start使用 MCP 工具
服务器提供了一个单独的工具create_pdf_from_markdown其参数如下:
{
// Required parameters
markdown: string; // Markdown content to convert
// Optional parameters with defaults
outputFilename?: string; // Filename for the PDF (e.g., "output.pdf")
paperFormat?: string; // 'letter' (default), 'a4', 'a3', 'a5', 'legal', 'tabloid'
paperOrientation?: string; // 'portrait' (default), 'landscape'
paperBorder?: string; // '2cm' (default), accepts decimal values with CSS units (e.g., '1.5cm', '2.5mm', '0.5in', '10.5px')
watermark?: string; // Optional watermark text (max 15 characters, uppercase)
}带有选项的示例:
await use_mcp_tool({
server_name: "markdown2pdf",
tool_name: "create_pdf_from_markdown",
arguments: {
markdown: "# Hello World\n\nThis is a test document.",
outputFilename: "output.pdf",
paperFormat: "a4",
paperOrientation: "landscape",
paperBorder: "1.5cm",
watermark: "DRAFT",
},
});最小使用示例:
await use_mcp_tool({
server_name: "markdown2pdf",
tool_name: "create_pdf_from_markdown",
arguments: {
markdown: "# Hello World\n\nThis is a test document.",
outputFilename: "output.pdf",
},
});配置
输出目录
您可以在 MCP 设置文件中为使用 MCP 的应用程序(例如 Cline 或 Claude)配置输出目录。如果未配置,则会将文件保存到 $HOME:
{
"mcpServers": {
"markdown2pdf": {
"command": "node",
"args": ["path/to/markdown2pdf-mcp/build/index.js"],
"env": {
"M2P_OUTPUT_DIR": "/path/to/output/directory"
}
}
}
}该工具通过附加增量数字(例如,output.pdf、output-1.pdf、output-2.pdf)自动处理文件名冲突。
依赖项
@modelcontextprotocol/sdk - 用于服务器实现的 MCP SDK
卓越- Markdown 解析器
highlights.js - 语法高亮
puppeteer - 使用Chrome 生成现代 PDF 进行测试(v131.0.6778.204)
Chrome 版本
此软件包使用 Chrome v131.0.6778.204 在所有安装版本中生成一致的 PDF。运行npm install时会自动安装此版本。
tmp——临时文件处理
发展
# Build the project
npm run build
# Start the server
npm start执照
麻省理工学院
贡献
分叉存储库
创建你的功能分支(
git checkout -b feature/amazing-feature)提交您的更改(
git commit -m 'Add some amazing feature')推送到分支(
git push origin feature/amazing-feature)打开拉取请求