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