mcp-pandoc
An MCP server on top of pandoc: the agent converts Markdown, HTML, DOCX, LaTeX, EPUB, ODT and other formats into one another
- 584 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- The server reads files at the given paths and writes the result to a file at the specified path
- The filters parameter runs the chosen pandoc filters, which means executing programs on your computer
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/mcp-pandocDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The server reads files at the given paths and writes the result to a file at the specified path
- The filters parameter runs the chosen pandoc filters, which means executing programs on your computer
This is third-party code. Review the repository files before installing.
What it does
mcp-pandoc gives an agent a single tool, `convert-contents`, which converts documents from one format to another through the pandoc installed on your computer. The source is either text right in the request or a file path. It reads Markdown, HTML, DOCX, ODT, RST, LaTeX, EPUB, IPYNB and plain text, and writes the same formats plus PDF and PPTX. For Markdown, HTML, TXT and IPYNB the result comes back straight into the chat. The other formats need the full path of the output file with a name and extension. DOCX, ODT and PPTX can be styled from a sample: the `reference_doc` parameter takes styles from a document in the same format as the result. Two extensions cover repeated jobs. A pandoc defaults file in YAML sets permanent options such as a table of contents and section numbering, and a filter list plugs in your own processors, for example for diagrams. Requests are plain phrases: "convert paper.md to PDF using defaults academic-paper.yaml and save as paper.pdf".
Who it is for. For technical writers, teachers and developers who prepare documents, papers and presentations and want to convert them between formats with chat phrases.
Good fit when
- An article is written in Markdown and you need a DOCX for the editor, a PDF for print and an HTML for publishing
- You must style a DOCX, ODT or PPTX to a corporate sample, passed with the `reference_doc` parameter
- Jupyter notebook notes have to become a readable document or the other way round
- You need permanent PDF options such as a table of contents and section numbering, set by a YAML defaults file
- A DOCX or EPUB arrived and has to become Markdown quickly so the agent can work with it
Not a fit when
- You need to read a finished PDF or PPTX: pandoc only produces these formats and cannot read them
- You cannot install programs on the computer: the server requires pandoc and uv, and TeX Live too for PDF
- You need to edit the content of a document: the server only changes the format and does not edit text
- You need to read an Excel spreadsheet: that format is not in the input list
Example request
Convert /Users/me/docs/report.md to DOCX using /Users/me/docs/template.docx as reference and save as /Users/me/docs/report.docxMCP
- Transport
- stdio
- Authentication
- not required
Limitations
The project is in early development: the author warns that the toolset and features may change. It needs pandoc, the uv package manager with the `uvx` command and Python 3.11 or newer. PDF additionally needs TeX Live; without it conversion fails with "xelatex not found".
PDF and PPTX can be produced but not read. Pandoc has never had a PDF reader, and a PPTX reader appeared in version 3.8.3, but the project declares no minimum pandoc version and Ubuntu 24.04 ships 3.1.3, so that input is not offered. The advanced formats (PDF, DOCX, ODT, PPTX, RST, LaTeX, EPUB) require the full output path, or the result may land in a temporary folder.
The sample for `reference_doc` must be in the same format as the result. Pandoc does not check this: a mismatched sample is silently ignored for DOCX and produces an ODT file that cannot be opened.
How to disable. Remove the mcp-pandoc block from the MCP client configuration, for example from claude_desktop_config.json, and restart the client. The installed pandoc and uv can stay: the server does not change them.
FAQ
How do I connect mcp-pandoc to Claude Desktop?
Install pandoc and uv first. Then open claude_desktop_config.json (in macOS it sits in ~/Library/Application Support/Claude/, in Windows in %APPDATA%/Claude/) and add the mcp-pandoc server with the command uvx and the argument mcp-pandoc. After Claude Desktop restarts, the convert-contents tool becomes available.
Why can't I save a PDF?
PDF needs TeX Live. Without it the server reports "xelatex not found". On Ubuntu and Debian install the `texlive-xetex` package, on macOS run `brew install texlive`, on Windows install MiKTeX or TeX Live. The save path must be full and end in .pdf.
Which formats does mcp-pandoc read and which does it write?
It reads Markdown, HTML, DOCX, ODT, RST, LaTeX, EPUB, IPYNB and TXT. It writes the same formats plus PDF and PPTX. PDF and PPTX are not accepted as input: pandoc cannot read PDF, and PPTX reading is not offered in the project.
How do I style a DOCX from a ready sample?
Pass the sample's path in the reference_doc parameter and the server takes its styles. The sample must be DOCX when the result is DOCX, ODT for ODT and PPTX for PPTX. To create a starting sample, run `pandoc -o custom-reference.docx --print-default-data-file reference.docx` and edit the file in Word.
Can I plug in my own pandoc filters?
Yes, pass a list of filter paths in the filters parameter. The documentation example converts docs.md to HTML with the filter mermaid-filter.py and saves it as docs.html. Permanent options such as a table of contents and numbering go into a YAML file passed with the defaults_file parameter.
Discussion
No questions or reviews yet.
Related
MCP serversAn MCP server that turns PDF, DOCX, XLSX, PPTX, images, audio, web pages and YouTube transcripts into Markdown
Microsoft's utility and MCP server that turn PDF, Word, Excel, PowerPoint, HTML and other files into Markdown for models
A skill and CLI that turn Markdown into DOCX, PDF, PPTX, XLSX, PNG and about a dozen more formats, all computed locally
A Firecrawl skill and CLI that lets your agent convert Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV and PDF to Markdown on your own machine
A skill to convert Markdown to Word and back through Pandoc with ready styling templates and Lua filters
MCP PDF from ComPDF: the agent converts PDFs and images to Word, Excel, Markdown and JSON and merges, splits, protects and compares files via a cloud API
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| mcp-pandoc (this entry) | no | not required | 584 | |
| MarkItDown | yes | not required | 192,901 | turns PDF, Word, Excel, PowerPoint and other files into Markdown for a model |
| pandoc-docx-template | no | 1,102 | a skill for converting Markdown to Word and back with ready style templates and Lua filters | |
| Overleaf MCP Server | no | API key | 334 | an MCP server for Overleaf |
README in short
The README opens with a description of the server and a link to a cheatsheet with examples. It then covers the single tool and its parameters, a format table with read and write directions and a conversion matrix. The setup section gives configurations for the published and local versions, the requirements for pandoc, uv and TeX Live, examples of correct and incorrect requests and a rundown of typical errors. The end holds development, tests, building and debugging with MCP Inspector.