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
convert_markdown_to_pdf(markdown_content, output_filename, size, pdf_engine)convert_markdown_file_to_pdf(markdown_file_path, output_filename, size, pdf_engine)convert_pdf_to_markdown(pdf_file_path, output_filename)extract_text_from_pdf(pdf_file_path, page_numbers)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
