Pdf Builder
FreeNot checkedMarkdown to PDF — pandoc + WeasyPrint pipeline, web editor, MCP server
About
Markdown to PDF — pandoc + WeasyPrint pipeline, web editor, MCP server
README
Markdown to PDF with a small editor webapp and an MCP server, sharing a single docs folder. Pandoc + WeasyPrint pipeline.
What you get
- CLI —
build.sh some.mdrenders a PDF using the active theme. - Server (Express, port 3001) — REST API to list, read, write, version and render docs from
DOCS_ROOT. - Webapp (Angular + Ionic, port 4200) — sidebar tree, markdown editor, save, generate, PDF preview.
- MCP server — stdio JSON-RPC tools so an LLM can do the same things the webapp does.
All four operate on the same on-disk folder: edits via the webapp show up in the MCP and vice versa.
Requirements
- Node.js 20+
pandocweasyprint
Quick start
./start.sh
Then open http://localhost:4200. The default DOCS_ROOT is ./docs/ (auto-created on first write).
CLI alternative:
./build.sh path/to/file.md
PDF lands in out/.
Configuration
| Env var | Default | Effect |
|---|---|---|
DOCS_ROOT |
<repo>/docs |
Folder that holds the markdown sources, history snapshots, and rendered PDFs. |
PDF_THEME |
default |
Theme directory under themes/. |
Themes
A theme is a folder under themes/ with two required files and one optional:
themes/<name>/
style.css # required — page layout, typography, colors
template.html # required — pandoc HTML wrapper
logo.png # optional — auto-used if present and no --logo flag
Two themes ship in the repo: default (plain) and example (branded layout —
running logo, footer with company/address, accent color, page breaks). Use
example as the starting point for your own brand.
To brand it for your org:
cp -r themes/example themes/myorg- Edit
style.css(accent color, fonts, footer text in@bottom-center). - Drop your
logo.pnginto the folder. PDF_THEME=myorg ./build.sh some.md
The .gitignore excludes themes/*/ except themes/default/ and
themes/example/, so a private branded theme stays out of the public repo
automatically.
MCP server
Build and register:
cd mcp && npm install && npm run build
claude mcp add pdf-builder --scope user -- node "$PWD/dist/index.js"
Tools exposed: list_docs, read_doc, write_doc, list_history, read_history, generate_pdf, explain. See mcp/explain.md.
Path traversal is blocked: tool args must be relative to DOCS_ROOT.
Repo layout
build.sh # CLI entry
start.sh # boots server + webapp
themes/default/ # ships in the public repo — plain
themes/example/ # ships in the public repo — branded starting point
themes/<other>/ # gitignored — your private brand
docs/ # gitignored — your content
out/ # gitignored — CLI build artefacts
server/ # Express REST API
app/ # Angular + Ionic editor
mcp/ # stdio MCP server
Versioning
Every overwrite via write_doc or PUT /api/doc snapshots the previous file content into <DOCS_ROOT>/.history/<path>/<ISO-timestamp>.md before overwriting. Append-only, no deletes. Restore by reading a snapshot and writing it back.
License
TBD.
Installing Pdf Builder
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/NG-Bullseye/pdf-builderFAQ
Is Pdf Builder MCP free?
Yes, Pdf Builder MCP is free — one-click install via Unyly at no cost.
Does Pdf Builder need an API key?
No, Pdf Builder runs without API keys or environment variables.
Is Pdf Builder hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Pdf Builder in Claude Desktop, Claude Code or Cursor?
Open Pdf Builder on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Pdf Builder with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
