Skip to main content

Convert markdown to professional PDFs with clickable table of contents. No API keys.

Project description

Markdown to PDF Converter

Convert markdown (.md) files into professional, interactive PDF documents with automatic table of contents.

MCP Registry: io.github.williammarceaujr/md-to-pdf

Features

  • Automatic Table of Contents - Generated from markdown headers
  • Interactive Navigation - Clickable TOC links to sections
  • Professional Styling - Clean, readable PDF output
  • Code Block Support - Syntax highlighting preserved
  • Table Support - Markdown tables convert to PDF tables
  • Image Support - Embedded images in PDFs
  • Batch Conversion - Process multiple files at once
  • MCP Integration - Use as an MCP server for AI assistants

Use Cases

  • Convert documentation to shareable PDFs
  • Create professional reports from markdown
  • Generate user manuals with navigation
  • Archive markdown content in PDF format
  • Prepare presentations or handouts
  • AI-powered document generation workflows

Project Structure

md-to-pdf/
├── src/
│   ├── md_to_pdf.py          # Core conversion logic
│   └── convert.sh            # Wrapper script (sets library paths)
├── mcp-server/
│   └── md_to_pdf_mcp.py      # MCP server wrapper
├── registry/
│   └── manifest.json         # MCP Registry manifest
├── workflows/
│   └── convert-md-to-pdf.md  # Conversion workflow guide
├── testing/                  # Multi-agent test infrastructure
├── VERSION                   # Current version
├── CHANGELOG.md              # Version history
├── SKILL.md                  # MCP skill documentation
└── README.md                 # This file

Requirements

  • Python 3.8+
  • markdown2 (markdown parsing)
  • weasyprint (PDF generation)
  • pygments (code syntax highlighting)
  • mcp (MCP server - for MCP mode only)

macOS Additional Requirements

brew install pango cairo

Quick Start

CLI Usage

# Set library path (macOS)
export DYLD_LIBRARY_PATH=/opt/homebrew/lib:$DYLD_LIBRARY_PATH

# Convert single file
python src/md_to_pdf.py input.md output.pdf

# Using wrapper script
./src/convert.sh input.md output.pdf

# Batch convert
python src/md_to_pdf.py "docs/*.md" --output-dir pdfs/

# With custom styling
python src/md_to_pdf.py input.md output.pdf --css custom.css

# Without table of contents
python src/md_to_pdf.py input.md output.pdf --no-toc

MCP Server Usage

# Install MCP SDK
pip install mcp

# Run MCP server
python mcp-server/md_to_pdf_mcp.py

MCP Tools

Tool Description
convert_markdown_to_pdf Convert markdown to PDF with optional TOC
extract_toc Extract table of contents structure
get_default_styles Get default CSS for customization

See SKILL.md for detailed MCP tool documentation.

Version

Current version: 1.0.0

License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

md_to_pdf_mcp-1.0.0.tar.gz (524.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

md_to_pdf_mcp-1.0.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file md_to_pdf_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: md_to_pdf_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 524.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for md_to_pdf_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 77e2d9366f6ca7a4a3b43f44df93625156ace5c8f51b4c0f0310a479b5631cb1
MD5 f054810f82909829caf4dd356a1259de
BLAKE2b-256 178181781de3b4f1de909843b0cdceb3816d0a2b2fcb53e42f710b0ceb450c19

See more details on using hashes here.

File details

Details for the file md_to_pdf_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: md_to_pdf_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for md_to_pdf_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ce5a955bc0cc2a83fcbee1c83a37cd714a58e70ec024eac6ee84f79709ec507
MD5 a51da715dee55ac287889f2800682404
BLAKE2b-256 3e575023ea227949cfc4584153573576ac55873a41c7eaadb944e25d232aff88

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page