Skip to main content
Glama
Paperboy

Paperboy

Official
by sudostash

extract_pages

DestructiveIdempotent

Save selected pages from a PDF as a new document, e.g. pages="1-3,10". Provide an owner password when the file restricts document assembly.

Instructions

Save only the given pages as a new PDF, e.g. pages="1-3,10". Needs the owner password if the PDF forbids document assembly.

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": {
      "input_path": "<input_path>",
      "pages": "<pages>"
    },
    "name": "extract_pages"
  }
}

Input Schema

NameRequiredDescriptionDefault
pagesYes
passwordNo
overwriteNo
input_pathYes
output_pathNo

Output Schema

NameRequiredDescriptionDefault
pagesYes
outputYes
password_protectedYes
user_password_changedYes
permissions_restrictedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.1
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "output": {
      +      "title": "Output",
      +      "type": "string"
      +    },
      +    "pages": {
      +      "title": "Pages",
      +      "type": "integer"
      +    },
      +    "password_protected": {
      +      "title": "Password Protected",
      +      "type": "boolean"
      +    },
      +    "permissions_restricted": {
      +      "title": "Permissions Restricted",
      +      "type": "boolean"
      +    },
      +    "user_password_changed": {
      +      "title": "User Password Changed",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "password_protected",
      +    "permissions_restricted",
      +    "user_password_changed",
      +    "output",
      +    "pages"
      +  ],
      +  "title": "ExtractResult",
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A3.5/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and idempotentHint=true; the description adds important password-handling behavior: the owner password is needed for document assembly, and the 'ask' option keeps secrets out of chat. It does not explain what is destroyed (e.g., overwrite behavior on output_path), so some mutation risk context is missing.

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 short sentences front-load the action and pack useful password details without filler. The page-format example is embedded efficiently.

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

Completeness3/5

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

The presence of an output schema means return values need not be described, and the core action plus password caveat are covered. However, with five undocumented schema parameters and a destructive operation, the missing input_path/output_path/overwrite semantics leave an important completeness gap.

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

Parameters2/5

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

Schema description coverage is 0% for five parameters. The description adds an example value syntax for pages and explains the password 'ask' option, but leaves input_path, output_path, and overwrite completely undefined, so an agent must infer core I/O and destructive-overwrite semantics.

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

Purpose4/5

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

States a specific verb-resource pair: save selected pages as a new PDF, with an example page-range syntax. It is clearly an extraction operation rather than deletion, though it does not explicitly contrast with sibling tools like crop_pages or delete_pages.

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

Usage Guidelines3/5

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

Gives practical invocation guidance for the pages format and the owner-password requirement, plus the 'ask' escape hatch. It does not state when to choose extract_pages over crop_pages or rearrange_pages, or any preconditions beyond password.

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