SuperAPI AI 工具集

mcp-pandoc

mcp-pandoc 是一个基于 Model Context Protocol(MCP)的服务器,使用 Pandoc 实现文档格式转换。它能在不同文档格式之间转换内容,并尽可能保留原有格式与结构。该服务器已正式收录于 Model Context Protocol 开源服务器项目。项目目前处于早期开发阶段,PDF 支持仍在开发中,功能与可用工具可能随改进而变化。核心工具 convert-contents 支持 Markdown、HTML、DOCX、ODT、RST、LaTeX、EPUB、IPYNB、TXT 等格式的读写转换,PDF 和 PPTX 仅支持写出。用户可通过内容字符串或输入文件路径指定源,并指定输入/输出格式、输出文件路径、参考文档、Pandoc 默认文件(YAML)以及过滤器数组。使用前需安装 Pandoc 和 uv 包(含 uvx 命令),PDF 转换还需安装 TeX Live。该工具适合需要在多格式文档间进行批量或精确转换的开发、写作与自动化工作流场景。

访问官网

工具介绍

mcp-pandoc 是一个用于文档格式转换的 Model Context Protocol(MCP)服务器,基于 Pandoc 实现。该项目已正式收录于 Model Context Protocol 开源服务器项目。需要说明的是,mcp-pandoc 目前处于早期开发阶段,PDF 支持仍在开发中,其功能与可用工具可能随持续改进而发生变化或扩展。项目使用 Pandoc Python 包进行文档转换,这是整个项目的基础。

用途

该服务器提供在不同文档格式之间转换内容的工具,转换过程中尽可能保留格式与结构。它适用于需要自动化文档格式转换的开发、写作及工作流场景。

主要能力

核心工具 convert-contents 可在支持的格式之间转换内容。

输入参数包括:

  • contents(字符串):要转换的源内容(未提供 input_file 时必填)
  • input_file(字符串):输入文件的完整路径(未提供 contents 时必填)
  • input_format(字符串):源格式,默认为 markdown
  • output_format(字符串):目标格式,默认为 markdown
  • output_file(字符串):输出文件的完整路径(对于 pdf、docx、rst、latex、epub、odt、pptx 格式为必填)
  • reference_doc(字符串):用于样式设置的参考文档路径(支持 docx、odt 和 pptx 输出;文件必须与输出格式匹配)
  • defaults_file(字符串):包含转换选项的 Pandoc 默认文件(YAML)路径
  • filters(数组):转换期间应用的 Pandoc 过滤器路径列表

支持格式及方向:

  • markdown:可读可写
  • html:可读可写
  • docx:可读可写
  • odt:可读可写
  • rst:可读可写
  • latex:可读可写
  • epub:可读可写
  • ipynb:可读可写
  • txt:可读可写
  • pdf:不可读,可写
  • pptx:不可读,可写

注意:对于 pdf、docx、rst、latex、epub、odt、pptx 等高级格式,必须提供 output_file 路径。PDF 与 PPTX 为仅可写格式:Pandoc 从未提供 PDF 读取器;Pandoc 在 3.8.3 版本(2025-12-01 发布)中加入了 PowerPoint 读取器,但本项目未声明最低 Pandoc 版本,且 Ubuntu 24.04 仍随附 Pandoc 3.1.3,因此不提供 pptx 输入。PPTX 输出不需要特定 Pandoc 版本,PowerPoint 写入器自 Pandoc 2.0.5 起就已存在。

高级功能

可使用 defaults 文件创建具有一致格式的可复用转换模板,例如:"Convert paper.md to PDF using defaults academic-paper.yaml and save as paper.pdf"。 可应用自定义过滤器进行增强处理,例如:"Convert docs.md to HTML with filters ['/path/to/mermaid-filter.py'] and save as docs.html"。 更多示例与工作流参见 CHEATSHEET.md。

使用方式与配置

使用前需先安装下文所列的必需软件包。

Pandoc 安装(必需,核心文档转换引擎):

  • macOS:brew install pandoc
  • Ubuntu/Debian:sudo apt-get install pandoc
  • Windows:从 https://pandoc.org/installing.html 下载安装程序
  • 验证:pandoc --version

UV 包安装(必需,包含 uvx 命令):

  • macOS:brew install uv
  • Windows/Linux:pip install uv
  • 验证:uvx --version

PDF 转换前置条件(仅在需要转换并保存 PDF 时):必须先安装 TeX Live。

  • Ubuntu/Debian:sudo apt-get install texlive-xetex
  • macOS:brew install texlive
  • Windows:从 https://miktex.org/ 或 https://tug.org/texlive/ 安装 MiKTeX 或 TeX Live

文件路径要求:保存或转换文件时,必须提供包含文件名和扩展名的完整文件路径。该工具不会自动生成文件名或扩展名。 若未指定输出路径:基础格式会在聊天中显示转换后的内容;高级格式可能会保存在系统临时目录(Unix 系统为 /tmp/)。

手动配置:可通过 claude_desktop_config.json 配置文件安装。

  • macOS:打开 ~/Library/Application\ Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%/Claude/claude_desktop_config.json 配置分两种情况:a) 仅用于本地开发与向本仓库贡献(需替换为本地克隆的项目路径);b) 已发布服务器的配置,使用者应使用此配置。如遇到问题,请直接使用"已发布服务器配置"而非 CLI。若要在本地配置 mcp-pandoc,请遵循"开发/未发布服务器配置"步骤。

适用场景

适用于需要在 Markdown、HTML、DOCX、ODT、RST、LaTeX、EPUB、IPYNB、TXT 等格式之间进行文档转换的场景;需要在转换时套用统一样式模板或自定义过滤器的场景;以及需要将转换流程集成到 MCP 客户端工作流中的开发者与写作者。

限制与注意事项

  • 项目处于早期开发阶段,功能与工具可能变化。
  • PDF 与 PPTX 仅支持输出,不支持作为输入读取。
  • 高级格式必须提供完整的 output_file 路径。
  • reference_doc 仅支持 DOCX、ODT、PPTX 输出,且参考文档必须与输出格式一致。Pandoc 本身不检查这一点:对于 DOCX 输出,不匹配的参考文档会被静默忽略;对于 ODT 输出,则会产生无法打开的 ODT 文件。创建参考文档的方式:pandoc -o reference.docx --print-default-data-file reference.docx,reference.odt 或 reference.pptx 同理。
  • 常见错误及解决:PDF 转换报错 "xelatex not found",需先安装 TeX Live;文件转换报错 "Invalid file path",需提供包含文件名和扩展名的完整路径,例如 /path/to/document.pdf 而非仅 /path/to/;格式转换报错 "Unsupported format",需仅使用支持的格式;参考文档报错 "Reference document not found",需确保参考文档路径存在且可访问。
  • 由于 MCP 服务器通过 stdio 运行,调试可能较困难,推荐使用 MCP Inspector 进行调试。可通过 npm 命令启动 MCP Inspector,启动后会显示一个 URL,可在浏览器中访问以开始调试。

该项目欢迎贡献:可在 GitHub Issues 页面报告问题或提交功能请求;也可通过创建拉取请求改进代码库或添加功能。