Skip to main content
Glama

Zovo PDF Merge

Merge PDFs

merge_pdfs
Read-onlyIdempotent

Use this when the user wants to merge PDF files, combine PDFs into one, join PDF pages, reorder PDF pages, take only some pages of each PDF, delete pages from a PDF, or rotate PDF pages. Takes 1 to 20 attached PDFs in attach order and an optional list of parts (file number, page ranges like "1-3, 7, 10-end", pages to skip, rotation 90/180/270), and returns one new PDF with the page plan and a check that the output page count, order, sizes and rotation match the plan. With one file, it can delete, reorder or rotate pages. Does not open password-protected PDFs, does not keep form fields editable (they are flattened), and does not edit text. Do not use for splitting one PDF into several files (use split_pdf).

Input Schema

NameRequiredDescriptionDefault
filesYesThe PDFs to merge, in order, e.g. cover.pdf, report.pdf, appendix.pdf.
partsNoOptional page plan, in output order, e.g. [{"file":2,"pages":"1-3"},{"file":1,"pages":"all","rotate":90}]. Default: all pages of all files in attach order.
output_nameNoFile name for the result, e.g. contract-signed-set.pdf. Default: merged.pdf.

Output Schema

NameRequiredDescriptionDefault
planYes
checkYes
filesYes
notesYes
downloadsYes
plan_countNo
output_nameYes
output_pagesYes
output_size_kbYes
expires_in_hoursYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description nonetheless adds meaningful behavior: a 1-to-20 file bound, attach-order semantics, form fields being flattened, no password-protected input, and that output is a single new PDF with a page plan plus a verification check. It stops short of describing failure modes or how the verification check reports mismatches.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single dense paragraph rather than a list, which makes it slightly harder to scan, but the most decision-relevant content (when to use, when not to use) is front-loaded and each clause carries information. There is little outright filler, though the parameter recap partially duplicates the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with full schema coverage, annotations and an output schema in place, the description closes the remaining gaps: input limits, ordering, flattening side effects, unsupported inputs, and the sibling boundary. Nothing an agent needs to invoke it correctly appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds usable semantics: file ordering ('attach order'), the page-range grammar ('1-3, 7, 10-end'), skip versus take, and the legal rotation values. It largely mirrors the schema examples rather than introducing new constraints, which keeps it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete, multi-verb statement of scope (merge, combine, join, reorder, subset, delete, rotate) tied to a specific resource (PDF pages). It then explicitly names the sibling it is not for: 'Do not use for splitting one PDF into several files (use split_pdf).' An agent can distinguish merge_pdfs from split_pdf and inspect_pdf without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Use cases are enumerated up front, including the non-obvious single-file mode ('With one file, it can delete, reorder or rotate pages'). Exclusions are explicit and routed to an alternative tool (split_pdf), and unsupported inputs (password-protected PDFs, live form fields, text editing) are called out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources