File Format Converter (Pandoc) MCP server

Document format conversion using Pandoc, enabling transformation of content between PDF, HTML, Markdown, .docx, .rst, .epuc, .latex, and more.
Back to servers
Provider
Vivek Vells
Release date
Dec 08, 2024
Language
Python
Package
Stats
14.6K downloads
273 stars

The mcp-pandoc server provides document format conversion capabilities using Pandoc, allowing you to transform content between different formats while preserving structure and formatting. This tool integrates with Claude AI through the Model Context Protocol (MCP).

Installation Requirements

Core Dependencies

Before using mcp-pandoc, you must install several dependencies:

  1. Pandoc - The core document conversion engine:

    # macOS
    brew install pandoc
    
    # Ubuntu/Debian
    sudo apt-get install pandoc
    
    # Windows
    # Download installer from: https://pandoc.org/installing.html
    

    Verify installation with: pandoc --version

  2. UV Package - Includes the required uvx command:

    # macOS
    brew install uv
    
    # Windows/Linux
    pip install uv
    

    Verify installation with: uvx --version

  3. TeX Live (only needed for PDF conversion):

    # Ubuntu/Debian
    sudo apt-get install texlive-xetex
    
    # macOS
    brew install texlive
    
    # Windows
    # Install MiKTeX or TeX Live from:
    # https://miktex.org/ or https://tug.org/texlive/
    

Setting Up the Server

Configure Claude Desktop

Add the following configuration to your Claude Desktop config file:

  • On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-pandoc": {
      "command": "uvx",
      "args": ["mcp-pandoc"]
    }
  }
}

Automatic Installation via Smithery

Alternatively, you can install the server automatically:

npx -y @smithery/cli install mcp-pandoc --client claude

Using the Document Converter

The mcp-pandoc server provides a convert-contents tool with the following options:

Supported Formats

  • Basic formats (direct conversion):

    • Plain text (.txt)
    • Markdown (.md)
    • HTML (.html)
  • Advanced formats (requires file paths):

    • PDF (.pdf)
    • DOCX (.docx)
    • RST (.rst)
    • LaTeX (.tex)
    • EPUB (.epub)

Convert Content Examples

Converting Text Between Basic Formats

To convert content from one format to another:

Ask Claude: "Convert this markdown to HTML:
# Hello World
This is **bold** and *italic* text."

Converting Files with Complete Paths

For advanced formats, always provide complete file paths:

Ask Claude: "Convert /path/to/input.md to PDF and save as /path/to/output.pdf"

Converting Content to Advanced Formats

When converting to formats like PDF, you must specify an output file path:

Ask Claude: "Convert this text to PDF and save as /path/to/document.pdf:
# Important Document
This contains important information that needs to be preserved."

Important Usage Notes

  1. File Path Requirements:

    • Always provide complete file paths including filename and extension
    • The tool does not automatically generate filenames or extensions
  2. PDF Conversion:

    • Requires TeX Live to be installed beforehand
    • May fail with "xelatex not found" error if TeX Live is missing
  3. Format Support:

    • Only the listed formats are supported
    • Advanced formats always require complete file paths

Troubleshooting

Common Issues

  1. PDF Conversion Fails

    • Error: "xelatex not found"
    • Solution: Install TeX Live first (see installation commands above)
  2. File Conversion Fails

    • Error: "Invalid file path"
    • Solution: Provide complete path including filename and extension
    • Example: /path/to/document.pdf instead of just /path/to/
  3. Format Conversion Fails

    • Error: "Unsupported format"
    • Solution: Use only supported formats listed above

How to add this MCP server to Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > MCP and click "Add new global MCP server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "cursor-rules-mcp": {
            "command": "npx",
            "args": [
                "-y",
                "cursor-rules-mcp"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explictly ask the agent to use the tool by mentioning the tool name and describing what the function does.

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later