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
# Create a simple PDF
npx -y @mcp-z/cli call-tool pdf pdf-document '{"content":[{"type":"text","text":"Hello from MCP"}]}'The tool returns a file URI and metadata for the generated PDF. See the complete tool reference for parameters and examples.
| Tool | Use |
|---|---|
pdf-document |
Flowing documents with automatic pagination |
pdf-layout |
Precisely positioned layouts such as slides and flyers |
pdf-resume |
JSON Resume documents |
pdf-image |
Render PDF pages to PNG |
text-measure |
Measure text before layout |
None.
- resource-fetching
- PDFKit Documentation
- JSON Resume Schema
- JSON Resume Editor