Token导航 LogoToken导航TokenDH.com
Pandoc Weasyprint MCP logo
文档知识stdio官方级别未说明来源级核验

Pandoc Weasyprint MCP

MCP Server

一个基于Pandoc和WeasyPrint的文档转换服务,支持多种格式转换和自定义样式。

工具数

3

提示词数

0

GitHub Stars

0

资源数

0
文档转换多格式支持PythonClaude格式转换Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

alexandreshah

提供方

alexandreshah

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

Pandoc MCP 服务器

一个MCP(模型上下文协议)服务器,它利用Pandoc并支持WeasyPrint PDF引擎,提供文档转换功能。包括可定制的字体、字号和CSS样式。

特点/功能

  • 将Markdown转换为带有自定义字体和样式的PDF
  • 在多种文档格式之间进行转换(Markdown、docx、html、pdf 等)
  • 使用 WeasyPrint 作为 PDF 生成引擎(而非 LaTeX)
  • 自定义字体、字体大小、边距和页面尺寸
  • 应用自定义CSS以实现高级样式设计
  • 列出所有支持的输入/输出格式

先决条件

  • Python 3.8+
  • 您的系统上已安装Pandoc
  • 在您的系统上已安装WeasyPrint
  • MCP包

安装

1. 安装系统依赖项

Pandoc(潘多克):

# macOS
brew install pandoc

# Linux
sudo apt-get install pandoc

WeasyPrint:

# macOS
brew install weasyprint

# Linux
sudo apt-get install weasyprint

2. 安装Python依赖项

pip install -r requirements.txt

或者手动地:

pip install pypandoc mcp

3. 配置Claude代码

在您的Claude Code MCP设置中添加以下内容:~/.config/claude-code/mcp.json 或特定于项目的 .claude/mcp.json):

{
  "mcpServers": {
    "pandoc": {
      "command": "/path/to/your/python",
      "args": ["/path/to/pandoc-mcp/server.py"]
    }
  }
}

替换 /path/to/your/python 以及你的Python解释器路径 /path/to/pandoc-mcp/server.py (用)实际路径到 server.py

对于此次安装:

{
  "mcpServers": {
    "pandoc": {
      "command": "/Users/ashah/miniforge3/envs/energy311/bin/python",
      "args": ["/Users/ashah/work/pandoc-mcp/server.py"]
    }
  }
}

可选:自定义临时目录

默认情况下,服务器使用系统的默认临时目录。若要指定自定义临时目录(在受限环境中非常有用),请添加 env 部分/章节:

{
  "mcpServers": {
    "pandoc": {
      "command": "/Users/ashah/miniforge3/envs/energy311/bin/python",
      "args": ["/Users/ashah/work/pandoc-mcp/server.py"],
      "env": {
        "PANDOC_MCP_TMPDIR": "/tmp"
      }
    }
  }
}

这个 PANDOC_MCP_TMPDIR 环境变量可以设置为任何可写目录,以便 pandoc 在转换过程中将临时文件存储在您指定的位置。

4. 重启Claude代码

更新MCP配置后,重启Claude Code以加载新服务器。

可用工具

1. convert_md_to_pdf

将Markdown内容转换为PDF,并应用可自定义的样式。

参数:

  • markdown_content (必填):要转换的Markdown文本
  • output_path (必填):将PDF文件保存到哪里
  • css (可选):自定义CSS用于样式设置
  • font_family (可选):字体系列(默认:'Helvetica')
  • font_size (可选):基本字体大小(默认:'11pt')
  • page_size (可选):纸张大小(默认:'letter')
  • margin (可选):页面边距(默认:'1英寸')

示例:

# Via Claude Code
"Convert this markdown to PDF at ./output.pdf using Arial font at 12pt"

2. convert_file

将文件从一种格式转换为另一种格式。

参数:

  • input_path (必填):输入文件的路径
  • output_path (必填): 保存输出文件的位置
  • from_format (可选):输入格式(如未提供,则自动检测)
  • to_format (可选):输出格式(根据扩展名自动检测)
  • pdf_engine (可选):要使用的PDF引擎(默认:'weasyprint')
  • css (可选):为PDF/HTML输出定制CSS

示例:

