md-2-pdf-mcp
v1.0.4
Published
MCP server exposing pdf_from_markdown/md_to_pdf tools to render Markdown (inline or file) to PDF with output path, paper format and orientation options.
Maintainers
Readme
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) andmd_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 chromiumBuild
npm run buildRun (stdio)
npm startConfigure in your MCP-compatible client by pointing to the compiled binary or npm start command.
MCP Tools
- Tool ids:
pdf_from_markdown(primary) andmd_to_pdf(alias for discoverability)- Purpose: Generate a PDF from Markdown.
- Inputs:
markdown(string, optional): Inline Markdown content. If set,pathis ignored.path(string, optional): Absolute or relative path to a.mdfile. Ignored ifmarkdownis provided.outputPath(string, optional): Desired output PDF path. Defaults tooutput/<timestamp>.pdfand creates missing directories.paperFormat(string, optional):A4|Letter|Legal(default:A4).paperOrientation(string, optional):portrait|landscape(default:portrait).- Provide exactly one of
markdownorpath. If both are set,markdowntakes 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 themd-2-pdf-mcpbin)- Or explicitly:
npx -y -p md-2-pdf-mcp mcp-pdf - The package defines
binentries and apostinstallthat installs Chromium.
- From the local repo (without publishing):
npx --yes .- This uses the
binin package.json and thepreparescript to build.
