MD-PDF MCP Server

A server for converting Markdown files to PDF format. Requires pandoc and weasyprint.

MD-PDF MCP Server

A Model Context Protocol (MCP) server for converting between Markdown and PDF formats.

System Requirements

Tested on:

  • macOS 14.3.0 (Darwin 23.3.0, ARM64)
  • Python 3.13.0
  • uv 0.7.13
  • pandoc 3.6.2

Features

  • Convert Markdown content/files to PDF with size options (small, medium, large)
  • Convert PDF files to Markdown format
  • Extract text from specific PDF pages
  • Retrieve PDF metadata

MCP Tools

  1. convert_markdown_to_pdf(markdown_content, output_filename, size, pdf_engine)
  2. convert_markdown_file_to_pdf(markdown_file_path, output_filename, size, pdf_engine)
  3. convert_pdf_to_markdown(pdf_file_path, output_filename)
  4. extract_text_from_pdf(pdf_file_path, page_numbers)
  5. get_pdf_info(pdf_file_path)

Installation

# Install dependencies
curl -LsSf https://astral.sh/uv/install.sh | sh
brew install pandoc weasyprint

# Setup project
uv sync

Running the Server

uv run python main.py

MCP Integration

Claude Desktop

{
  "mcpServers": {
    "md-pdf": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/md-pdf",
        "run",
        "main.py"
      ]
    }
  }
}

Cursor

Configure MCP in Cursor settings

{
  "servers": {
    "md-pdf": {
      "command": "uv",
      "args": ["run", "main.py"],
      "cwd": "/absolute/path/to/md-pdf"
    }
  }
}

Size Options

  • s: 8pt font, 0.35in margins (compact)
  • m: 9pt font, 0.5in margins (standard)
  • l: 11pt font, 1in margins (detailed)

Project Structure

md-pdf/
├── data/           # Test files
├── tools/          # MCP tool definitions  
├── utils/          # Conversion utilities
├── main.py         # Server entry point
└── server.py       # MCP server instance

Related Servers