Skip to main content
Glama

pdf-suite-mcp

A comprehensive MCP (Model Context Protocol) server for PDF operations. 37 tools for reading, searching, creating, merging, splitting, watermarking, stamping, form filling, redacting, annotating, comparing, optimizing, and more.

Built on open-source libraries — not affiliated with Adobe. Uses pdf-lib for PDF manipulation and unpdf (Mozilla pdf.js) for text extraction.

Requirements

  • Node.js >= 18 (tested on Node 18, 20, 22, 24)

  • npm or compatible package manager

Related MCP server: PDF MCP Server

Installation

git clone https://github.com/beepboop2025/pdf-suite-mcp.git
cd pdf-suite-mcp
npm install
npm run build

Configuration

Claude Code (one line, no clone)

claude mcp add pdf-suite -- npx -y pdf-suite-mcp

Any MCP client

Add to your client's MCP config:

{
  "mcpServers": {
    "pdf-suite": {
      "command": "npx",
      "args": ["-y", "pdf-suite-mcp"]
    }
  }
}

From a local clone

{
  "mcpServers": {
    "pdf-suite": {
      "command": "node",
      "args": ["/path/to/pdf-suite-mcp/dist/index.js"]
    }
  }
}

Tools Overview

Category

Tools

Count

Read

Extract text (per-page), PDF info & metadata

2

Search

Full-text search with context, compare two PDFs

2

Create

Generate PDFs from text (with headings), images to PDF

2

Manipulate

Merge, split, rotate, delete, extract, reorder, insert, reverse, blank pages, crop, overlay PDF, N-up page layout

12

Overlay

Watermark, page numbers, add text, add image, headers/footers, business stamps, signatures

7

Annotate

Redact regions, highlight, draw shapes (rect/line/ellipse)

3

Forms

Read form fields, fill forms (text/checkbox/dropdown/radio)

2

Metadata

Set title, author, subject, keywords, creator, producer

1

Security

Decrypt password-protected PDFs

1

Optimize

Flatten forms, compress, validate, repair

4

Attachments

Embed files inside a PDF

1

Tool Reference

Reading

pdf_read_text — Extract text from all or specific pages.

  • filePath (string, required) — PDF path

  • pages (number[], optional) — Page numbers to extract (1-indexed). Returns per-page text with headers.

pdf_info — Page count, file size, all metadata, form field count, page dimensions (pts + inches), rotation, PDF version.

  • filePath (string, required) — PDF path

  • password (string, optional) — For encrypted PDFs

Searching

pdf_search — Full-text search across all pages. Returns matches with page numbers and surrounding context.

  • filePath (string, required) — PDF path

  • query (string, required) — Text or regex pattern

  • caseSensitive (boolean, default: false)

  • regex (boolean, default: false) — Treat query as regex

  • contextChars (number, default: 60) — Characters of context around each match

pdf_compare — Compare text content of two PDFs page by page. Reports identical/different pages with word-level change summary.

  • filePath1, filePath2 (strings, required)

Creating

pdf_create — Create a PDF from text with auto word-wrapping, pagination, and headings.

  • outputPath, content (required) — Lines starting with # render as bold headings

  • fontSize (default: 12), margin (50), lineSpacing (1.4)

  • pageSize: A4, Letter, Legal, A3, A5

  • font: Helvetica, TimesRoman, Courier

  • title, author (optional metadata)

pdf_images_to_pdf — Convert PNG/JPG images to a PDF, one per page.

  • imagePaths (string[], required), outputPath (required)

  • pageSize: A4, Letter, Legal, FitImage (default: A4)

  • margin (default: 0) — Padding around image

Manipulating

pdf_merge — Merge multiple PDFs.

  • filePaths (string[], min 2), outputPath

pdf_split — Split into individual pages or custom ranges.

  • filePath, outputDir

  • ranges (optional) — [{start, end}] (1-indexed, inclusive). Omit to split into individual pages.

pdf_rotate — Rotate pages 90/180/270 degrees clockwise.

  • filePath, outputPath, rotation ("90"/"180"/"270")

  • pages (optional) — Omit for all pages

pdf_delete_pages — Remove specific pages.

  • filePath, outputPath, pages (number[], required)

pdf_extract_pages — Extract specific pages into a new PDF.

  • filePath, outputPath, pages (number[], required)

pdf_reorder — Reorder or duplicate pages.

  • filePath, outputPath, pageOrder (number[]) — e.g. [3, 1, 2] or [1, 1, 2] to duplicate page 1

pdf_insert_pages — Insert pages from one PDF into another at a specific position.

  • targetPath, sourcePath, outputPath

  • insertAfter (number) — 0 = beginning, use target page count for end

  • sourcePages (number[], optional) — Which source pages to take. Omit for all.

pdf_reverse — Reverse page order.

  • filePath, outputPath

pdf_blank_pages — Insert blank pages after specified positions.

  • filePath, outputPath

  • afterPages (number[]) — e.g. [0, 3] inserts blanks at the beginning and after page 3

  • pageSize: MatchPrevious (default), A4, Letter, Legal

pdf_crop — Crop pages by setting a crop box (does not resize, hides content outside the box).

  • filePath, outputPath, x, y, width, height (all in points)

  • pages (optional)

pdf_overlay_pdf — Overlay a single page from one PDF on top of another. Uses a single overlay page applied to selected base pages — not a page-by-page multi-page overlay.

  • basePath (background), overlayPath (foreground), outputPath

  • overlayPage (default: 1) — Which overlay page to use

  • pages (optional) — Which base pages to apply it to

pdf_page_layout — Arrange multiple pages onto single sheets (N-up printing). Scales and positions source pages into a 2-up or 4-up grid.

  • filePath, outputPath

  • layout: "2-up" (2 pages side-by-side) or "4-up" (2×2 grid)

  • pageSize: A4, Letter, Legal (default: Letter)

Overlays

