Skip to main content
Glama
Paperboy

Paperboy

Official
by sudostash

interleave_pdfs

DestructiveIdempotent

Combine front and back scans of a double-sided document into one correctly ordered PDF, reversing back pages by default to fix single-sided scanner output.

Instructions

Combine the fronts and backs of a double-sided document scanned on a single-sided scanner into one PDF: front 1, back 1, front 2, back 2, ... Turning the stack over to scan the backs puts them last page first, so they are reversed; pass reverse_backs=false if they were scanned in order. The backs must have as many pages as the fronts, or one fewer. A scan that forbids document assembly needs its owner password.

Any password argument can be "ask": the user then types it on a local page, so it never passes through the chat.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "front_path": "<front_path>",
      "back_path": "<back_path>",
      "output_path": "<output_path>"
    },
    "name": "interleave_pdfs"
  }
}

Input Schema

NameRequiredDescriptionDefault
back_pathYes
overwriteNo
front_pathYes
output_pathYes
back_passwordNo
reverse_backsNo
front_passwordNo

Output Schema

NameRequiredDescriptionDefault
backsYes
pagesYes
frontsYes
outputYes
password_protectedYes
user_password_changedYes
permissions_restrictedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.1.1

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the write profile is known. The description adds genuine behavior beyond that: the page-count validation (backs must match fronts or be one fewer) and the owner-password requirement for scans that forbid document assembly. However, it never mentions the overwrite parameter or what happens if output_path already exists — a notable omission for a tool flagged destructive.

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

Conciseness5/5

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

Three sentences, front-loaded with the operation and its ordering result, followed by the reversal caveat and then the validation/password constraints. Nothing is repeated and no sentence could be dropped without losing information an agent needs before calling.

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

Completeness4/5

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

Output schema exists and annotations cover safety, so the description is not obliged to explain return values. The scan-reversal logic, cardinality rule, and password sentinel make it callable correctly. The one hole is overwrite/existing-file behavior, which matters for a destructive write and is not covered anywhere else.

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?

With 0% schema description coverage the description must carry the load, and it does for most parameters: it explains reverse_backs's default behavior and when to disable it, the 'ask' sentinel accepted by any password argument (front_password/back_password), and the cardinality constraint governing back_path. It leaves overwrite completely unexplained and says nothing about output_path beyond the obvious, so one meaningful gap remains.

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?

States a specific verb and resource ('Combine the fronts and backs of a double-sided document ... into one PDF') and pins the exact output ordering with 'front 1, back 1, front 2, back 2, ...'. That ordering rule makes it unmistakably distinct from a generic merge_pdfs or n_up operation, so an agent can select it without opening the schema.

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

Usage Guidelines4/5

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

Frames the exact scenario it serves (a double-sided document scanned on a single-sided scanner) and gives an in-tool decision rule: use reverse_backs=false if the backs were scanned in order. It does not explicitly say when to prefer this over merge_pdfs or n_up, so sibling routing is left to inference.

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