com.pdfia/pdf-tools
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Free PDF tools for AI agents: merge, split, rotate, watermark, page numbers, metadata, flatten.
| Author | com.pdfia |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2949 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"pdf-tools": {
"url": "https://pdfia.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (10)
merge_pdfsMerge multiple PDF files into one, in the order given. Returns the merged PDF as base64.
Parameters:
files(required) — array — 2+ PDFs, base64-encoded, in merge order
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
split_pdfSplit a PDF into parts. Provide ranges like "1-3, 5, 8-10" (each comma group becomes one output PDF), or omit ranges to get every page as its own PDF. Returns base64 files.
Parameters:
file(required) — string — The PDF file, base64-encoded (max 10 MB)ranges— string — e.g. "1-3, 5, 8-10"; omit for one file per page
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
extract_pagesExtract the given pages into a new PDF (original order). Returns base64.
Parameters:
file(required) — string — The PDF file, base64-encoded (max 10 MB)pages(required) — string — Page list like "2, 5-7" (1-based)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
remove_pagesDelete the given pages from a PDF. Returns the remaining document as base64.
Parameters:
file(required) — string — The PDF file, base64-encoded (max 10 MB)pages(required) — string — Page list like "2, 5-7" (1-based)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
rotate_pdfRotate pages clockwise by 90, 180, or 270 degrees. Rotates all pages unless a page list is given. Returns base64.
Parameters:
file(required) — string — The PDF file, base64-encoded (max 10 MB)degrees(required) — numberpages— string — Optional page list like "1, 3"; omit to rotate all
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
watermark_pdfStamp a diagonal text watermark (e.g. "CONFIDENTIAL", "DRAFT") across every page. Returns base64.
Parameters:
file(required) — string — The PDF file, base64-encoded (max 10 MB)text(required) — string — Watermark textsize— number — Font size in points, 8–200, default 60color— string — Default grayopacity— number — 0.02–1, default 0.15
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
add_page_numbersStamp page numbers onto every page of a PDF. Returns base64.
Parameters:
file(required) — string — The PDF file, base64-encoded (max 10 MB)size— number — Font size 6–24, default 12start— number — First number, default 1format— string — Default nposition— string — Default bottom-center
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_pdf_metadataRead a PDF's document properties (title, author, subject, keywords, creator, producer, dates, page count).
Parameters:
file(required) — string — The PDF file, base64-encoded (max 10 MB)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
set_pdf_metadataRewrite a PDF's document properties. Pass empty strings to strip identifying metadata before sharing. Returns base64.
Parameters:
file(required) — string — The PDF file, base64-encoded (max 10 MB)title— stringauthor— stringcreator— stringsubject— stringkeywords— string — Comma-separatedproducer— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
flatten_pdfFlatten fillable form fields into permanent page content so answers can't be edited. Returns base64.
Parameters:
file(required) — string — The PDF file, base64-encoded (max 10 MB)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.