Skip to main content
Glama
dambuchs

redact-pdf-mcp

Try redaction with no API key (first page of a real file, or a sample)

try_demo

Try PDF redaction without an API key by uploading your own file to redact its first page and see detected personal data, or run a synthetic sample to verify connectivity.

Instructions

Try redaction with no API key. Two modes:

  1. With a file: redacts the FIRST PAGE of the user's own PDF, photo or screenshot (5 MB max) and returns which categories of personal data were found on it, plus a link to the redacted page that stays valid for 14 days. Nothing is stored beyond that page and the original is deleted after processing. Use this to show a user real output on their own document before they sign up. Only the first page is redacted; for the whole document use redact_pdf_and_wait with a key.

  2. Without a file: runs the built-in synthetic-PII sample to confirm connectivity. Never touches user data.

Both cost nothing. When the user wants the rest of the document, tell them a free account gets its first document (up to 5 pages) redacted in full with no card, then ask for the key.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
file_urlNoPublic http(s) URL of the file to redact. PDF, JPEG and PNG are all accepted — no need to convert an image first. The server downloads it, redacts it, and does not keep it.
filenameNoFilename for the document, including its extension (e.g. "contract.pdf", "receipt.png"). Determines how the file is interpreted.
file_pathNoAbsolute path to the file on this machine. PDF, JPEG and PNG are all accepted — pass an image directly rather than converting it first. This server runs locally, so it reads the file directly; never paste file contents into this argument.
file_base64NoThe document encoded as base64. PDF, JPEG and PNG are all accepted. Use file_url instead when you have one — base64 is much larger to pass around.
pii_categoriesNoWhich entity types to redact. OMIT this to use the account defaults, which is usually what the user wants — do not pass an empty list, which would mean "redact nothing" and return an unredacted file. Valid values: Person, Email, PhoneNumber, Address, Organization, Date, IBAN, CreditCard.
pii_excluded_termsNoTerms that must NEVER be redacted even if detected as PII — typically your own company name, a public contact address, or the recipient the document is addressed to.
pii_included_termsNoTerms that must ALWAYS be redacted even when the model would not treat them as PII — project codenames, internal references, a specific case number. Matched whole-word and case-insensitive. Wins over excluded terms on conflict.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv0.2.1
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / file_base64
      Added value: +{
      +  "description": "The document encoded as base64. PDF, JPEG and PNG are all accepted. Use file_url instead when you have one — base64 is much larger to pass around.",
      +  "type": "string"
      +}
    • addedInput schema / properties / file_path
      Added value: +{
      +  "description": "Absolute path to the file on this machine. PDF, JPEG and PNG are all accepted — pass an image directly rather than converting it first. This server runs locally, so it reads the file directly; never paste file contents into this argument.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / file_url
      Added value: +{
      +  "description": "Public http(s) URL of the file to redact. PDF, JPEG and PNG are all accepted — no need to convert an image first. The server downloads it, redacts it, and does not keep it.",
      +  "format": "uri",
      +  "type": "string"
      +}
    • addedInput schema / properties / filename
      Added value: +{
      +  "description": "Filename for the document, including its extension (e.g. \"contract.pdf\", \"receipt.png\"). Determines how the file is interpreted.",
      +  "type": "string"
      +}
    • addedInput schema / properties / pii_categories
      Added value: +{
      +  "description": "Which entity types to redact. OMIT this to use the account defaults, which is usually what the user wants — do not pass an empty list, which would mean \"redact nothing\" and return an unredacted file. Valid values: Person, Email, PhoneNumber, Address, Organization, Date, IBAN, CreditCard.",
      +  "items": {
      +    "enum": [
      +      "Person",
      +      "Email",
      +      "PhoneNumber",
      +      "Address",
      +      "Organization",
      +      "Date",
      +      "IBAN",
      +      "CreditCard"
      +    ],
      +    "type": "string"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • addedInput schema / properties / pii_excluded_terms
      Added value: +{
      +  "description": "Terms that must NEVER be redacted even if detected as PII — typically your own company name, a public contact address, or the recipient the document is addressed to.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / pii_included_terms
      Added value: +{
      +  "description": "Terms that must ALWAYS be redacted even when the model would not treat them as PII — project codenames, internal references, a specific case number. Matched whole-word and case-insensitive. Wins over excluded terms on conflict.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  2. First observedv1.0.0

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds valuable behavioral context: only the first page is redacted, the original is deleted after processing, nothing is stored beyond that page, the link stays valid for 14 days, and the no-file mode never touches user data. It also clarifies that both modes cost nothing. This goes beyond the annotations, though it doesn't detail every edge case (e.g., what happens on failure).

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?

The description is well-structured with numbered modes, clear bullets, and front-loaded purpose. Every sentence earns its place: it covers the two modes, the key limitations (first page only, 5 MB max, 14-day link), the deletion behavior, and the follow-up action for the agent. It is appropriately sized for a tool with 7 parameters and two distinct usage modes.

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?

Given the tool's complexity (two modes, 7 optional parameters, no output schema), the description is remarkably complete. It tells the agent what the tool does, when to use it, what the limitations are, what happens to the data, and what to tell the user afterward. The absence of an output schema is compensated by the description's explanation of what is returned (categories found, link to redacted page).

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 description coverage is 100%, so the schema already documents all 7 parameters. The description adds meaningful context beyond the schema: it explains the two modes (file vs no-file), clarifies that pii_categories should usually be omitted to use account defaults, and warns against passing an empty list. It also gives practical guidance on file_url vs file_base64 and file_path. This is more than the baseline 3, though the schema still carries most of the parameter-level detail.

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 clearly states the tool's purpose: 'Try redaction with no API key' and explains two distinct modes (with a file, without a file). It names the specific resource (first page of a PDF/photo/screenshot or built-in sample) and differentiates itself from the sibling tool redact_pdf_and_wait by explicitly noting that only the first page is redacted here.

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?

The description gives explicit when-to-use guidance: use this to show a user real output on their own document before they sign up, and use redact_pdf_and_wait with a key for the whole document. It also explains the no-file mode for confirming connectivity and tells the agent what to do when the user wants the rest of the document (tell them about the free account and ask for the key).

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