Read, search and render the PDFs in one folder; merge, extract and create them from Markdown.
MCPpedia last refreshed this data
io.github.yarenty/emperor-pdf is an MCP server that read, search and render the PDFs in one folder; merge, extract and create them from Markdown. Its tool list has not been published yet over stdio, sse and http, requires no API key, and scores 70/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"pdf": {
"args": [
"serve",
"--stdio",
"--root",
"/path/to/pdfs",
"--pdfium-dir",
"/path/to/pdfium"
],
"command": "/path/to/emperor-pdf"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Read, search and render the PDFs in one folder; merge, extract and create them from Markdown.
This server supports HTTP transport. Be the first to test it - help the community know if it works.
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in writing
Scrape, crawl, and map websites to Markdown or JSON via local CLI.
Create and edit PDFs: text, Markdown, tables, metadata and pages, with Japanese font embedding.
Any file → clean Markdown for AI agents: PDF, Office, EPUB, HTML, images, audio/video. Local MCP.
一键同步文章到多个内容平台,支持今日头条、WordPress、知乎、简书、掘金、CSDN、typecho各大平台,一次发布,多平台同步发布。解放个人生产力
MCP Security Weekly
Get CVE alerts and security updates for io.github.yarenty/emperor-pdf and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
The PDFs in one folder, for your agents: read, search, render, merge, split and write them.
An MCP server that works on the PDFs inside a single root folder and nowhere else:
https:// URL, with Google's PDFium,
the engine inside Chrome, and fall back to a pure-Rust extractor when PDFium is not installed.cap-std directory handle, so .., absolute
paths and symlinks that lead out of the root are refused by the operating system layer.--writable the writing tools are not even offered.Built on the emperor-mcp framework: stateless
Streamable HTTP (or stdio for desktop clients), framed output, a doctor subcommand, four tools
read-only and six with --writable. It meets
Emperor Profile P1.1: no tool
that writes is listed unless the operator switches writing on at start-up (--writable or
PDF_WRITABLE), and tool definitions are lean, with short descriptions that say when to use
each tool and compact input schemas.
Prebuilt binaries (macOS arm64/x86_64, Linux x86_64, Windows x86_64) are attached to GitHub releases. Or build from source:
cargo install --git https://github.com/yarenty/emperor-pdf
Rust 1.92 or newer is needed to build (typst 0.15 sets that minimum).
pdf_create is behind the create Cargo feature (on by default), which brings in Typst and the
embedded fonts. Without it you get a smaller binary that reads, searches, renders, merges and
extracts:
cargo install --git https://github.com/yarenty/emperor-pdf --no-default-features
| Build | Release binary (macOS x86_64) |
|---|---|
default (create) | 51 MB |
--no-default-features | 14 MB |
The repository's Dockerfile builds an image that speaks MCP over stdio and carries PDFium
(linux/amd64 and linux/arm64). Mount the folder with your PDFs at /data:
docker build -t emperor-pdf .
docker run -i --rm -v ~/Documents/papers:/data:ro emperor-pdf
# read-write: mount without :ro and switch writing on
docker run -i --rm -e PDF_WRITABLE=true -v ~/Documents/papers:/data emperor-pdf
The server runs as uid 10001, so for --writable the mounted folder must be writable by it.
PDFium is a native library loaded at runtime; it is not bundled with emperor-pdf. Prebuilt PDFium binaries for every platform come from bblanchon/pdfium-binaries (Apache-2.0 / BSD-3-Clause). From a checkout:
scripts/fetch-pdfium.sh # downloads the right archive for this machine into ./pdfium/
or download pdfium-<os>-<cpu>.tgz from a release yourself and unpack it anywhere. The