pdf_watermark — Diagonal text watermark, properly centered regardless of rotation angle.

  • filePath, outputPath, text (required)

  • opacity (0.15), fontSize (60), color (#888888), rotation (45 degrees)

  • pages (optional)

pdf_page_numbers — Add page numbers to every page.

  • filePath, outputPath

  • position: bottom-center (default), bottom-left, bottom-right, top-center, top-left, top-right

  • startNumber (1), prefix (""), suffix (""), fontSize (10), margin (30), color (#4d4d4d)

pdf_add_text — Add text at exact coordinates. Supports multi-line (\n) and bold fonts.

  • filePath, outputPath, text, page, x, y

  • fontSize (12), color (black), lineSpacing (1.4)

  • font: Helvetica, HelveticaBold, TimesRoman, TimesRomanBold, Courier, CourierBold

pdf_add_image — Add PNG/JPG at exact coordinates.

  • filePath, outputPath, imagePath, page, x, y

  • width, height (proportional scaling if only one given; original size if both omitted)

  • opacity (1)

pdf_header_footer — Headers and/or footers with dynamic placeholders.

  • filePath, outputPath

  • header, footer — Use {page} for current page, {pages} for total

  • fontSize (9), margin (30), align (center/left/right), color (#4d4d4d)

pdf_stamp — Styled business stamps with border and rotation.

  • filePath, outputPath

  • type: APPROVED, REJECTED, CONFIDENTIAL, DRAFT, FINAL, COPY, VOID, ORIGINAL, REVISED, FOR REVIEW, CUSTOM

  • customText (string, only for CUSTOM type)

  • position: top-right (default), top-left, bottom-right, bottom-left, center

  • pages (optional), opacity (0.75), rotation (-15)

pdf_sign — Add a signature image with smart positioning.

  • filePath, outputPath, imagePath

  • page (default: last page)

  • position: bottom-right (default), bottom-left, bottom-center

  • width (150, height scales proportionally), margin (50)

Annotating

pdf_redact — Draw opaque rectangles over regions.

  • filePath, outputPath

  • regions[{page, x, y, width, height}]

  • color (default: black)

WARNING: Visual-only redaction. This tool covers content with an opaque box but does NOT remove the underlying text or data from the PDF structure. The original content can still be extracted programmatically by anyone with a PDF parser. Do NOT use this for true sanitization of sensitive data (SSNs, passwords, PII, etc). For secure redaction that strips content from the PDF, use Adobe Acrobat Pro, qpdf, or mutool clean.

pdf_highlight — Translucent highlight boxes (like a highlighter pen).

  • filePath, outputPath

  • highlights[{page, x, y, width, height, color?}] (per-highlight color, default: yellow)

  • opacity (0.35)

pdf_draw — Draw shapes: rectangles, lines, and ellipses.

  • filePath, outputPath

  • shapes — array of shape objects:

    • rectangle: {type: "rectangle", page, x, y, width, height, color?, borderColor?, borderWidth?, filled?, opacity?}

    • line: {type: "line", page, x, y, width, height} where x/y = start point, width/height = end point coordinates

    • ellipse: {type: "ellipse", page, x, y, width, height, color?, filled?, opacity?}

Forms

pdf_form_read — List all form fields with names, types, current values, and dropdown/radio options.

  • filePath, password (optional)

pdf_form_fill — Fill form fields by name. Supports partial fills (unfilled fields remain editable).

  • filePath, outputPath

  • fields{"fieldName": "value"}. Checkboxes: "true"/"false". Dropdowns/radio: the option value.

  • flatten (default: false) — When true, all fields become non-editable (filled AND unfilled)

  • password (optional)

Metadata

pdf_set_metadata — Update document metadata. Only specified fields change; others are untouched.

  • filePath, outputPath

  • title, author, subject, creator, producer (all optional strings)

  • keywords (string[], optional)

Security

pdf_decrypt — Remove password protection (requires the correct password).

  • filePath, password, outputPath

Optimize

pdf_flatten — Flatten all form fields into static page content. Fields become non-editable. Useful for finalizing documents.

  • filePath, outputPath

pdf_compress — Reduce PDF file size by rebuilding document structure. Copies pages to a fresh PDF (dropping orphaned objects), optionally strips metadata and flattens forms. Results vary.

  • filePath, outputPath

  • stripMetadata (boolean, default: false) — Remove title, author, subject, keywords

  • flattenForms (boolean, default: false) — Flatten form fields

pdf_validate — Health check for a PDF file. Checks if it can be parsed, reports page count, metadata, form fields, page dimensions, and any structural issues.

  • filePath (string, required)

pdf_repair — Attempt to repair a damaged PDF by loading with lenient parsing, copying all recoverable pages to a clean document, and re-saving.

  • filePath (damaged PDF path), outputPath

Attachments

pdf_attach — Embed files as attachments inside a PDF. Attached files travel with the PDF and can be extracted by PDF readers. Supports any file type with auto-detected MIME types.

  • filePath, outputPath

  • attachments[{path, description?}] — Files to embed

  • Recognized types: PDF, TXT, CSV, JSON, XML, HTML, PNG, JPG, GIF, SVG, ZIP, DOC/DOCX, XLS/XLSX (others default to application/octet-stream)

Error Handling

All tools return structured error messages. Common scenarios:

Scenario

Error Message

File not found

Error: ENOENT: no such file or directory, open '/path/to/file.pdf'

Not a valid PDF

Error: Failed to read PDF: ... with parser details

Wrong password

Error: Incorrect password or the PDF is not encrypted.

Page out of range

Error: Page 5 out of range (1-3). or No valid pages. PDF has 3 page(s).

Unsupported image

Error: Unsupported image format: .webp. Use PNG or JPG.

Delete all pages

Error: Cannot delete all pages

No metadata given

Error: No metadata fields specified. Provide at least one of: title, author, ...

Invalid regex

Error: Invalid regex: ...

Damaged PDF

Error: PDF is too damaged to repair: ...

Tools never throw unhandled exceptions — all errors are caught and returned as MCP error responses with isError: true.

File Size & Performance

  • No hard file size limit — bounded only by available memory (Node.js heap)

  • PDFs up to ~100MB work reliably; larger files may need --max-old-space-size

  • pdf_merge with many large files is the most memory-intensive operation

  • pdf_read_text loads the entire PDF into memory for parsing

  • All operations are single-threaded (no worker pool)

Named Colors Reference

All color parameters (color, borderColor, highlight color, etc.) accept:

Format

Example

Hex (6-char)

#ff0000

Hex (3-char)

#f00

Named color

red

Complete named color list (28 colors):

Color

Hex

Color

Hex

black

#000000

white

#ffffff

red

#ff0000

green

#00ff00

blue

#0000ff

yellow

#ffff00

orange

#ff8800

purple

#800080

pink

#ff69b4

gray / grey

#808080

cyan / aqua

#00ffff

magenta

#ff00ff

brown

#8b4513

navy

#000080

teal

#008080

maroon

#800000

olive

#808000

lime

#00ff00

coral

#ff7f50

salmon

#fa8072

gold

#ffd700

silver

#c0c0c0

indigo

#4b0082

violet

#ee82ee

crimson

#dc143c

tomato

#ff6347

Coordinate System

  • Origin: bottom-left corner of each page

  • Units: points (1 inch = 72 points, 1 cm ~ 28.35 points)

  • Standard page sizes:

Size

Width

Height

Inches

A4

595

842

8.3" x 11.7"

Letter

612

792

8.5" x 11"

Legal

612

1008

8.5" x 14"

A3

842

1191

11.7" x 16.5"

A5

420

595

5.8" x 8.3"

Limitations

Feature

Limitation

Text extraction

Text-based PDFs only. No OCR for scanned images.

Encryption

Can decrypt (with password) but cannot encrypt/password-protect.

Image formats

PNG and JPG only. No WebP, SVG, TIFF, or GIF.

Fonts

Helvetica, Times Roman, Courier (standard PDF fonts with bold/italic). No custom font embedding.

Redaction

Visual only — covers content but does NOT strip data from the PDF. See warning above.

Overlay

Single overlay page applied to base pages. Not a page-by-page multi-page overlay.

Form filling

Supports partial fills. Flatten affects ALL fields (filled and unfilled).

Compression

Rebuilds document structure only — no image downsampling or stream compression.

Annotations

Drawn as page content (not PDF annotation objects). Cannot be toggled or removed by PDF viewers.

Search/Compare

Text-based comparison only. Cannot detect visual differences in images or layout.

Tech Stack

Disclaimer

This project is not affiliated with, endorsed by, or associated with Adobe Inc. "PDF" is an open standard (ISO 32000). This tool uses open-source libraries to work with PDF files.

License

MIT

Available Tools

37 tools
pdf_add_imageA

Add an image (PNG/JPG) at a position on a page. Aspect ratio is preserved when only width or height is given.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX from left edge (points)
yYesY from bottom edge (points)
pageYesPage number (1-indexed)
widthNoWidth in points (scales proportionally if height omitted)
heightNoHeight in points (scales proportionally if width omitted)
opacityNoOpacity 0-1 (default: 1)
filePathYesPDF file path
imagePathYesImage file (PNG or JPG)
outputPathYesOutput path

TDQS

A3.9/5.0
Behavior3/5

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

Discloses aspect ratio preservation, but lacks details on file overwrite behavior, image size limits, transparency support, or whether the image is embedded/linked. Annotations absent, so description carries full burden.

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?

Two sentences with no fluff. Front-loaded with action, efficient and clear.

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?

Covers main action and one key behavior, but misses behavioral context like file overwriting (outputPath implies new file but not explicit), stacking order, and image size constraints. Adequate but not comprehensive for a 9-param tool with no output schema.

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?

Adds meaning beyond schema by stating aspect ratio preservation and acceptable image formats (PNG/JPG). Schema coverage is 100%, so baseline is 3; description adds further clarity.

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?

Description clearly states verb ('Add'), resource ('image (PNG/JPG)'), and context ('at a position on a page'). It distinguishes from sibling tools like pdf_add_text or pdf_highlight.

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?

Usage is implied for adding an image, but no explicit guidance on when to use this tool vs. alternatives like pdf_stamp or pdf_watermark, and no conditions or exclusions.

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

pdf_add_textB

Add text at a specific position on a PDF page. Supports multi-line text (use \n). Coordinates are in points from bottom-left.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesX from left edge (points)
yYesY from bottom edge (points). For multi-line, this is the top line position.
fontNoFont (default: Helvetica)Helvetica
pageYesPage number (1-indexed)
textYesText to add. Use \n for multiple lines.
colorNoColor (default: black)#000000
filePathYesPDF file path
fontSizeNoFont size (default: 12)
outputPathYesOutput path
lineSpacingNoLine spacing multiplier for multi-line text (default: 1.4)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose side effects, destructive behavior, or permissions. For a PDF-modifying tool, lack of behavioral context is a significant gap.

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?

Single, well-structured sentence with front-loaded purpose followed by essential details. No redundancy.

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?

With 10 parameters and no output schema, the description is brief. It covers core functionality but omits error handling, return value, and edge cases. Adequate but not rich.

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 coverage is 100%, so each parameter is described. The description adds value by explaining coordinate origin (bottom-left) and newline usage, but overall adds little beyond the schema.

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 action (add text), resource (PDF page), and key specifics (position, multi-line support, coordinate origin). It effectively distinguishes from siblings like pdf_add_image or pdf_stamp.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., pdf_stamp, pdf_watermark). No exclusions or prerequisites mentioned, leaving the agent to infer context.

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

pdf_attachA

Embed one or more files as attachments inside a PDF. Attached files travel with the PDF and can be extracted by PDF readers. Useful for bundling source data, receipts, supporting documents, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPDF file to attach files to
outputPathYesOutput path
attachmentsYesFiles to attach

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that attachments are embedded and portable. However, it does not mention any size limits, permissions, or whether the original file is modified. For a tool with no annotations, this is adequate but not thorough.

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 very concise—two sentences that deliver the core purpose and a use case without wasted words.

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?

Given the tool has only 3 parameters and no output schema, the description is fairly complete. It explains the concept of attachments and their usefulness. Minor gaps include lack of mention of potential limits.

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 coverage is 100%, so parameters are already described. The tool description adds no extra meaning beyond what the schema provides, earning the baseline score of 3.

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 'Embed one or more files as attachments inside a PDF' with a specific verb and resource, and it distinguishes itself from sibling tools that perform other PDF operations.

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?

The description provides context on when to use the tool (e.g., 'bundling source data, receipts, supporting documents'), but does not explicitly state when not to use or list alternatives.

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

pdf_blank_pagesA

Insert blank pages into a PDF at specified positions. Useful for adding separator pages or ensuring chapters start on odd pages.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPDF file path
pageSizeNo"MatchPrevious" matches the size of the preceding page (default)MatchPrevious
afterPagesYesInsert a blank page after each of these page numbers (1-indexed). Use 0 to add at the beginning.
outputPathYesOutput path

TDQS

A3.8/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It states 'insert blank pages' but does not disclose that it creates a new file (outputPath), permissions needed, or what happens on edge cases (e.g., duplicate positions). This is insufficient for a mutation tool.

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?

Two sentences, zero waste. The first states the action, the second provides practical use cases. Appropriately sized for the tool's simplicity.

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?

Given 4 parameters, no output schema, and no annotations, the description covers core action and common uses. It lacks details on page size default behavior and error handling, but is reasonably complete for its purpose.

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 coverage is 100%, so the schema fully describes all parameters. The description adds no extra meaning beyond 'specified positions'. Baseline 3 is appropriate.

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 uses the specific verb 'Insert' and the resource 'blank pages', with examples like 'separator pages' and 'chapters starting on odd pages'. It clearly distinguishes from siblings like pdf_insert_pages (which inserts existing content) by specifying 'blank pages'.

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?

The description provides clear use cases (separator pages, odd-page starts) but does not explicitly contrast with alternatives like pdf_insert_pages or pdf_add_image for adding non-blank content. It implies usage context well.

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

pdf_compareA

Compare the text content of two PDFs page by page. Reports which pages are identical, which differ, and shows a summary of differences. Useful for verifying document versions.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePath1YesFirst PDF file path
filePath2YesSecond PDF file path

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are provided, so the description bears full responsibility. It discloses that the tool compares text content page by page, reports identical/different pages, and gives a summary. This is sufficient for understanding the tool's behavior, though it could mention that it does not modify files.

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?

The description is concise with three sentences, front-loading the main action. It efficiently conveys purpose, output, and use case without extraneous words.

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?

Given no output schema, the description adequately explains what the tool returns: identical/different pages and a summary. It is complete enough for a simple comparison tool, though it could specify the output format.

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 100%, so the parameters are already documented. The description does not add extra meaning beyond what the schema provides, meeting the baseline of 3.

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: comparing text content of two PDFs page by page. It distinguishes itself from sibling tools like pdf_merge or pdf_extract_pages by focusing on comparison and difference detection, which is unique among the siblings.

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?

The description explicitly mentions the use case 'useful for verifying document versions,' providing clear guidance on when to use this tool. However, it does not explicitly state when not to use it or mention alternatives.

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

pdf_compressA

Attempt to reduce PDF file size by rebuilding the document structure. Copies all pages to a fresh PDF (dropping orphaned objects), and optionally strips metadata. Results vary — works best on PDFs with accumulated edits or orphaned data.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPDF file path
outputPathYesOutput path
flattenFormsNoFlatten form fields to reduce size (default: false)
stripMetadataNoRemove title, author, subject, keywords (default: false)

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description discloses key behaviors: it rebuilds structure, drops orphaned objects, optionally strips metadata, and notes that results vary. It implies non-destructiveness by copying to a fresh PDF, though could be more explicit.

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 two sentences, front-loaded with purpose and mechanism, followed by limitations. Every word adds value, no redundancy.

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?

Given no output schema, the description covers input parameters, process, and limitations well. It could mention that output is saved to outputPath, but that is implicit from the parameter.

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 coverage is 100%, so baseline is 3. The description adds general context but does not significantly enhance understanding of individual parameters beyond what the schema already provides.

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 reduces PDF file size by rebuilding structure, copying pages, dropping orphaned objects, and optionally stripping metadata. It provides a specific mechanism and distinct approach compared to siblings like pdf_repair.

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?

The description says it works best on PDFs with accumulated edits or orphaned data, providing context for when to use it, but does not explicitly mention when not to use it or suggest alternative tools.

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

pdf_createA

Create a new PDF from text. Supports auto word-wrapping, pagination, bold/italic, configurable fonts, margins, page sizes. Lines starting with "# " render as bold headings.

ParametersJSON Schema
NameRequiredDescriptionDefault
fontNoFont family (default: Helvetica)Helvetica
titleNoDocument title (metadata)
authorNoDocument author (metadata)
marginNoPage margin in points (default: 50)
contentYesText content. Use \n for line breaks. Lines starting with "# " become bold headings. Text auto-wraps and paginates.
fontSizeNoFont size in points (default: 12)
pageSizeNoPage size (default: A4)A4
outputPathYesPath where the PDF will be saved
lineSpacingNoLine spacing multiplier (default: 1.4)

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes key behaviors: auto word-wrapping, pagination, bold/italic support, and configurable fonts/margins/page sizes. However, it does not mention whether an existing file at outputPath would be overwritten, which is a notable omission for a file creation tool. Overall, it adds good context beyond the schema.

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 a single sentence followed by one additional sentence about heading formatting. It is extremely concise, with no wasted words. The main purpose is front-loaded, and all additional information is relevant and compact.

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 has 9 parameters (2 required) and no output schema, the description adequately covers the main functionality. It explains what the tool does, its capabilities, and how to use the content parameter with heading syntax. The lack of output schema is acceptable as the tool creates a file on disk. The description is complete for a well-understood creation tool.

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 baseline is 3. The description adds value by explaining the '# ' syntax for bold headings and summarizing the layout features (auto word-wrapping, pagination) that relate to multiple parameters. This goes beyond the schema descriptions, providing a cohesive understanding of how parameters interact.

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 starts with 'Create a new PDF from text', which clearly states the tool's purpose using a specific verb and resource. It lists supported features (auto word-wrapping, pagination, bold/italic, configurable fonts, margins, page sizes) that distinguish it from sibling tools like pdf_add_text (which modifies existing PDFs). The description effectively differentiates this tool as the primary PDF creation tool.

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?

The description clearly indicates when to use this tool (to create a new PDF from text). It does not explicitly state when not to use it or mention alternative tools, but the context is clear: this is for creation, while siblings handle modifications. The lack of exclusions or alternative guidance prevents a perfect score.

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

pdf_cropA

Crop pages by setting the visible area (crop box). Trims margins or isolates a region. Coordinates are in points from bottom-left.

ParametersJSON Schema
NameRequiredDescriptionDefault
xYesLeft edge of crop area (points from left)
yYesBottom edge of crop area (points from bottom)
pagesNoPages to crop (1-indexed). Omit for all pages.
widthYesWidth of crop area in points
heightYesHeight of crop area in points
filePathYesPDF file path
outputPathYesOutput path

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It explains the coordinate system (points from bottom-left) but does not disclose side effects (e.g., whether cropped content is deleted or just hidden), error behavior, or permissions needed for a mutating 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?

The description is two sentences, front-loaded with the core action, and contains no fluff. Every sentence adds value.

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?

No output schema exists, and the description is brief. It lacks information on return values, error handling, and examples. For a tool with 7 parameters, the description could be more complete, but the core functionality is conveyed.

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 100%, and the description adds the clarification that coordinates are in points from bottom-left. However, this largely reinforces the schema descriptions. No additional semantics beyond what the schema already provides.

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 verb 'crop', the resource 'pages', and specifies the action as setting the visible area (crop box). It distinguishes from sibling tools like pdf_add_image or pdf_add_text by focusing on cropping.

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?

The description implies usage for trimming margins or isolating regions but does not explicitly state when to use this tool versus others like pdf_rotate or pdf_extract_pages. No exclusions or alternatives are mentioned.

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

pdf_decryptA

Remove password protection from an encrypted PDF. Requires the correct password. Saves an unencrypted copy that can be opened without a password.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the encrypted PDF file
passwordYesPassword to unlock the PDF
outputPathYesPath where the decrypted (unprotected) PDF will be saved

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses that decryption needs password and saves an unencrypted copy (implies non-destructive to original). It does not mention error behavior for wrong password or permission requirements, but core behavior is transparent.

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?

Two sentences, no wasted words. The first sentence front-loads the core purpose. Every sentence earns its place.

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?

With 3 parameters and no output schema, the description is sufficient for a simple decryption tool. It covers what it does, prerequisites, and output. Minor gap: no mention of return value or error handling, but overall complete for the complexity.

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 coverage is 100% with clear parameter descriptions. The description adds marginal value beyond the schema (e.g., confirming 'saves an unencrypted copy' aligns with outputPath). Baseline 3 is appropriate as description does not significantly enrich parameter meaning.

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 removes password protection from an encrypted PDF, using specific verb 'remove' and resource 'password protection' + 'encrypted PDF'. It is distinct from sibling tools like pdf_compress or pdf_merge, which have different purposes.

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?

The description explicitly states the prerequisite 'Requires the correct password' and the outcome 'saves an unencrypted copy'. However, it does not mention when to use alternatives (e.g., pdf_validate for checking encryption) or when not to use this tool.

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

pdf_delete_pagesC

Remove specific pages from a PDF.

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesYesPage numbers to delete (1-indexed)
filePathYesPDF file path
outputPathYesOutput path

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It does not mention whether the original file is preserved, the nature of output (replaces original or creates new file), error handling, or required permissions.

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?

The description is a single clear sentence with no extraneous words. However, it is almost too brief and could benefit from additional context without becoming verbose.

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

Completeness2/5

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

Given no output schema and no annotations, the description is insufficient. It lacks details on return values, side effects, and error conditions. For a tool with many siblings, more completeness is needed to aid correct selection.

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 100%, so baseline is 3. The description adds no additional meaning beyond the schema; it does not clarify output path behavior or page indexing beyond what is already in 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 clearly states the action ('remove specific pages') and the resource ('from a PDF'). It is distinct from siblings like 'pdf_extract_pages' but does not explicitly differentiate.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as 'pdf_extract_pages' or 'pdf_insert_pages'. The description does not specify prerequisites or exclusion criteria.

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

pdf_drawA

Draw shapes on PDF pages: rectangles (filled or outlined), lines, and circles/ellipses. Useful for annotations, diagrams, or marking up documents.

ParametersJSON Schema
NameRequiredDescriptionDefault
shapesYesShapes to draw
filePathYesPDF file path
outputPathYesOutput path

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only says 'Draw shapes', but fails to mention that the tool creates a new PDF (due to outputPath), whether the original file is modified, or any side effects. The behavioral impact (mutating vs. creating a new file) is not transparent.

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 extremely concise: two sentences totaling about 20 words. The first sentence front-loads the primary action and supported shapes, and the second adds a use-case context. No unnecessary words or repetition, making it efficient for an agent to parse.

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?

Given the complexity of 3 required parameters and a nested shapes array with many optional fields, the description is minimal. The schema covers parameter details well, but the description omits output behavior (creates a new PDF) and does not clarify coordinate system or default drawing behavior. Without an output schema, more context on the result would be helpful.

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 100%, with each parameter having a description in the schema itself. The tool description adds minimal extra meaning beyond the schema (e.g., clarifying 'circles/ellipses' matches the ellipse type). According to guidelines, with high coverage, baseline is 3, and the description does not significantly enhance parameter understanding.

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 'Draw shapes on PDF pages' and lists specific shape types (rectangles, lines, circles/ellipses), which differentiates it from sibling tools like pdf_add_image, pdf_add_text, and pdf_highlight. The verb 'draw' plus resource 'PDF pages' makes the purpose unambiguous.

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?

The description includes 'Useful for annotations, diagrams, or marking up documents', which gives a general context, but it does not explicitly state when to use this tool versus alternatives (e.g., when to use pdf_add_image instead). No exclusion criteria or prerequisites are mentioned, so guidance is only implied.

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

pdf_extract_pagesC

Extract specific pages into a new PDF.

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesYesPage numbers to extract (1-indexed)
filePathYesSource PDF path
outputPathYesOutput path

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It does not disclose whether the original file is modified, any error conditions, or behavioral traits beyond the basic action.

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?

The description is very concise with one sentence. It is front-loaded and direct, but could be slightly more informative without losing conciseness.

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?

For a simple extraction tool, the description is adequate but lacks details about return values or common use cases. Given the absence of an output schema and the minimal description, more context would improve completeness.

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?

The schema covers all parameters with descriptions (100% coverage). The description adds no extra meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

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 clearly states the verb (Extract) and resource (pages into a new PDF). However, it does not differentiate from similar tools like pdf_split or pdf_delete_pages, which could also extract pages.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The sibling list includes many overlapping tools (e.g., pdf_split, pdf_delete_pages), and the description gives no context for selection.

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

pdf_flattenA

Flatten a PDF — converts all form fields and annotations into static page content. Fields become non-editable. Useful for finalizing documents before distribution.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPDF file path
outputPathYesOutput path

TDQS

A4/5.0
Behavior4/5

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

The description discloses that fields become non-editable and annotations are converted to static content. This provides clear behavioral insight beyond what annotations (none provided) would convey. However, it could mention if original file is modified or other side effects.

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?

Two sentences with no wasted words. The first sentence defines action and effect, the second adds usage context. Ideal length and structure.

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 straightforward tool with no output schema and a rich set of sibling tools, the description provides sufficient context. It explains what the tool does, its effect, and when to use it. Minor improvement: clarify that outputPath must differ from input to avoid overwrite.

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?

The input schema already describes both parameters with 100% coverage ('PDF file path' and 'Output path'). The description adds no additional parameter details, so the baseline score of 3 applies.

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: flatten a PDF by converting form fields and annotations into static content. This distinguishes it from siblings like pdf_form_fill and pdf_merge.

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?

The description says 'Useful for finalizing documents before distribution,' which implies usage context but does not explicitly compare with alternative tools or state when not to use it.

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

pdf_form_fillA

Fill form fields in a PDF by name. Supports text fields, checkboxes ("true"/"false"), dropdowns, option lists, and radio groups. Use pdf_form_read first to discover field names and types. Optionally flatten the form to make it non-editable.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsYesObject mapping field names to values. For checkboxes: "true" or "false". For dropdowns/radio: the option value string.
flattenNoIf true, flattens the form making fields non-editable (default: false)
filePathYesPath to the PDF file with form fields
passwordNoPassword if the PDF is encrypted
outputPathYesPath where the filled PDF will be saved

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses supported field types and flatten behavior but omits error handling, permissions, or side effects of filling (e.g., overwriting existing values). Decent but incomplete.

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 concise sentences, front-loaded with purpose. Every sentence adds essential information without redundancy.

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?

Covers main workflow: fill fields, use pdf_form_read for discovery, optionally flatten. Does not explicitly describe output or success/failure, but output path parameter implies result. Adequate for the complexity.

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 100% with parameter descriptions. The tool description adds value by explaining field discovery via pdf_form_read and specifying value formats for checkboxes and dropdowns, enhancing clarity beyond the schema.

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?

Description clearly states the tool fills form fields in PDFs, specifying supported field types (text, checkboxes, dropdowns, etc.) and references sibling tool pdf_form_read for discovery, distinguishing it from other PDF tools.

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?

Explicitly advises using pdf_form_read first to discover field names and types, and mentions optional flatten. Does not explicitly exclude non-form PDFs but context implies it's for form filling only.

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

pdf_form_readA

Read all form fields from a PDF. Returns each field's name, type (Text, CheckBox, Dropdown, OptionList, RadioGroup), current value, and available options. Use this before pdf_form_fill to discover field names.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the PDF file with form fields
passwordNoPassword if the PDF is encrypted

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries burden. Describes read operation and return structure but lacks details on error handling or behavior for encrypted files or missing forms.

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?

Two sentences, no wasted words. Front-loaded with action and output details.

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?

Adequately covers purpose, return data, and usage sequence. Could address edge cases but complete for a simple read 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 coverage is 100%, schema already describes parameters. Description adds no additional parameter meaning beyond schema.

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?

Clearly states 'Read all form fields from a PDF' with specific verb and resource. Lists return data (field name, type, value, options), differentiating from sibling pdf_form_fill.

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?

Explicitly says 'Use this before pdf_form_fill to discover field names', providing clear context and sequence. Could mention when not to use (e.g., no form fields), but sufficient.

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

pdf_highlightA

Add translucent highlight boxes over regions on PDF pages — like using a highlighter pen. Great for marking important sections.

ParametersJSON Schema
NameRequiredDescriptionDefault
opacityNoHighlight opacity (default: 0.35)
filePathYesPDF file path
highlightsYesRegions to highlight
outputPathYesOutput path

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It mentions 'translucent' and the analogy to a highlighter pen, but does not explain whether the tool modifies the original file or creates a new one, nor any other side effects or permissions needed.

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?

The description is very concise (two sentences) and front-loads the core functionality. It is efficient, though could include more structured detail about output.

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

Completeness2/5

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

The description does not mention the output (e.g., a new PDF with highlights) despite no output schema. It also lacks context about required parameters like outputPath and what the tool produces. For a modification tool, this is a significant gap.

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?

The input schema covers all parameters with descriptions, so the description adds little beyond the analogy to a highlighter pen. The schema already explains opacity, color, coordinates, etc., making additional description redundant.

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 uses a specific verb ('add') and resource ('translucent highlight boxes over regions on PDF pages') and distinguishes from sibling tools like pdf_add_text or pdf_draw by explicitly comparing to a highlighter pen. It clearly states the tool's function.

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?

The description says 'Great for marking important sections,' which implies when to use. However, it does not explicitly mention when not to use or provide alternatives, though the sibling list implies the tool is for highlighting only.

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

pdf_images_to_pdfA

Convert one or more images (PNG/JPG) into a PDF. Each image becomes a page, scaled to fit while maintaining aspect ratio.

ParametersJSON Schema
NameRequiredDescriptionDefault
marginNoMargin around image in points (default: 0)
pageSizeNo"FitImage" sizes each page to match the image (default: A4)A4
imagePathsYesArray of image file paths (PNG or JPG)
outputPathYesPath where the PDF will be saved

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavioral traits. It states images are scaled and become pages, but does not disclose whether existing output files are overwritten, if there are limits on image dimensions, or error handling for unsupported formats. Basic behavior is clear but lacks depth.

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?

A single, well-structured sentence that conveys purpose and key behavior without verbosity. Every word contributes value, making it easy to parse quickly.

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?

Given the tool's simplicity (4 parameters, no output schema, no annotations), the description covers the core functionality but misses details: image order (array order), overwrite behavior, and potential size/format limits. Adequate but not fully comprehensive.

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 coverage is 100% with each parameter described. The description adds global context ('scaled to fit') but no additional parameter-level details. The margin and pageSize parameters already have clear descriptions in the schema, so the description does not significantly enhance understanding beyond the schema.

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 verb 'Convert' and the resource 'images into a PDF', specifying supported formats (PNG/JPG) and behavior (each image becomes a page, scaled to fit, aspect ratio maintained). This distinguishes it from sibling tools like pdf_create (blank PDF) and pdf_add_image (add to existing PDF).

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives. With siblings like pdf_add_image, pdf_merge, pdf_create, the description omits any criteria for choosing this tool, such as 'Use when you have multiple images to convert as separate pages'.

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

pdf_infoA

Get detailed information about a PDF: page count, file size, metadata (title, author, dates), form field count, and page dimensions in points and inches.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesAbsolute or relative path to the PDF file
passwordNoPassword if the PDF is encrypted

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It correctly implies a read-only, non-destructive operation ('Get detailed information') but does not explicitly state that the PDF is not modified. This is acceptable for a simple info tool, hence a 4.

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 a single sentence that front-loads the action and lists key output items concisely. Every part of the sentence adds value without waste.

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 no output schema, the description appropriately enumerates return fields (page count, file size, metadata, form field count, page dimensions). It covers the essential behavioral context for a read-only info tool with two parameters.

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?

Input schema coverage is 100% with adequate descriptions for both parameters (filePath, password). The tool description adds no additional semantic value beyond what the schema already provides, justifying a baseline score of 3.

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 'Get detailed information about a PDF' and enumerates specific output fields like page count, file size, metadata, form field count, and page dimensions. This distinguishes it from sibling tools that modify or create PDFs.

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?

The description implicitly indicates usage for reading PDF info but provides no explicit guidance on when to use this tool vs. alternatives (e.g., pdf_form_read for forms only) or when not to use it. No exclusions or prerequisites are mentioned.

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

pdf_insert_pagesB

Insert pages from one PDF into another at a specific position. Useful for adding cover pages, appendices, or inserting content mid-document.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputPathYesOutput path
sourcePathYesPDF to take pages from
targetPathYesPDF to insert pages into
insertAfterYesInsert after this page number (0 = insert at beginning, use page count for end)
sourcePagesNoWhich pages to take from source (1-indexed). Omit for all source pages.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided; description carries full burden. Does not disclose if originals are modified, required permissions, or error behavior. The outputPath parameter implies a new file is created, but this is not explicitly stated.

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?

Two sentences: first defines action, second provides usage examples. No fluff, well-structured, and front-loaded.

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

Completeness2/5

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

Given 5 parameters and no output schema or annotations, the description is too brief. Missing details on optional parameters (sourcePages) and return value. Schema descriptions help but the description should offer more context.

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 100%, so baseline is 3. Description adds no additional semantic detail beyond the schema; it only lists use cases without explaining parameters further.

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?

Description clearly states verb (insert), resource (pages from one PDF into another), and position. Provides use cases like cover pages and appendices. Does not explicitly distinguish from siblings like pdf_merge or pdf_extract_pages, but the positional aspect is implied.

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?

Description offers clear context with examples of when to use (cover pages, appendices, mid-document insertion). Does not specify when not to use or mention alternative tools like pdf_merge for simple appending.

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

pdf_mergeB

Merge multiple PDF files into a single PDF. Pages are combined in the order listed.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathsYesPDF file paths to merge in desired order (min 2)
outputPathYesOutput path for the merged PDF

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description must disclose behavioral traits. It only states basic functionality without mentioning file size limits, permissions needed, or output behavior. No contradictions with annotations since none exist.

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 two short, front-loaded sentences with no superfluous content. Every word adds value.

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?

Given the tool's simplicity and lack of output schema, the description covers the core purpose but misses details about error handling, file availability, or output overwrite behavior. It is adequate but not fully complete.

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 100%, and the description reiterates the schema's mention of 'desired order' and 'min 2' for filePaths. No additional parameter meaning is added beyond the schema.

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 verb 'Merge' and resource 'multiple PDF files into a single PDF', and distinguishes from sibling tools like pdf_add_image or pdf_compress. The additional note about page order confirms the operation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., pdf_insert_pages for selective insertion or pdf_reorder). The description does not mention limitations or prerequisites.

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

pdf_overlay_pdfB

Overlay one PDF on top of another. The overlay PDF is drawn on top of the base PDF pages. Perfect for adding letterheads, templates, or watermark PDFs.

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesNoWhich base pages to apply the overlay to (1-indexed). Omit for all pages.
basePathYesBase PDF (background)
outputPathYesOutput path
overlayPageNoWhich page of the overlay PDF to use (1-indexed, default: 1)
overlayPathYesOverlay PDF (drawn on top)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It only states the overlay action but omits whether the operation is non-destructive, what happens with mismatched page counts, or any prerequisite permissions. This is insufficient for a file modification tool.

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?

Two concise sentences that immediately convey the core functionality and typical use cases. No redundant phrases or unnecessary details.

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

Completeness2/5

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

The description lacks information about return values (output schema is absent) and does not explain side effects like whether the original files are modified. For a tool creating a new file, it should clarify that the result is written to outputPath.

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?

The input schema provides 100% coverage for all 5 parameters, so the description adds no new semantic value beyond what the schema already conveys. Baseline score of 3 is appropriate.

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 action ('Overlay one PDF on top of another') and the specific use cases ('adding letterheads, templates, or watermark PDFs'), making the purpose unambiguous and distinct from generic PDF tools.

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?

The description implies usage through examples but does not explicitly differentiate from sibling tools like pdf_watermark or provide guidance on when not to use this tool. Context signals show 36+ sibling tools, making this a gap.

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

pdf_page_layoutA

Arrange multiple PDF pages onto single sheets in N-up layouts. Puts 2 or 4 source pages onto each output page side-by-side. Useful for printing handouts, saving paper, or creating thumbnail sheets.

ParametersJSON Schema
NameRequiredDescriptionDefault
layoutYes"2-up" = 2 pages per sheet side-by-side, "4-up" = 4 pages per sheet in a 2x2 grid
filePathYesSource PDF file path
pageSizeNoOutput page size (default: Letter)Letter
outputPathYesOutput path

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions the layout options (2-up, 4-up) but fails to disclose important behaviors like handling of odd page counts, page ordering, or whether the original file is modified. The description is minimal beyond the basic 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?

The description is two sentences, front-loaded with the core purpose. Every word is meaningful with no fluff. The structure makes it quick to parse.

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?

Given the low complexity of the tool (simple N-up layout) and full schema coverage, the description provides adequate context. It could mention that the output is a new file (implied by outputPath) but overall is sufficient for an agent to understand invocation.

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 100%, so the schema already documents all parameters. The description adds some context (e.g., 'side-by-side', '2x2 grid') that reinforces the schema's enums, but does not provide additional semantic value beyond what the schema already offers.

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: arranging multiple PDF pages onto single sheets in N-up layouts (2-up or 4-up). It specifies the verb 'arrange', the resource 'PDF pages onto single sheets', and differentiates from sibling tools like pdf_merge or pdf_split by focusing on page layout rather than merging/splitting.

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?

The description provides context for use: 'useful for printing handouts, saving paper, or creating thumbnail sheets.' It implies a scenario for N-up layouts but does not explicitly state when not to use or name alternatives. The sibling list offers other PDF tools, but no direct contrast is given.

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

pdf_page_numbersB

Add page numbers to every page. Supports various positions, custom prefix/suffix, and starting number.

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoColor (default: dark gray)#4d4d4d
marginNoEdge distance in points (default: 30)
prefixNoPrefix text (e.g. "Page ")
suffixNoSuffix text (e.g. " of 50")
filePathYesPDF file path
fontSizeNoFont size (default: 10)
positionNoPosition (default: bottom-center)bottom-center
outputPathYesOutput path
startNumberNoStarting number (default: 1)

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavior. It states it adds page numbers to every page and supports customization, but it does not clarify whether the original file is modified or a new file is created (outputPath implies new), or how it interacts with existing page numbers.

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?

The description is a single concise sentence that front-loads the primary action. It is efficient with no wasted words, though it could be slightly restructured for clarity.

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?

Given the tool has 9 parameters (2 required) and no output schema, the description is brief. It does not explain return values or typical usage context. While sufficient for a simple tool, it could be more complete.

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 100%, so the schema already documents all parameters. The description adds a brief summary of customizable aspects (positions, prefix/suffix, starting number) but no additional meaning beyond the schema.

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: 'Add page numbers to every page'. It mentions key features like positions, prefix/suffix, and starting number, which distinguishes it from sibling tools like pdf_header_footer or pdf_stamp.

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

Usage Guidelines2/5

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

The description does not provide any guidance on when to use this tool vs. alternatives (e.g., pdf_header_footer, pdf_stamp). No mention of prerequisites, file types, or when not to use it.

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

pdf_read_textA

Extract text content from a PDF file. Can extract from all pages or specific pages. Works with text-based PDFs (not scanned images).

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesNoSpecific page numbers to extract (1-indexed). If omitted, extracts all pages.
filePathYesAbsolute or relative path to the PDF file

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses that only text-based PDFs are supported (not scanned images) and that extraction can be from all or specific pages. This is good behavioral context for a read-only operation, though it doesn't mention return format or error handling.

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 extremely concise at two sentences with zero wasted words. The main purpose is stated first, and limitations are immediately provided. Every sentence earns its place.

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?

Given the tool has no output schema and only two parameters, the description covers the core functionality well. However, it does not mention what the output looks like (e.g., plain text string, object with page numbers), which would be useful for an agent to know what to expect.

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% (both parameters described). The description adds value by clarifying that pages are 1-indexed and that omitting the pages parameter extracts all pages. This goes beyond the schema's basic descriptions.

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 uses a specific verb 'Extract text content' and clearly identifies the resource 'PDF file'. It distinguishes itself from sibling tools by specifying it handles text-based PDFs (not scanned), which is unique among the many PDF tools listed.

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?

The description implies usage for text extraction but does not explicitly state when to use this tool versus alternatives like pdf_search (which likely searches for text) or pdf_form_read. No guidance on when not to use it or prerequisites is provided.

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

pdf_redactA

VISUAL-ONLY redaction: draws opaque rectangles over regions on PDF pages. WARNING: This does NOT remove the underlying text/data from the PDF — it only covers it visually. The original content can still be extracted programmatically. Do NOT use this for true document sanitization of sensitive data (SSNs, passwords, etc). For true redaction, use a tool that rewrites the PDF content stream (e.g. Adobe Acrobat Pro, qpdf, or mutool).

ParametersJSON Schema
NameRequiredDescriptionDefault
colorNoRedaction color (default: black)black
regionsYesRegions to redact
filePathYesPDF file path
outputPathYesOutput path

TDQS

A4.7/5.0
Behavior5/5

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

No annotations provided, but the description fully discloses the visual-only nature and that original content remains extractable. It provides a clear warning about the tool's limitations.

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 a single well-structured paragraph. It front-loads the key point ('VISUAL-ONLY redaction') and concisely explains the limitation and alternative tools without extraneous information.

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?

For a simple tool with 4 mandatory parameters, no output schema, and no nested objects, the description is complete. It explains the tool's behavior, limitations, and appropriate use cases adequately.

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 coverage is 100%, so baseline is 3. The description does not add significant parameter-specific guidance beyond the schema descriptions. It mentions 'opaque rectangles' but does not elaborate on coordinate system or units.

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 starts with 'VISUAL-ONLY redaction: draws opaque rectangles over regions on PDF pages,' which is a specific verb+resource. It clearly distinguishes this tool from true redaction tools that modify the content stream.

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?

Explicitly warns against using for true sanitization and provides alternatives like Adobe Acrobat Pro, qpdf, or mutool. Clearly states when to use (visual redaction) and when not to (sensitive data removal).

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

pdf_reorderB

Reorder pages. Can also duplicate pages by repeating numbers in the order array.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPDF file path
pageOrderYesNew page order (1-indexed). Example: [3, 1, 2] puts page 3 first.
outputPathYesOutput path

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It mentions the ability to duplicate pages by repeating numbers, which adds useful behavioral context. However, it does not disclose side effects (e.g., that the original file is not modified, a new output is created) or any requirements like file permissions.

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?

Two concise sentences with no extraneous information. The purpose is front-loaded and every word earns its place.

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 description covers the primary action and a key feature (duplication) but lacks details about the output format, whether pages are 0-indexed (though schema says 1-indexed), and does not mention error conditions or edge cases. Given the simplicity of the tool, it is minimally adequate.

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?

All three parameters are described in the schema with 100% coverage, so the baseline is 3. The description adds no additional parameter meaning beyond what the schema already provides, such as format details or constraints.

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 clearly states the tool reorders pages and also notes it can duplicate pages by repeating numbers. This is a specific verb-resource pair that distinguishes it from sibling tools like pdf_extract_pages or pdf_delete_pages, though it does not explicitly contrast with them.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool over alternatives, such as when to reorder vs. extract or delete pages. No context is given about prerequisites, file size limits, or typical use cases.

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

pdf_repairA

Attempt to repair a damaged or malformed PDF by loading it with lenient parsing, copying all recoverable pages to a clean document, and re-saving. May fix issues like corrupted cross-reference tables or orphaned objects.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPath to the damaged PDF
outputPathYesPath for the repaired PDF

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It explains the repair process (lenient parsing, copying recoverable pages, re-saving) and gives examples of fixed issues (corrupted cross-reference tables, orphaned objects). This provides good insight into behavior.

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?

The description is a single sentence that front-loads the purpose. It is efficient with no wasted words, though it could be broken into two sentences for slightly better readability.

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

Completeness2/5

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

The description lacks information about what the tool returns (e.g., success indicator, new file path) and does not mention error cases. Since there is no output schema, the description should cover these gaps.

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?

The input schema already describes both parameters (filePath, outputPath) with clear text. The description adds little beyond restating those paths. Baseline 3 is appropriate given 100% schema coverage.

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: repairing damaged PDFs. The verb 'repair' and resource 'PDF' are specific, and it distinguishes from siblings (e.g., pdf_validate, pdf_create) by focusing on malformed files.

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?

The description implies use when a PDF is damaged or malformed, but it does not explicitly state when to use this tool versus alternatives like pdf_validate or when it is not appropriate. No exclusions or alternative tool names are mentioned.

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

pdf_reverseA

Reverse the page order of a PDF. Useful for fixing scan order or printing back-to-front.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPDF file path
outputPathYesOutput path

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose whether the tool modifies the original file, if it requires any special permissions, or what errors may occur. It also fails to clarify if the output file overwrites an existing path.

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 two sentences, front-loaded with the core purpose, and contains no filler. Every part contributes meaning.

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?

For a simple tool with two parameters and no output schema, the description covers the basic purpose and usage scenarios. However, it lacks details on behavior (e.g., whether it preserves metadata, how it handles large files) and there are no annotations to supplement.

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 coverage is 100% but the descriptions ('PDF file path' and 'Output path') are minimal. The tool description adds no additional semantic detail beyond what the schema already provides.

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 'Reverse the page order of a PDF,' which is a specific verb+resource. It distinguishes itself from sibling tools like pdf_reorder (which allows custom ordering) by focusing on complete reversal.

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?

The description provides practical use cases ('fixing scan order or printing back-to-front'), giving clear context for when to use. However, it does not explicitly mention alternatives (e.g., pdf_reorder for custom ordering) or when not to use this tool.

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

pdf_rotateA

Rotate pages by 90, 180, or 270 degrees clockwise.

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesNoPages to rotate (1-indexed). Omit for all pages.
filePathYesPDF file path
rotationYesClockwise rotation degrees
outputPathYesOutput path

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It does not disclose that the tool reads from filePath and writes to outputPath, whether it modifies the original PDF, or behavior on invalid inputs. The description is minimal and lacks behavioral context.

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 a single sentence of seven words, perfectly front-loaded with the core action. Every word is necessary and earned. No wasted space.

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?

Given the tool has 4 parameters and no output schema, but the schema itself is detailed, the description provides a sufficient overview. It covers the essential purpose. However, it could mention that it creates a new PDF at outputPath. Still, for a simple rotation operation, it is reasonably complete.

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 100% with all parameters documented. The description adds no additional meaning beyond the schema; it merely restates the rotation aspect. Baseline is 3 as per rubric for high coverage.

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 states the specific verb 'rotate' and resource 'pages' at 90, 180, or 270 degrees clockwise. It clearly distinguishes from sibling PDF tools which perform other operations like adding images or extracting 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?

The description provides no explicit guidance on when to use this tool versus alternatives. It simply states the operation, leaving usage context implied by the tool name and sibling list. No exclusion criteria or alternative suggestions are given.

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

pdf_set_metadataA

Set or update PDF document metadata fields: title, author, subject, keywords, creator, and producer. Only specified fields are changed; others remain untouched.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoDocument title
authorNoDocument author
creatorNoCreator application name
subjectNoDocument subject/description
filePathYesPath to the PDF file
keywordsNoDocument keywords as an array of strings
producerNoProducer application name
outputPathYesPath where the modified PDF will be saved

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses that only specified fields are changed and others remain untouched. However, it does not explain whether the original file is modified (outputPath suggests a new file is created), nor does it mention permissions, error conditions, or side effects.

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?

Two sentences: the first states the action and lists fields concisely, and the second clarifies the partial update behavior. No wasted words; front-loaded with the core purpose.

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 tool with 8 parameters and no output schema or annotations, the description covers the essential purpose and behavioral nuance (partial update). It is mostly complete, though it could explicitly state that a new file is created at outputPath and that the original remains unchanged.

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 coverage is 100%, so baseline is 3. The description lists the metadata fields (title, author, etc.), which matches the schema but adds no new semantic information. The partial update behavior is more relevant to behavioral transparency than parameter semantics.

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 uses a specific verb 'Set or update' and clearly identifies the resource 'PDF document metadata fields', listing the fields involved. It distinguishes itself from sibling tools like pdf_info (which reads metadata) by its action of updating metadata.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as pdf_info (which likely reads metadata) or other PDF modification tools. The description omits any context about prerequisites, typical use cases, or when not to use it.

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

pdf_signA

Add a signature image to a PDF with smart positioning. Simplified alternative to pdf_add_image for signing documents.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage to sign (1-indexed). Default: last page.
widthNoSignature width in points (default: 150). Height scales proportionally.
marginNoDistance from page edge (default: 50)
filePathYesPDF file path
positionNoSignature position (default: bottom-right)bottom-right
imagePathYesPath to signature image (PNG or JPG)
outputPathYesOutput path

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'smart positioning' but does not explain what that entails, nor does it disclose side effects, permissions, or error behavior. This is insufficient for a tool that modifies a PDF file.

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?

The description is concise with two sentences, no wasted words. It front-loads the purpose. However, for a 7-parameter tool, it could be slightly more informative while remaining concise.

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

Completeness2/5

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

Given 7 parameters, no output schema, and no annotations, the description is incomplete. It does not describe the return value, error conditions, or how smart positioning works. This leaves significant gaps for an agent trying to invoke the tool correctly.

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 100%, so the baseline is 3. The description does not add additional meaning beyond the schema for parameters like 'position', 'margin', etc. It only gives a high-level 'smart positioning' hint without elaborating on individual parameters.

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 action ('Add a signature image') and the target resource ('PDF'), and distinguishes itself from the sibling 'pdf_add_image' by calling itself a 'simplified alternative for signing documents'. This meets the criteria for specific verb+resource and sibling differentiation.

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?

The description positions 'pdf_sign' as a simplified alternative to 'pdf_add_image' for signing, giving context on when to use it. However, it does not explicitly state when not to use it or provide exclusions, which would earn a 5.

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

pdf_splitA

Split a PDF into multiple files — either individual pages or custom page ranges.

ParametersJSON Schema
NameRequiredDescriptionDefault
rangesNoPage ranges. If omitted, splits into individual pages.
filePathYesPDF file to split
outputDirYesDirectory for output files

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It states the basic operation but lacks details on behavior such as file naming, whether the original is modified, error handling, or performance limits. It's adequate but not thorough.

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 a single, efficient sentence that front-loads the action. Every word serves a purpose, with no redundancy or filler.

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?

For a simple tool with three parameters and no output schema, the description covers the essential functionality. However, it omits practical details like output file naming conventions, handling of overlapping ranges, and out-of-range pages, which could affect correct usage.

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 coverage is 100%, so the schema already documents all three parameters. The description adds clarity on the 'ranges' parameter by noting that omission splits into individual pages. Overall, it adds some value but does not exceed the baseline for a well-covered schema.

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 action 'Split a PDF into multiple files' and specifies the two modes: individual pages or custom page ranges. It differentiates from siblings like pdf_extract_pages and pdf_delete_pages by producing multiple output files.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, limitations, or cases where other tools like pdf_extract_pages might be more appropriate. The agent is left without decision-making support.

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

pdf_stampA

Apply a styled business stamp (like a rubber stamp) to PDF pages. Pre-configured styles for common stamps, or create custom ones. Draws a bordered rectangle with text inside, slightly rotated for authenticity.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesStamp type. Use CUSTOM with customText for your own stamp.
pagesNoPages to stamp (1-indexed). Omit for all.
opacityNoOpacity (default: 0.75)
filePathYesPDF file path
positionNoStamp position (default: top-right)top-right
rotationNoRotation in degrees for rubber-stamp look (default: -15)
customTextNoCustom stamp text (only used when type is CUSTOM)
outputPathYesOutput path

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of disclosure. It mentions rotation for authenticity but does not disclose whether the operation is destructive, if it overwrites existing content, or any permissions needed. The output behavior beyond applying the stamp is not described.

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 two sentences, front-loaded with the verb and resource, and contains no redundant information. Every sentence adds value.

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?

Given 8 parameters and no output schema, the description covers main behavior and styling. However, it omits details on default page behavior (all pages) and how customText interacts with CUSTOM type, which are partially covered by the schema.

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 coverage is 100%, so baseline is 3. The description adds context about the stamp's visual style (bordered rectangle, rotation) which aids understanding of parameters like rotation and position, but does not add per-parameter details beyond what the schema already provides.

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 applies a styled business stamp to PDF pages, specifying it uses pre-configured styles or custom ones, and describes the visual effect (bordered rectangle with text, slightly rotated). This distinguishes it from siblings like pdf_add_image or pdf_add_text.

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?

The description implies use for stamping vs. other annotations via mention of pre-configured styles, but does not explicitly state when to use this tool over alternatives like pdf_watermark or pdf_sign, nor provide criteria for choosing between stamp types.

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

pdf_validateA

Validate a PDF file — checks if it can be parsed, reports page count, metadata, form fields, and any structural issues. Useful as a health check before processing.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesPDF file path

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description must cover behavioral traits. It lists what is checked but does not explicitly state it is read-only, nor describe permissions needed or output format. Lacks some disclosure for full transparency.

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?

Two sentences with no unnecessary words. First sentence states functionality and outputs, second provides usage context. Efficient and front-loaded.

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?

No output schema, so description should explain return value adequately. Mentions reported items but not structure (e.g., success flag, issues list). For a simple 1-param tool, it covers core but lacks output details.

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 coverage is 100% with description 'PDF file path' for the only parameter. The tool description does not add extra meaning beyond confirming the file path usage. Baseline score of 3 is appropriate.

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?

Clearly states the action (validate PDF) and specific outputs (parseability, page count, metadata, form fields, structural issues). Distinguishes from sibling tools as a health check before processing.

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?

Explicitly mentions 'useful as a health check before processing,' indicating when to use. Does not explicitly state when not to use or compare to alternatives like pdf_info, but context is implied.

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

pdf_watermarkB

Add a diagonal text watermark across PDF pages. The text is properly centered regardless of rotation angle.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesWatermark text (e.g. "CONFIDENTIAL", "DRAFT")
colorNoColor — hex (#f00), short hex (#ff0000), or name (red, navy, etc). Default: #888888#888888
pagesNoPages to watermark (1-indexed). Omit for all.
opacityNoOpacity 0-1 (default: 0.15)
filePathYesPDF file path
fontSizeNoFont size in points (default: 60)
rotationNoRotation in degrees (default: 45)
outputPathYesOutput path

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must disclose side effects and requirements. It only mentions centering behavior. It does not state that the tool creates a new file (outputPath is required), whether it modifies the original, or any permission needs.

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?

Two sentences, no redundancy, all information is relevant and front-loaded.

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 description is minimal but the schema is well-documented. However, it lacks high-level behavior like output file creation and does not mention that the original PDF remains unchanged. For a tool with 8 parameters and no output schema, more context would help an agent operate correctly.

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 covers 100% of parameters with descriptions. The tool description adds value by explaining centering behavior related to rotation, but no additional semantics beyond schema for other parameters. Baseline 3 is appropriate.

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 clearly states the tool adds a diagonal text watermark across PDF pages, with a specific detail about centering regardless of rotation. However, it does not differentiate from the sibling tool 'pdf_stamp', which may perform a similar function.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'pdf_stamp' or 'pdf_overlay_pdf'. Missing when-not-to-use or prerequisite conditions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 37 tool updatesv2.1.2
    • First observedpdf_add_image
    • First observedpdf_add_text
    • First observedpdf_attach
    • First observedpdf_blank_pages
    • First observedpdf_compare
    • First observedpdf_compress
    • First observedpdf_create
    • First observedpdf_crop
    • First observedpdf_decrypt
    • First observedpdf_delete_pages
    • First observedpdf_draw
    • First observedpdf_extract_pages
    • First observedpdf_flatten
    • First observedpdf_form_fill
    • First observedpdf_form_read
    • First observedpdf_header_footer
    • First observedpdf_highlight
    • First observedpdf_images_to_pdf
    • First observedpdf_info
    • First observedpdf_insert_pages
    • First observedpdf_merge
    • First observedpdf_overlay_pdf
    • First observedpdf_page_layout
    • First observedpdf_page_numbers
    • First observedpdf_read_text
    • First observedpdf_redact
    • First observedpdf_reorder
    • First observedpdf_repair
    • First observedpdf_reverse
    • First observedpdf_rotate
    • First observedpdf_search
    • First observedpdf_set_metadata
    • First observedpdf_sign
    • First observedpdf_split
    • First observedpdf_stamp
    • First observedpdf_validate
    • First observedpdf_watermark

TDQS

A3.7/5.0

Scored across 37 tools

Disambiguation4/5

Most tools have distinct purposes, but there is slight overlap between pdf_extract_pages and pdf_split, and between pdf_overlay_pdf and pdf_watermark. Descriptions help disambiguate, so agents can generally select correctly.

Naming Consistency5/5

All tools follow the same consistent pattern: prefix 'pdf_' followed by a descriptive verb_noun in snake_case (e.g., pdf_add_image, pdf_merge, pdf_validate). No mixing of conventions.

Tool Count4/5

37 tools is on the higher side, but each covers a distinct PDF operation, from creation to manipulation to validation. The set feels comprehensive rather than bloated, though a few tools could be simplified.

Completeness5/5

The toolset covers a wide range of PDF lifecycle operations: create, read, edit, annotate, merge/split, form handling, security, metadata, and more. The only notable gap is OCR for scanned documents, which is beyond typical scope. The redaction tool is visual-only, but the description warns clearly.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides comprehensive PDF processing capabilities including text extraction, image extraction, table detection, annotation extraction, metadata retrieval, page rendering, and document structure analysis.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    An MCP server for PDF form filling, basic editing, and OCR text extraction. It enables users to merge, rotate, annotate, and sign PDFs, while also supporting text extraction from both searchable and scanned image-based documents.
    3
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that provides tools for reading, writing, and manipulating PDF files, including text extraction, metadata retrieval, and merging or splitting documents. It also enables users to create PDFs from plain text and convert specific pages or entire documents into images.
    37 npm
    ISC
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server for local PDF manipulation including merging, splitting, rotating, watermarking, and text extraction. It works with various MCP-compatible clients and processes PDFs entirely on-device without cloud services.
    11
    8 npm
    MIT