@utilitly/mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pdf_infoA | Reads a PDF and reports its page count, file size, first page size in points, and whether it is password-protected. Changes nothing. |
| merge_pdfsA | Combines PDFs into one, in the order given. The result is named after the first file, with -merged. Writes the result as a new file next to the input (or to output_path) and never replaces an existing file; the input is left unchanged. |
| split_pdfA | Splits a PDF into one new file per comma-separated range, named -part1, -part2 and so on. "1-2, 3-end" gives two files, and one call writes at most 1,000 (or one per page for longer PDFs). Never replaces an existing file; the input is left unchanged. |
| extract_pagesA | Copies the selected pages into one new PDF, in page order, named with -pages. Writes the result as a new file next to the input (or to output_path) and never replaces an existing file; the input is left unchanged. |
| rotate_pdfA | Turns pages clockwise by a multiple of 90 degrees (negative turns counter-clockwise), every page unless pages is given. Named with -rotated. Writes the result as a new file next to the input (or to output_path) and never replaces an existing file; the input is left unchanged. |
| delete_pagesA | Removes the selected pages and keeps the rest in order, named with -trimmed. At least one page must remain. Writes the result as a new file next to the input (or to output_path) and never replaces an existing file; the input is left unchanged. |
| reorder_pagesA | Puts the pages in a new order, named with -reordered. The order must list every page exactly once; use pdf_info for the page count. Writes the result as a new file next to the input (or to output_path) and never replaces an existing file; the input is left unchanged. |
| duplicate_pagesA | Adds copies of the selected pages, right after each one or all at the end, named with -duplicated. Copies share the page's images, so the file barely grows. One call can add at most 10,000 pages. Writes the result as a new file next to the input (or to output_path) and never replaces an existing file; the input is left unchanged. |
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 8 tools
Each tool maps to a distinct page-level operation (merge, split, extract, rotate, delete, reorder, duplicate) plus a read-only info tool, and the descriptions clarify the outputs. The only mild overlap is split_pdf vs extract_pages, both of which produce page subsets, but the distinction (multiple range-based files vs one copied subset) is spelled out well enough.
Seven of eight tools follow a clean verb_noun pattern (merge_pdfs, split_pdf, extract_pages, rotate_pdf, delete_pages, reorder_pages, duplicate_pages). pdf_info breaks the pattern by putting the noun first, a minor deviation that is still readable and unambiguous.
Eight tools is well within the sweet spot for a focused PDF utility server, and each one corresponds to a meaningful, non-redundant operation. Nothing feels padded or missing at the count level.
The surface covers inspection plus the core structural editing lifecycle (merge, split, extract, rotate, delete, reorder, duplicate) with consistent output behavior. Gaps exist for common PDF tasks like text/content extraction, compression, and encryption or metadata editing, though these are workaroundable and outside the apparent structural-editing scope.