mcp-pandoc
mcp-pandoc 是一款基于 Model Context Protocol (MCP) 构建的开源服务,旨在利用强大的 Pandoc 引擎实现文档格式的无缝转换。它主要解决了不同文档格式(如 Markdown、HTML、LaTeX、Word 等)之间互转困难、格式容易丢失或结构混乱的痛点,让用户在转换过程中能最大程度保留原文的排版与逻辑结构。
这款工具特别适合开发者、技术写作者、研究人员以及需要频繁处理多格式文档的专业人士。对于正在构建 AI 应用或工作流的开发者而言,mcp-pandoc 提供了标准化的接口,可轻松集成到各类智能体系统中,实现自动化的文档处理流程。普通用户若熟悉命令行或希望通过 AI 助手间接调用,也能从中受益,高效完成格式迁移任务。
其技术亮点在于作为官方收录的 MCP 服务器之一,它不仅支持双向格式转换矩阵,还通过 convert-contents 等工具提供灵活的输入输出选项——既可直接处理文本内容,也能操作本地文件路径。目前项目虽处于早期开发阶段(例如 PDF 支持仍在完善中),但已具备扎实的转换核心能力,并配有详细的速查表与示例,帮助用户快速上手。无论是日常文档整理还是自动化流水线搭建,mcp-pandoc 都能成为得力的格式转换助手。
使用场景
某技术团队需要将分散在 GitHub Wiki(Markdown)、内部文档系统(HTML)和旧版报告(Docx)中的多源内容,统一整合为一份格式规范的 PDF 产品手册供客户查阅。
没有 mcp-pandoc 时
- 手动转换繁琐:开发者需逐个打开不同文件,手动复制内容到 Word 或在线转换工具,再另存为 PDF,重复劳动且极易出错。
- 格式严重丢失:在不同格式间反复拷贝时,代码块高亮、数学公式、表格结构经常错乱,后期人工修复排版耗时甚至超过编写时间。
- 自动化断点:无法将文档转换环节嵌入 CI/CD 流水线,每次发布新版本手册都依赖人工介入,导致交付周期长且版本难以同步。
- 上下文割裂:AI 助手虽能生成内容,但受限于本地环境缺乏通用转换能力,无法直接输出最终交付格式,迫使人员在 AI 对话与本地软件间频繁切换。
使用 mcp-pandoc 后
- 一键智能流转:通过自然语言指令,mcp-pandoc 直接读取 Markdown、HTML 或 Docx 源文件,自动调用 Pandoc 内核将其精准转换为目标格式。
- 结构完美保留:工具在转换过程中自动维护代码语法高亮、目录层级及复杂表格样式,确保生成的 PDF 专业美观,无需二次调整。
- 工作流无缝集成:作为 MCP 服务器,mcp-pandoc 可被 AI Agent 直接调度,实现从“内容生成”到“格式交付”的全自动闭环,显著提升发布效率。
- 沉浸式体验:开发者只需在对话框中描述需求(如“将 wiki 目录转为带页码的 PDF"),mcp-pandoc 即在后台静默完成所有技术细节,让人专注于内容本身。
mcp-pandoc 的核心价值在于消除了多格式文档协作中的技术摩擦,让内容创作与格式交付像呼吸一样自然流畅。
运行环境要求
- Linux
- macOS
- Windows
不需要 GPU
未说明

快速开始

mcp-pandoc:文档转换 MCP 服务器
正式纳入 Model Context Protocol 服务器 开源项目。🎉
概述
基于 pandoc 的文档格式转换 Model Context Protocol 服务器。该服务器提供工具,可在不同文档格式之间转换内容,同时保留格式和结构。
请注意,mcp-pandoc 目前仍处于早期开发阶段。PDF 支持正在开发中,随着我们不断改进服务器,其功能和可用工具可能会发生变化并进一步扩展。
致谢:本项目使用了 Pandoc Python 包 进行文档转换,这是该项目的基础。
📋 快速参考
初次使用 mcp-pandoc? 请查看 📖 CHEATSHEET.md,了解:
- ⚡ 所有格式的复制粘贴示例
- 🔄 双向转换矩阵
- 🎯 常见工作流程和实用技巧
- 🌟 文档样式参考指南
非常适合快速查找和快速上手!
演示
截图
更多内容即将推出……
工具
convert-contents- 在支持的格式之间转换内容
- 输入:
contents(字符串):要转换的源内容(如果未提供 input_file,则为必填项)input_file(字符串):输入文件的完整路径(如果未提供 contents,则为必填项)input_format(字符串):内容的源格式(默认为 markdown)output_format(字符串):目标格式(默认为 markdown)output_file(字符串):输出文件的完整路径(对于 pdf、docx、rst、latex、epub 格式,此选项为必填项)reference_doc(字符串):用于样式的参考文档路径(仅适用于 docx 输出格式)defaults_file(字符串):包含转换选项的 Pandoc 默认配置文件(YAML)路径filters(数组):转换过程中要应用的 Pandoc 过滤器路径列表
- 支持的输入/输出格式:
- markdown
- html
- docx
- rst
- latex
- epub
- txt
- ipynb
- odt
- 注意:对于高级格式(pdf、docx、rst、latex、epub),必须指定 output_file 路径
🔧 高级功能
默认配置文件(YAML 配置)
使用默认配置文件创建可重复使用的转换模板,以保持一致的格式:
# academic-paper.yaml
from: markdown
to: pdf
number-sections: true
toc: true
metadata:
title: "学术论文"
author: "研究团队"
使用示例:“使用 defaults academic-paper.yaml 将 paper.md 转换为 PDF,并保存为 paper.pdf”
Pandoc 过滤器
应用自定义过滤器以增强处理效果:
使用示例:“将 docs.md 转换为 HTML,使用过滤器 ['/path/to/mermaid-filter.py'],并保存为 docs.html”
💡 有关全面示例和工作流程,请参阅 CHEATSHEET.md
📊 支持的格式与转换
双向转换矩阵
| 来源\目标 | MD | HTML | TXT | DOCX | RST | LaTeX | EPUB | IPYNB | ODT | |
|---|---|---|---|---|---|---|---|---|---|---|
| Markdown | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| HTML | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| TXT | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| DOCX | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| RST | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| LaTeX | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| EPUB | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| IPYNB | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| ODT | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
关于 PDF 支持的说明
此工具使用 pandoc 进行转换,可以从上述格式生成 PDF 文件。然而,不支持从 PDF 转换为其他格式。因此,PDF 应被视为仅用于输出的格式。
格式分类
| 类别 | 格式 | 要求 |
|---|---|---|
| 基础 | MD、HTML、TXT、IPYNB、ODT | 无 |
| 高级 | DOCX、PDF、RST、LaTeX、EPUB | 必须指定 output_file 路径 |
| 带样式 | 带参考文档的 DOCX | 自定义模板支持 ⭐ |
格式要求
- PDF (.pdf) - 需要安装 TeX Live
- DOCX (.docx) - 支持通过参考文档自定义样式
- 其他所有格式 - 无额外要求
注意:对于高级格式:
- 必须提供包含文件名和扩展名的完整文件路径
- PDF 转换需要安装 TeX Live(参见“关键要求”部分 -> 对于 macOS:
brew install texlive) - 如果未指定输出路径:
- 基本格式:转换后的内容会显示在聊天中
- 高级格式:可能会保存到系统临时目录(Unix 系统上为 /tmp/)
使用与配置
注意:请确保按照下方“关键要求”中的说明完成所需软件包的安装。
使用已发布的版本:
{
"mcpServers": {
"mcp-pandoc": {
"command": "uvx",
"args": ["mcp-pandoc"]
}
}
}
💡 快速入门:请参阅 CHEATSHEET.md,获取可复制粘贴的示例及常用工作流程。
⚠️ 重要提示
关键要求
- Pandoc 安装
必需:安装
pandoc- 核心文档转换引擎安装方法:
# macOS brew install pandoc # Ubuntu/Debian sudo apt-get install pandoc # Windows # 从 https://pandoc.org/installing.html 下载安装程序验证:
pandoc --version
- UV 包安装
必需:安装
uv包(包含uvx命令)安装方法:
# macOS brew install uv # Windows/Linux pip install uv验证:
uvx --version
- PDF 转换前提条件:仅在需要转换并保存 PDF 时才需安装
在尝试 PDF 转换之前,必须先安装 TeX Live
安装命令:
# Ubuntu/Debian sudo apt-get install texlive-xetex # macOS brew install texlive # Windows # 从以下网址安装 MiKTeX 或 TeX Live: # https://miktex.org/ 或 https://tug.org/texlive/
- 文件路径要求
- 在保存或转换文件时,必须提供包含文件名和扩展名的完整文件路径
- 工具不会自动生成文件名或扩展名
示例
✅ 正确用法:
# 将内容转换为 PDF 并保存为 /path/to/document.pdf
“将这段文字转换为 PDF,并保存为 /path/to/document.pdf”
# 在不同文件格式之间转换
“将 /path/to/input.md 转换为 PDF,并保存为 /path/to/output.pdf”
# 使用参考文档模板将 Markdown 转换为 DOCX
“使用 template.docx 作为参考,将 input.md 转换为 DOCX,并保存为 output.docx”
# 分步参考文档工作流程
“首先创建一个参考文档:pandoc -o custom-reference.docx --print-default-data-file reference.docx”,或者如果你已经有现成的参考文档,就直接使用它。
“然后进行自定义样式转换:将这段文字转换为 DOCX,使用 /path/to/custom-reference.docx 作为参考,并保存为 /path/to/styled-output.docx”
❌ 错误用法:
# 缺少文件名和扩展名
“把这个保存为 PDF,放在 /documents/ 目录下”
# 缺少完整路径
“把这个转换为 PDF”
# 缺少扩展名
“保存为 /documents/story”
常见问题及解决方案
PDF 转换失败
- 错误信息:“xelatex 未找到”
- 解决方案:先安装 TeX Live(参见上述安装命令)
文件转换失败
- 错误信息:“无效的文件路径”
- 解决方案:提供包含文件名和扩展名的完整路径
- 示例:
/path/to/document.pdf而不是仅仅/path/to/
格式转换失败
- 错误信息:“不支持的格式”
- 解决方案:仅使用支持的格式:
- 基本格式:txt、html、markdown
- 高级格式:pdf、docx、rst、latex、epub
参考文档问题
- 错误信息:“参考文档未找到”
- 解决方案:确保参考文档的路径存在且可访问
- 注意:参考文档仅适用于 DOCX 输出格式
- 如何创建:
pandoc -o reference.docx --print-default-data-file reference.docx
快速入门
通过 claude_desktop_config.json 配置文件手动安装
- 在 macOS 上:
open ~/Library/Application\ Support/Claude/claude_desktop_config.json - 在 Windows 上:
%APPDATA%/Claude/claude_desktop_config.json
a) 仅用于本地开发及向本仓库贡献代码
开发/未发布服务器配置
ℹ️ 将
"mcpServers": {
"mcp-pandoc": {
"command": "uv",
"args": [
"--directory",
"<DIRECTORY>/mcp-pandoc",
"run",
"mcp-pandoc"
]
}
}
b) 已发布服务器配置 - 消费者应使用此配置
"mcpServers": {
"mcp-pandoc": {
"command": "uvx",
"args": [
"mcp-pandoc"
]
}
}
- 如果遇到任何问题,请直接使用上方的“已发布服务器配置”,而不是使用此 CLI。
注意:若要使用本地配置的 mcp-pandoc,请按照上方的“开发/未发布服务器配置”步骤操作。
开发
测试
要运行全面的测试套件并验证所有支持的双向转换功能,可以使用以下命令:
uv run pytest tests/test_conversions.py
这将确保向后兼容性,并验证工具的核心功能。
构建与发布
为准备分发软件包:
- 同步依赖并更新锁定文件:
uv sync
- 构建软件包分发文件:
uv build
这将在 dist/ 目录下生成源码和轮子分发文件。
- 发布到 PyPI:
uv publish
注意:你需要通过环境变量或命令行参数设置 PyPI 凭证:
- Token:
--token或UV_PUBLISH_TOKEN - 或用户名/密码:
--username/UV_PUBLISH_USERNAME和--password/UV_PUBLISH_PASSWORD
调试
由于 MCP 服务器通过标准输入输出运行,调试可能较为困难。为了获得最佳调试体验,我们强烈建议使用 MCP Inspector。
你可以通过 npm 使用以下命令启动 MCP 侦查器:
npx @modelcontextprotocol/inspector uv --directory /Users/vivekvells/Desktop/code/ai/mcp-pandoc run mcp-pandoc
启动后,侦查器会显示一个 URL,你可以在浏览器中访问该 URL 来开始调试。
贡献
我们欢迎对 mcp-pandoc 的贡献!以下是您可以参与的方式:
- 报告问题:发现 bug 或有功能需求?请在我们的 GitHub Issues 页面上提交一个问题。
- 提交 Pull Request:通过创建 Pull Request 来改进代码库或添加新功能。
版本历史
v0.8.12025/08/30v0.8.02025/08/24v0.5.02025/07/13v0.4.02025/06/29v0.3.42025/06/29常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器