# Via Claude Code
"Convert document.docx to PDF using weasyprint"

3. get_supported_formats

获取您的Pandoc安装所支持的所有输入和输出格式的列表。

示例:

# Via Claude Code
"What formats does pandoc support?"

使用示例

示例1:将基本Markdown转换为PDF

# My Document

This is a test document with **bold** and *italic* text.

## Features
- Easy to use
- Customizable fonts
- Professional output

询问Claude代码:

"Convert this markdown to PDF at ./my-document.pdf"

示例2:自定义字体和大小

询问克劳德代码:

"Convert this markdown to PDF at ./report.pdf using Times New Roman at 12pt"

示例3:自定义CSS样式

创建一个自定义的CSS文件:

body {
    font-family: 'Georgia', serif;
    font-size: 13pt;
    color: #2c3e50;
}

h1 {
    color: #3498db;
    border-bottom: 2px solid #3498db;
    padding-bottom: 6pt;
}

询问克劳德代码:

"Convert this markdown to PDF using my custom CSS file at ./custom-style.css"

示例4:将DOCX转换为PDF

询问克劳德代码:

"Convert my-document.docx to PDF using weasyprint"

定制化

默认CSS

服务器包含一个默认的CSS模板(default-style.css(带有:

  • 专业的排版设计
  • 代码语法高亮
  • 表格样式
  • 引用块格式化
  • 分页支持

在转换时,您可以修改此文件或提供您自己的CSS样式。

字体选项

您可以使用的常见字体系列:

  • 衬线体: “Times New Roman”、“Georgia”、“Garamond”
  • 无衬线体: “Helvetica”、“Arial”、“Verdana”
  • 等宽字体: “Courier New”、“Consolas”、“Monaco”

页面大小

支持的页面大小:

  • letter (8.5英寸×11英寸)
  • a4 (210毫米×297毫米)
  • legal (8.5英寸×14英寸)
  • a3a5tabloid等。

边距

使用以下方式指定边距:

  • 英寸: 1in0.5in
  • 厘米: 2cm2.5cm
  • 毫米: 20mm25mm

故障排除

“未找到 Pandoc”

确保已安装Pandoc并且它在你的PATH环境变量中:

which pandoc
pandoc --version

“未找到 WeasyPrint”

确保已安装WeasyPrint且已将其添加到您的PATH中:

which weasyprint
weasyprint --version

字体问题

如果字体显示不正确,请确保它已安装在您的系统中。WeasyPrint 使用系统字体。

“权限被拒绝(只读文件系统)”

如果在PDF转换过程中遇到权限错误:

  1. 设置自定义临时目录 使用 PANDOC_MCP_TMPDIR 在您的MCP配置中的环境变量:
   {
     "mcpServers": {
       "pandoc": {
         "command": "/path/to/python",
         "args": ["/path/to/server.py"],
         "env": {
           "PANDOC_MCP_TMPDIR": "/tmp"
         }
       }
     }
   }
  1. 检查错误信息 - 服务器现在包含调试信息,显示:

- 临时目录路径 - 当前工作目录 - 输出路径

  1. 验证写入权限 - 确保指定的临时目录对您的用户可写。

默认的临时目录位置:

  • macOS(苹果电脑操作系统) /var/folders/.../T (用户特定的)
  • Linux: /tmp 或者 $TMPDIR
  • 自定义:通过设置 PANDOC_MCP_TMPDIR

MCP服务器未加载

  1. 检查您的MCP配置中的Python路径是否正确
  2. 确保 mcp 并且 pypandoc 安装在那个Python环境中
  3. 检查Claude Code的日志以查找错误信息

技术细节

  • 服务器: 基于Python的MCP服务器,使用 mcp 包裹;软件包;程序包
  • 转换器: 用途 pypandoc Pandoc 的封装工具/包装器
  • PDF引擎: WeasyPrint(可更改为其他引擎)
  • 沟通: 通过标准输入输出(stdio)进行的JSON-RPC

许可证

麻省理工学院(MIT)

做出贡献

欢迎随时提交问题或拉取请求以进行改进!

目录标签

目录标签

文档转换多格式支持PythonClaude格式转换本地部署PDF生成自定义样式

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP