Generate professional PDFs with full Unicode, emoji, and offline support for diverse document needs.
Create Simple Documents: Generate basic text PDFs quickly with titles and content for letters and notices
Build Advanced Layouts: Design complex documents with full layout control including text positioning, images, shapes (rectangles, circles, lines), colors, gradients, and custom page configurations
Generate Professional Resumes: Create formatted resumes from standard JSON Resume format with customizable styling for margins, spacing, fonts, and header alignment
Rich Text Styling: Apply extensive formatting with custom fonts, sizes, colors, alignment (left, center, right, justify), bold, italic, underline, strikethrough, character/word spacing, and line/paragraph gaps
Unicode & Emoji Support: Render full color emojis (😀 🎉 🚀) and international text (Chinese, Japanese, Korean, Arabic, Cyrillic) automatically
Work Offline: Operate without internet after initial installation with cached fonts and emoji resources
Security Features: Write PDFs to sandboxed directories with filename sanitization to prevent path traversal attacks
Hosted on GitHub as a repository for source code and issue tracking
Built using JavaScript/TypeScript and provides direct access to PDFKit's JavaScript API for advanced PDF generation capabilities
Runs on Node.js runtime environment and is distributed as a Node.js package
Published and distributed through npm package registry for easy installation and dependency management
Provides TypeScript interfaces and examples for type-safe PDF generation and content structuring
Provides full Unicode text support for international languages including CJK, Arabic, Cyrillic, Hebrew, Thai and other scripts in PDF generation
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP PDFcreate a resume for me with my work experience and skills"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@mcp-z/mcp-pdf
Docs: https://mcp-z.github.io/mcp-pdf PDF generation MCP server for documents, layouts, and image export.
Common uses
Generate PDFs from text or layouts
Render PDF pages as images
Measure text before layout
Transports
MCP supports stdio and HTTP.
Stdio
HTTP
start is an extension used by npx @mcp-z/cli up to launch HTTP servers for you.
Authentication
No OAuth or API keys required.
How to use
Available tools
pdf-resume
Generate professional resumes from JSON Resume format.
Parameters:
filename(string, optional) - Filename for the PDF (defaults to "resume.pdf")resume(object, required) - JSON Resume schemasections(object, optional) - Section ordering and field templateslayout(object, optional) - Spatial arrangement (single-column or two-column)styling(object, optional) - Typography and spacing optionsfont(string, optional) - Custom fontpageSize(string, optional) - Page size (default: "LETTER")backgroundColor(string, optional) - Page background color
Resume schema sections:
basics- Name, contact, summary, locationwork- Work experience with highlightseducation- Degrees and institutionsprojects- Personal/professional projectsskills- Skills grouped by categoryawards,certificates,languages,volunteer,publications,interests,references
Section configuration
Control which sections appear and in what order using sections.sections:
Section config properties:
source(string, required) - Path to data in resume schema (e.g.,basics,work,meta.customField)render(string, optional) - Built-in renderer. Useheaderexplicitly or to force a renderertitle(string, optional) - Section heading (omit for no title)template(string, optional) - LiquidJS template for custom rendering
Available renderers:
header- Name + contact line from basics (never auto-inferred)entry-list- Arrays with position/institution/organizationkeyword-list- Arrays withkeywordslanguage-list- Arrays withlanguagecredential-list- Arrays with awarder/issuer/publisherreference-list- Arrays withreferencetext- String or string array
Example: custom section order with meta fields
Field templates
Field templates use LiquidJS syntax to customize how fields are rendered.
Available field templates:
location-{{ city }}{% if region %}, {{ region }}{% endif %}dateRange-{{ start | date: 'MMM YYYY' }} - {{ end | date: 'MMM YYYY' | default: 'Present' }}degree-{{ studyType }}{% if area %}, {{ area }}{% endif %}credential-{{ title | default: name }}{% if awarder %}, {{ awarder }}{% endif %}language-{{ language }}{% if fluency %} ({{ fluency }}){% endif %}skill-{{ name }}: {{ keywords | join: ', ' }}contactLine-{{ items | join: ' | ' }}
Date format tokens:
YYYY,YY,MMMM,MMM,MM,M,DD,D
Available filters:
date- Format a date stringdefault- Fallback for empty valuestenure- Calculate durationjoin- Join array elements
Example: French resume
Example: verbose date format
Two-column resume layout
Layout options:
style- "single-column" (default) or "two-column"gap- Space between columns in points (default: 30)columns.left.width- Left column width (percentage or points)columns.left.sections- Section source paths for left columncolumns.right.width- Right column widthcolumns.right.sections- Section source paths for right column
pdf-layout
Create a PDF with precise positioning and Yoga flexbox layout.
Parameters:
filename(string, optional) - Filename for the PDF (defaults to "document.pdf")title(string, optional) - Document metadataauthor(string, optional) - Document metadatapageSetup(object, optional) - Page configurationcontent(array, required) - Content itemslayout(object, optional) - Layout options
Page setup:
Content types:
Text and headings:
Shapes:
Images and pages:
Flexbox layout engine
Use type: 'group' to create flexbox containers:
Common layout patterns:
Two equal columns:
Three columns with proportions (1:2:1):
Centered card:
Space between items:
Mixed positioning:
Complete flyer example:
Emoji and Unicode support
Color emoji render as inline images. Unicode text is supported across major scripts.
pdf-document
Create a flowing PDF document with automatic pagination.
pdf-image
Render PDF pages to PNG images for previews or export.
text-measure
Measure text width and height before layout.
Tools
pdf-document
pdf-image
pdf-layout
pdf-resume
text-measure
External resources
None.
Prompts
resource-fetching
Resources
PDFKit Documentation
JSON Resume Schema
JSON Resume Editor