使用说明
Markdown转PDF MCP服务器
A. 模型上下文协议(MCP)服务器 这使得像克劳德这样的人工智能助手能够将Markdown文件和内容转换为格式精美的PDF文档。使用Node.js和Playwright构建,用于基于浏览器的高质量PDF生成。
这是什么?
此MCP服务器为Claude Desktop和其他兼容MCP的AI助手添加了PDF转换功能。只需让Claude“将我的markdown文件转换为PDF”,它就会使用此服务器处理转换。
特性
- 🎨 美丽的默认值:GitHub风格的markdown开箱即用渲染
- 🎯 自定义样式:完全控制自定义CSS
- 📄 多种格式:支持A4、Letter、Legal等格式
- 🔄 灵活输入:从文件转换或直接标记内容
- 🖨️ 打印选项:横向/纵向、边距、背景图形
- ⚡ 快:由剧作家的Chromium引擎提供动力
安装
您可以通过两种方式使用此MCP服务器:
选项1:直接从GitHub使用(推荐)
无需克隆! 使用 npx 直接从GitHub存储库运行。
配置
编辑您的Claude Desktop配置文件:
视窗: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"pdf-generator": {
"command": "npx",
"args": ["-y", "github:warrenandre/MCP_MD_TO_PDF"]
}
}
}
就是这样! 你第一次使用它时, npx 将自动下载并设置服务器。未来的使用会更快,因为它会缓存安装。
优点:
- 无需本地安装
- 始终使用GitHub上的最新版本
- 最小设置
- 适用于任何使用Node.js的机器
选项2:本地运行(用于开发/定制)
如果要修改服务器或在本地运行它:
步骤1:克隆存储库
git clone https://github.com/warrenandre/MCP_MD_TO_PDF.git
cd MCP_MD_TO_PDF
步骤2:安装依赖项
npm install
步骤3:安装Playwright
剧作家需要下载Chromium(仅限第一次):
npx playwright install chromium
步骤4:配置Claude桌面
编辑您的Claude Desktop配置文件:
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"MD_TO_PDF": {
"command": "node",
"args": ["C:\\path\\to\\MCP_MD_TO_PDF\\index.js"]
}
}
}
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"MD_TO_PDF": {
"command": "node",
"args": ["/path/to/MCP_MD_TO_PDF/index.js"]
}
}
}
重要提示: 将路径替换为您的实际绝对路径 index.js 文件。
最后一步(两种选择)
重新启动克劳德桌面 以使配置生效。
测试一下: 打开克劳德并尝试:
Convert sample.md to output.pdf
如何使用
配置后,只需让Claude使用自然语言将markdown转换为PDF:
基本转换
Convert document.md to document.pdf
自定义页面格式
Convert report.md to report.pdf using Letter format in landscape mode
使用自定义CSS
Convert notes.md to styled-notes.pdf with custom CSS:
body { font-family: Georgia, serif; font-size: 14pt; }
h1 { color: #2c3e50; }
直接内容转换
Create a PDF from this markdown content:
# Meeting Notes
- Item 1
- Item 2
Save as meeting.pdf
获取默认样式
Show me the default CSS for PDF generation
MCP工具参考
此服务器提供了Claude可以使用的三个工具:
1. convert_markdown_to_pdf
将Markdown文件转换为PDF。
参数:
markdownPath(必需):输入.md文件的路径outputPath(必填):保存PDF的路径customCss(可选):自定义CSS样式format(可选):纸张格式-“A4”、“Letter”、“Legal”、“A3”、“A5”、“Tabloid”(默认:“A4”)landscape(可选):使用横向(默认值:false)printBackground(可选):打印背景图形(默认值:true)
请求示例:
Convert README.md to documentation.pdf
2. convert_markdown_content_to_pdf
无需读取文件,即可将markdown内容直接转换为PDF。
参数:
markdownContent(必填):要转换的Markdown文本outputPath(必填):保存PDF的路径customCss(可选):自定义CSS样式format(可选):纸张格式(默认:“A4”)landscape(可选):使用横向(默认值:false)printBackground(可选):打印背景图形(默认值:true)
请求示例:
Convert this markdown to PDF: # Hello World\n\nThis is a **test**.
Save it as output.pdf
3. get_default_css
获取用于样式设置的默认CSS模板。
使用此功能:
- 查看默认样式
- 用作定制的起点
- 了解可用的CSS类
请求示例:
Show me the default CSS for PDF generation
默认CSS样式
默认情况下,服务器包含GitHub风格的markdown CSS:
- 使用系统字体进行干净的排版
- 代码块的语法高亮显示
- 样式表、区块行情和列表
- 响应式图像
- 带边框的专业标题
使用 get_default_css 工具查看完整的默认样式表。
PDF选项
纸张格式
- A4:210毫米×297毫米(默认)
- 信:8.5英寸×11英寸
- 法律:8.5英寸×14英寸
- A3号纸:297毫米×420毫米
- A5型:148毫米×210毫米
- 小报:11英寸×17英寸
边距
默认边距:四周1cm
自定义边距 customCss:
@page {
margin: 2cm 1.5cm;
}
故障排除
服务器未在Claude中显示
对于GitHub安装(选项1):
- 确保已安装Node.js(
node --version) - 检查配置文件语法是否正确(有效的JSON)
- 完全重新启动克劳德桌面
- 检查克劳德日志是否有错误(见下面的位置)
对于本地安装(选项2):
- 验证配置中的路径是否正确且绝对
- 确保
index.js存在于该位置 - 完全重新启动克劳德桌面
- 检查Claude日志中的启动错误
克劳德日志位置:
- 视窗:
%APPDATA%\Claude\logs\ - macOS:
~/Library/Logs/Claude/
剧作家未安装
错误:“可执行文件不存在于…”
解决方案:
npx playwright install chromium
这通常只影响本地安装(选项2),因为GitHub安装会自动处理依赖关系。
找不到文件错误
错误:“ENOENT:没有这样的文件或目录”
解决:
- 使用绝对路径(例如。,
C:\Users\...\file.md) - 确保文件存在并具有读取权限
- 检查文件扩展名是否为
.md
PDF看起来与预期不同
解决:
- 让Claude显示默认CSS:
Show me the default CSS - 使用自定义CSS进行测试以覆盖默认值
- 启用
printBackground: true用于颜色和背景 - 尝试不同的纸张格式(信纸、A4等)
权限不足
错误:“EACCES:权限被拒绝”
解决:
- 确保输出目录存在并且可写
- 检查输出路径上的文件权限
- 尝试保存到其他位置(例如,桌面)
技术细节
建筑
这是一个 模型上下文协议(MCP)服务器 即:
- 注册AI助手可以发现和使用的工具
- 通过标准输入/输出进行通信
- 接收JSON格式的工具调用请求
- 执行请求的PDF转换
- 将结果返回给AI助手
技术栈
- Node.js (ES模块)-运行时环境
- @模型上下文协议/sdk -MCP协议实现
- 剧作家 (Chromium)-用于PDF生成的无头浏览器
- 标记 -Markdown到HTML解析器
转换过程
- 解析:Markdown→ HTML(通过标记库)
- 风格:应用CSS(默认或自定义)
- 渲染:在无头Chromium中加载HTML(通过Playwright)
- 生成:使用指定选项将渲染页面导出为PDF
为什么是剧作家?
剧作家提供:
- 真正的浏览器渲染(与Chrome相同)
- 完整的CSS支持,包括打印媒体查询
- 高质量PDF生成
- 支持复杂的布局、字体和图形
了解有关MCP的更多信息: 模型上下文协议.io
发展
在本地运行以进行测试
如果您已经克隆了存储库(选项2):
node index.js
服务器将启动并通过stdio进行通信。您可以使用MCP客户端进行测试。
与Claude一起测试
-
创建测试标记文件:
echo "# Test Document\n\nThis is a **test**." > test.md -
问克劳德:
Convert test.md to test.pdf -
检查工作目录中的输出PDF。
修改服务器
- 更改默认CSS:编辑
DEFAULT_CSS恒常index.js - 添加新工具:添加到中的工具数组
ListToolsRequestSchema处理器 - 自定义PDF选项:修改
htmlToPdf功能 - 更新依赖关系:运行
npm update
贡献
欢迎投稿!请随时提交问题或拉取请求 GitHub.
许可证
麻省理工学院
链接
- GitHub存储库: https://github.com/warrenandre/MCP_MD_TO_PDF
- 模型上下文协议: https://modelcontextprotocol.io
- 剧作家: https://playwright.dev
- 标记: https://marked.js.org
问题或议题? 请打开一个问题 GitHub.