使用说明
Markdown2PDF MCP服务器(Markdown2PDF-MCP)
用于将Markdown文档转换为PDF文件的MCP服务器。此服务器提供了一种简单有效的方法,可以从Markdown内容生成PDF,支持语法高亮显示、自定义样式、可选页码和灵活的水印放置(仅第一页或所有页面)。
灵感来自Alan Shaw markdown pdf.
特性
- 使用单个命令将Markdown转换为PDF
- 代码块的语法高亮显示
- PDF输出的自定义CSS样式
- 支持标准Markdown格式
- 美人鱼图渲染
- 使用Chrome渲染引擎生成现代PDF
- 对现代网络功能和字体的出色支持
- 可靠的资源加载和渲染
- 通过PDF页脚呈现的可选页码
- 具有可配置范围的水印(第一页或所有页面)
局限性
不支持以下markdown元素:
- LaTeX数学方程(例如。,
$x^2$或$$\sum_{i=1}^n x_i$$) - 复杂的数学公式或科学符号
坚持使用这些受支持的markdown元素:
- 标题(所有级别)
- 文本格式(粗体、斜体、删除线)
- 列表(有序和无序)
- 带有语法高亮显示的代码块
- 表格
- 引用块
- 链接
- 图像(本地文件和外部URL)
- 任务列表
- 美人鱼图
美人鱼图
要渲染美人鱼图,请使用 mermaid 代码块:
降价
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
´´´
如果您的图表中有语法错误,错误消息将在PDF中呈现,帮助您进行调试。
安装(来源)
# 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)
npm install markdown2pdf-mcp
用法
启动服务器
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)
watermarkScope?: 'all-pages' | 'first-page'; // Defaults to 'all-pages'
showPageNumbers?: boolean; // Defaults to false
}
带有选项的示例:
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",
watermarkScope: "first-page",
showPageNumbers: true,
},
});
最小使用示例:
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",
},
});
按需运行 npx
您可以在没有永久本地安装的情况下运行服务器,方法是: npx 获取最新包并执行其入口点:
npx -y markdown2pdf-mcp@latest
此命令将包安装到临时工作区中,然后通过其捆绑的CLI启动MCP服务器。将您的MCP感知客户端(例如Cline或Claude Desktop)指向此命令,以按需启动服务器。
配置
输出目录
您可以在MCP设置文件中为使用MCP的应用程序(如Cline或Claude)配置输出目录。如果未配置,它将把文件保存到$HOME:
{
"mcpServers": {
"markdown2pdf": {
"args": ["/path/to/markdown2pdf-mcp/build/index.js"],
"env": {
"M2P_OUTPUT_DIR": "/path/to/output/directory"
}
}
}
}
该工具通过附加递增数字(例如output.pdf、output-1.pdf、output-2.pdf)自动处理文件名冲突。
大文件支持
该工具通过以下方式自动处理大型markdown文件:
- 动态超时:根据内容大小自动缩放(对于非常大的文件,最长可达5分钟)
- 内存限制:为Chrome分配4GB内存以处理复杂文档
- 尺寸验证:最大10MB文件大小,并显示明确的错误消息
- 进度跟踪:显示内容大小和估计的处理时间
对于非常大的文件(1300+行),该工具将:
- 警告您处理时间延长
- 自动增加超时时间
- 在响应中显示内容大小
- 如果处理失败,请提供详细的错误消息
详细日志记录
启用调试的详细日志记录:
{
"mcpServers": {
"markdown2pdf": {
"command": "node",
"args": ["/path/to/markdown2pdf-mcp/build/index.js"],
"env": {
"M2P_OUTPUT_DIR": "/path/to/output/directory",
"M2P_VERBOSE": "true"
}
}
}
}
这将在不干扰MCP通信的情况下将处理步骤记录到stderr。
更喜欢本地构建的版本?交换
"command"回到node和点"args"到编译build/index.js路径而不是使用npx例如:"args": ["/path/to/markdown2pdf-mcp/build/index.js"].
依赖项
- @模型上下文协议/sdk -用于服务器实现的MCP SDK
- 非凡的 -Markdown解析器
- highlight.js -语法高亮显示
- 操纵者 -现代PDF生成使用 测试用Chrome (2004年6月31日)
Chrome版本
此软件包使用Chrome v131.0.6778.204在所有安装中生成一致的PDF。运行时会自动安装此版本 npm install.
- 临时 -临时文件处理
发展
# 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) - 打开拉取请求
