
这是一个用于将 Markdown 文档转换为 PDF 文件的 MCP 服务器。该服务器提供了一种简单高效的方法,可以从 Markdown 内容生成 PDF,支持语法高亮、自定义样式、可选页码以及灵活的水印放置(仅限首页或所有页面)。
灵感来源于 Alan Shaw 的 markdown-pdf。
以下 Markdown 元素不被支持:
$x^2$ 或 $$\sum_{i=1}^n x_i$$)请使用以下支持的 Markdown 元素:
要渲染 Mermaid 图表,请使用 mermaid 代码块:
```mermaid
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
如果您的图表中有语法错误,错误信息将在 PDF 中显示,帮助您调试。
## 安装(从源代码)
```bash
# 克隆仓库
git clone https://github.com/2b3pro/markdown2pdf-mcp.git
# 导航到项目目录
cd markdown2pdf-mcp
# 安装依赖
npm install
# 构建项目
npm run build
npm install markdown2pdf-mcp
npm start
服务器提供了一个单一工具 create_pdf_from_markdown,带有以下参数:
{
// 必需参数
markdown: string; // 要转换的 Markdown 内容
// 可选参数及其默认值
outputFilename?: string; // PDF 文件名(例如,“output.pdf”)
paperFormat?: string; // 'letter'(默认),'a4','a3','a5','legal','tabloid'
paperOrientation?: string; // 'portrait'(默认),'landscape'
paperBorder?: string; // '2cm'(默认),接受带 CSS 单位的十进制值(例如,'1.5cm','2.5mm','0.5in','10.5px')
watermark?: string; // 可选水印文本(最多 15 个字符,大写)
watermarkScope?: 'all-pages' | 'first-page'; // 默认为 'all-pages'
showPageNumbers?: boolean; // 默认为 false
}
带有选项的例子:
await use_mcp_tool({
server_name: "markdown2pdf",
tool_name: "create_pdf_from_markdown",
arguments: {
markdown: "# Hello World\n\n这是测试文档。",
outputFilename: "output.pdf",
paperFormat: "a4",
paperOrientation: "landscape",
paperBorder: "1.5cm",
watermark: "草稿",
watermarkScope: "first-page",
showPageNumbers: true,
},
});
最小使用例子:
await use_mcp_tool({
server_name: "markdown2pdf",
tool_name: "create_pdf_from_markdown",
arguments: {
markdown: "# Hello World\n\n这是测试文档。",
outputFilename: "output.pdf",
},
});
npx您可以请求 npx 抓取最新包并执行其入口点,从而无需永久本地安装即可运行服务器:
npx -y markdown2pdf-mcp@latest
此命令将包安装到临时工作区,然后通过捆绑的 CLI 启动 MCP 服务器。指向您的 MCP 意识客户端(如 Cline 或 Claude Desktop)以按需启动服务器。
您可以在 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 文件:
对于非常大的文件(1300+ 行),工具将:
启用详细日志记录以进行调试:
{
"mcpServers": {
"markdown2pdf": {
"command": "node",
"args": ["/path/to/markdown2pdf-mcp/build/index.js"],
"env": {
"M2P_OUTPUT_DIR": "/path/to/output/directory",
"M2P_VERBOSE": "true"
}
}
}
}
这将把处理步骤的日志记录到 stderr,而不干扰 MCP 通信。
更喜欢本地构建版本?将
"command"回调到node并将"args"指向编译的build/index.js路径,而不是使用npx,例如:"args": ["/path/to/markdown2pdf-mcp/build/index.js"]。
此包使用 Chrome v131.0.6778.204 来在所有安装中一致地生成 PDF。当您运行 npm install 时,此版本会自动安装。
# 构建项目
npm run build
# 启动服务器
npm start
MIT
git checkout -b feature/amazing-feature)git commit -m '添加一些精彩的功能')git push origin feature/amazing-feature)