Skip to main content
Glama
Paperboy

Paperboy

Official
by sudostash

decrypt_pdf

DestructiveIdempotent

Removes the password from a PDF when you supply the correct one, leaving an unprotected copy. It is not a cracker and refuses signed PDFs.

Instructions

Remove the password from a PDF, given its correct password. Not a cracker. A PDF that restricts anything (printing, copying, changes) needs its owner password, since the copy has no restrictions. Signed PDFs are refused.

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>",
      "password": "<password>"
    },
    "name": "decrypt_pdf"
  }
}

Input Schema

NameRequiredDescriptionDefault
passwordYes
overwriteNo
input_pathYes
output_pathNo

Output Schema

NameRequiredDescriptionDefault
pagesYes
outputYes

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"
      +    }
      +  },
      +  "required": [
      +    "output",
      +    "pages"
      +  ],
      +  "title": "DecryptResult",
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds genuinely new behavior: the owner-password rule for restricted files, refusal of signed PDFs, and the "ask" indirection so secrets never pass through chat. It omits what happens to the original file, which matters for a destructive operation.

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?

Four short sentences, front-loaded with the core action, then scope limits, then the password-handling convention. No sentence is filler, and the refusals are stated as single clauses rather than prose.

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?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. What's missing is the destination behavior — the interplay of output_path, overwrite, and the original file — which is the main open question before invoking a destructive tool.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry the load, and it does add real meaning for password (owner vs user password, the "ask" sentinel). However input_path, output_path, and overwrite are never explained, including whether overwrite defaults to in-place modification — a consequential gap for a destructive tool.

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?

"Remove the password from a PDF, given its correct password" names a specific verb and resource, and the follow-up "Not a cracker" preempts the most likely misreading. An agent can distinguish this from encrypt_pdf or check_pdf without opening any 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?

Gives concrete preconditions and exclusions: the correct password is required, restricted PDFs need the owner password, and signed PDFs are refused. It doesn't name a sibling alternative for the refusal cases (e.g. where to go when the password is unknown), which keeps it short of a 5.

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