Skip to main content
Glama

MCP PDF Server

An MCP (Model Context Protocol) server exposing tools to render Markdown into PDF.

What’s included

  • MCP tools: pdf_from_markdown (primary) and md_to_pdf (alias).

  • Accepts inline Markdown or a file path.

  • Options for paper format and orientation; sensible output/ defaults.

Prerequisites

  • Node.js 18+ recommended.

Install

npm install # Download browsers for Playwright (Chromium only is enough): npx playwright install chromium

Build

npm run build

Run (stdio)

npm start

Configure in your MCP-compatible client by pointing to the compiled binary or npm start command.

MCP Tools

  • Tool ids: pdf_from_markdown (primary) and md_to_pdf (alias for discoverability)

    • Purpose: Generate a PDF from Markdown.

    • Inputs:

      • markdown (string, optional): Inline Markdown content. If set, path is ignored.

      • path (string, optional): Absolute or relative path to a .md file. Ignored if markdown is provided.

      • outputPath (string, optional): Desired output PDF path. Defaults to output/<timestamp>.pdf and creates missing directories.

      • paperFormat (string, optional): A4 | Letter | Legal (default: A4).

      • paperOrientation (string, optional): portrait | landscape (default: portrait).

      • Provide exactly one of markdown or path. If both are set, markdown takes precedence.

    • Output:

      • Returns a text message containing the absolute path to the created PDF.

    • Example (inline):

      { "tool": "md_to_pdf", "arguments": { "markdown": "# Hello\nThis will render to PDF.", "paperFormat": "A4" } }
    • Example (file path):

      { "tool": "pdf_from_markdown", "arguments": { "path": "examples/sample.md", "outputPath": "output/sample.pdf", "paperOrientation": "landscape" } }

Tool Schema (compact)

tools: - id: pdf_from_markdown alias: md_to_pdf params: markdown?: string # Inline Markdown (preferred if both set) path?: string # Path to a .md file outputPath?: string # Output PDF path (default: output/<timestamp>.pdf) paperFormat?: 'A4'|'Letter'|'Legal' # default: 'A4' paperOrientation?: 'portrait'|'landscape' # default: 'portrait' constraints: - Provide exactly one of markdown or path (if both provided, markdown is used) result: - type: text text: "PDF created at: <absolute path>"

Client configuration (example) If your MCP client supports JSON configuration for a stdio server, a minimal entry might look like:

{ "servers": { "mcp-pdf": { "command": "node", "args": ["dist/index.js"] } } }

Notes

  • Uses Playwright (Chromium) to render HTML from Markdown and print to PDF.

  • On first install, Playwright may download a browser. You can also point it to an existing Chrome/Chromium.

One‑liner with npx

  • After this package is published to npm, you can run the server directly:

    • npx -y md-2-pdf-mcp (runs the md-2-pdf-mcp bin)

    • Or explicitly: npx -y -p md-2-pdf-mcp mcp-pdf

    • The package defines bin entries and a postinstall that installs Chromium.

  • From the local repo (without publishing):

    • npx --yes .

    • This uses the bin in package.json and the prepare script to build.

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xblanc33/md-2-pdf-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server