Paperboy
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PAPERBOY_QPDF | No | Path to the qpdf binary. Defaults to auto-detection. | |
| PAPERBOY_ROOT | No | Strongly recommended. Confine all reads/writes to this directory tree. | |
| PAPERBOY_SOFFICE | No | Path to the soffice binary. Defaults to auto-detection. | |
| PAPERBOY_LOG_LEVEL | No | Logging verbosity. Logs go to stderr. | INFO |
| PAPERBOY_MAX_PAGES | No | Reject documents with more pages than this. | 5000 |
| PAPERBOY_MAX_FILE_MB | No | Reject inputs larger than this size in MB. | 200 |
| PAPERBOY_ALLOW_OVERWRITE | No | Default for the overwrite flag on every tool. | false |
| PAPERBOY_SOFFICE_TIMEOUT | No | Seconds before a LibreOffice conversion is killed. | 180 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pdf_infoA | Report page count, file size, PDF version, encryption status and metadata. Works on an encrypted file without a password (returns is_encrypted only). |
| get_metadataC | Read document metadata: title, author, subject, keywords, creator, producer. |
| check_pdfC | Validate structural integrity and report any problems found. |
| extract_textB | Extract text from all pages or a page spec (e.g. "1-3,7"). Returns text + truncation flag. |
| encrypt_pdfA | Add a password to a PDF. user_password opens the file; owner_password (defaults to it) controls permissions. algorithm: AES-256 (default), AES-128, RC4-128, RC4-40. allow_print/copy/modify set viewer-enforced restrictions. Use current_password if the input is already encrypted. |
| decrypt_pdfB | Remove the password from a PDF, given its correct password. Not a cracker. |
| rearrange_pagesA | Reorder/duplicate/reverse pages. page_order e.g. "3,1,2", "5-1" (reverse), "last,1-4". Unlisted pages are dropped unless append_unlisted=true. Pages may repeat to duplicate. |
| delete_pagesC | Delete pages, e.g. pages="2,5-7". |
| extract_pagesC | Save only the given pages as a new PDF, e.g. pages="1-3,10". |
| rotate_pagesC | Rotate pages clockwise by 90/180/270 degrees (all pages if pages omitted). |
| merge_pdfsB | Merge PDFs in the given order into output_path. passwords optionally maps an input path to its password for encrypted inputs. |
| split_pdfB | Split a PDF into several files. ranges: semicolon-separated page specs, one file each, e.g. "1-3;4-6;7-". If omitted, every page becomes its own file. |
| optimize_pdfC | Shrink a PDF: linearize ("fast web view") and recompress object streams. |
| repair_pdfC | Rebuild a damaged PDF's structure by reading and rewriting it. |
| flatten_pdfC | Flatten form fields and annotations into page content (requires the qpdf CLI). |
| set_metadataC | Set metadata. fields keys: title, author, subject, keywords, creator, producer. |
| convert_to_pdfB | Create a PDF from an image, a text/markdown file, or an Office/HTML document. Office/HTML (docx, xlsx, pptx, odt, html, ...) requires LibreOffice installed. |
| images_to_pdfC | Combine images into a single PDF, one image per page, in order. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
Most tools target a distinct operation (encrypt vs decrypt, merge vs split, rotate vs rearrange), so boundaries are usually clear. Minor overlaps exist: pdf_info already reports metadata that get_metadata reads, and convert_to_pdf can create a PDF from an image, which images_to_pdf also does.
Nearly all names use a consistent snake_case verb_noun pattern (extract_text, merge_pdfs, rotate_pages, set_metadata). The lone deviation is pdf_info, which puts the noun first, but it stays readable and in the same casing convention.
18 tools is on the heavier side but each covers a genuinely distinct PDF task (metadata, security, page ops, merge/split, optimize, repair, flatten, conversion). No tool feels redundant enough to remove, so the count is justified by the breadth of the domain.
The surface covers the full lifecycle well: inspect, validate, read/write metadata, encrypt/decrypt, page manipulation, merge/split, optimize, repair, flatten, and conversion. Only niche operations like image extraction or watermarking are absent, which agents can work around.