Skip to main content
Glama

Unlock a local PDF

abox_pdf_unlock

Decrypt a local PDF using a supplied UTF-8 password file or a blank password, then write a new unencrypted copy and verify the rewritten object graph; does not guess passwords.

Instructions

Use a supplied local UTF-8 password file or a blank password to write a new unencrypted PDF with the existing website decryptor. Supports the source engine encryption revisions and verifies the reachable object graph after rewriting. Does not guess passwords. Standard metadata removal defaults to true; visible content and embedded metadata can remain. Signatures become invalid.

Input Schema

NameRequiredDescriptionDefault
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
password_fileNoAbsolute path to an exact UTF-8 password file; contents, BOM and final newline are not trimmed. Never put the password itself into arguments.
remove_metadataNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.9.0

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only say readOnly=false, destructive=false, idempotent=false. The description goes well beyond that: metadata removal defaults to true, visible content and embedded metadata may remain, signatures become invalid, and the object graph is verified after rewriting. Those are concrete consequences an agent could not infer from the structured fields.

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?

Six short sentences, front-loaded with the core action and followed by constraints in decreasing priority. "Supports the source engine encryption revisions" is the one line that borders on opaque jargon, but nothing is redundant.

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?

For a mutation tool with no output schema, the description covers the write target, the password input model, and side effects such as metadata and signature invalidation. It does not say what the call returns (the written path? the verification verdict?), which is the remaining gap.

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 75%, and the description fills the main gap by explaining that "Standard metadata removal defaults to true" — the only parameter without a schema description. It also clarifies password semantics ("Does not guess passwords") in a way the schema does not, though it adds nothing about path handling beyond the schema.

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?

The description states a specific verb and resource: write a new unencrypted PDF from a password-protected source using a password file or blank password. It is distinct from what any sibling tool does, though it never names an alternative (e.g. abox_pdf_protect) to sharpen the boundary.

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?

"Use a supplied local UTF-8 password file or a blank password" plus "Does not guess passwords" defines the operating context and an explicit exclusion. It stops short of saying what to do when the password is unknown or when to prefer a different tool.

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