
Wraps PDFKit to generate PDFs through MCP tools. You get pdf-document for basic text and image layouts, pdf-layout for absolute positioning with Yoga flexbox containers, and pdf-resume for turning JSON Resume schemas into formatted CVs with customizable sections and two-column layouts. Field templates use LiquidJS for date formats and localization. Runs via stdio or HTTP with npx, no authentication needed. Useful when you need programmatic PDF generation without hitting external APIs, whether that's rendering reports from structured data or letting an LLM assemble resumes on the fly. The flexbox engine handles responsive layouts if you're building more complex document structures.
Public tool metadata for what this MCP can expose to an agent.
pdf-documentFlowing documents with automatic paginationFlowing documents with automatic pagination
No parameter schema in public metadata yet.
pdf-layoutPrecisely positioned layouts such as slides and flyersPrecisely positioned layouts such as slides and flyers
No parameter schema in public metadata yet.
pdf-resumeJSON Resume documentsJSON Resume documents
No parameter schema in public metadata yet.
pdf-imageRender PDF pages to PNGRender PDF pages to PNG
No parameter schema in public metadata yet.
text-measureMeasure text before layoutMeasure text before layout
No parameter schema in public metadata yet.
Sponsors
Create PDF documents and layouts, render pages to PNG, and measure text through MCP. The server runs locally and requires no API key.
Requires Node.js >=22.13. The examples use npx, included with npm, to run this server and @mcp-z/cli.
MCP supports stdio and HTTP.
Both transports support the 2025 and 2026-07-28 protocol revisions. The 2026 revision is stateless, so clients using it send no initialize handshake or session ID.
Save one of these configurations as .mcp.json in the directory where you will run the commands.
Stdio
{
"mcpServers": {
"pdf": {
"command": "npx",
"args": ["-y", "@mcp-z/mcp-pdf"]
}
}
}
HTTP
{
"mcpServers": {
"pdf": {
"type": "http",
"url": "http://localhost:9010/mcp",
"start": {
"command": "npx",
"args": ["-y", "@mcp-z/mcp-pdf", "--port=9010"]
}
}
}
}
start is an extension used by npx @mcp-z/cli up to launch HTTP servers for you. The MCP endpoint is /mcp.
# List tools
npx -y @mcp-z/cli inspect --servers pdf --tools
@mcp-z/mcp-pdf