PluginBench
Skill
Official
Review
Audit score 70

view-pdf

anthropics/knowledge-work-plugins

Interactive PDF viewer for visual collaboration—annotate, highlight, fill forms, and place signatures in real-time.

What is view-pdf?

An interactive PDF viewer that lets you open documents, annotate them with highlights/notes/stamps, fill form fields, and place signatures with live visual feedback. Use it when the user wants to view and collaborate on a PDF visually; for text extraction or summarization, use the native Read tool instead.

  • Display PDFs locally or from HTTPS URLs with an interactive viewer
  • Annotate documents with highlights, underlines, strikethroughs, notes, stamps, and freetext
  • Fill form fields visually with real-time feedback and support for cryptic field labels
  • Place signature and initial images at specific coordinates on pages
  • Search, navigate, and zoom within documents
  • Batch multiple annotation and navigation commands in a single call

How to install view-pdf

npx skills add https://github.com/anthropics/knowledge-work-plugins --skill view-pdf
Claude Code
Cursor
Windsurf
Cline

How to use view-pdf

  1. 1.Call `list_pdfs` to see available local PDFs and allowed directories
  2. 2.Call `display_pdf` with the file path or HTTPS URL to open the document in the viewer (save the returned viewUUID)
  3. 3.For form filling: inspect the returned `formFields` to understand field names and positions; use `get_screenshot` if labels are unclear
  4. 4.Call `interact` with the viewUUID and one or more commands (e.g., `add_annotations`, `fill_form`, `highlight_text`, `navigate`) to make changes
  5. 5.Batch multiple commands together and end with `get_screenshot` to verify changes visually
  6. 6.Show the user the annotated document and iterate on edits based on their feedback
  7. 7.Remind the user they can download the annotated PDF from the viewer toolbar when done

Use cases

Good for
  • Review a contract and highlight key terms together with visual feedback
  • Fill out a form with unclear field labels by seeing the visual layout and labels
  • Sign a document by placing a signature image on a specific page
  • Walk through a research paper and annotate important sections with notes and highlights
  • Stamp a document as CONFIDENTIAL, APPROVED, or DRAFT and review the markup
Who it's for
  • Knowledge workers reviewing contracts or agreements
  • Users filling out forms with unclear or non-standard field names
  • Anyone collaborating on document markup and annotations
  • Professionals who need to place signatures or initials on documents

view-pdf FAQ

When should I use this viewer instead of the native Read tool?

Use the viewer when the user wants to interact with the PDF visually—annotate, highlight, fill forms, or place signatures. Use Read for pure text extraction, summarization, or answering questions about content.

Can I place certified digital signatures?

No. This tool places visual signature images only. It is not a certified or cryptographic digital signature. For legal certification, use a dedicated e-signature service.

What if a form has unclear field names like 'Text1' or 'Field_7'?

Call `get_screenshot` to see the visual layout and match the bounding box coordinates to the printed labels on the page. Then ask the user for values using the visual labels.

Can I create new PDFs or modify the original file?

No. This tool works on existing PDFs only. You can annotate and fill forms, but the original file is not modified unless the user downloads the annotated version.

What document sources are supported?

Local files (under client MCP roots), arXiv PDFs (auto-convert /abs/ URLs), and direct HTTPS PDF URLs from bioRxiv, Zenodo, OSF, and similar sources.

Full instructions (SKILL.md)

Source of truth, from anthropics/knowledge-work-plugins.


name: view-pdf description: Interactive PDF viewer. Use when the user wants to open, show, or view a PDF and collaborate on it visually — annotate, highlight, stamp, fill form fields, place signature/initials, or review markup together. Not for summarization or text extraction (use native Read instead).

PDF Viewer — Interactive Document Workflows

You have access to a local PDF server that renders documents in a live viewer and lets you annotate, fill forms, and place signatures with real-time visual feedback.

When to use this skill

Use the PDF viewer when the user wants interactivity:

  • "Show me this contract" / "Open this paper"
  • "Highlight the key terms and let me review"
  • "Help me fill out this form"
  • "Sign this on page 3" / "Add my initials to each page"
  • "Stamp this CONFIDENTIAL" / "Mark this as approved"
  • "Walk me through this document and annotate the important parts"

Do NOT use the viewer for pure ingestion:

  • "Summarize this PDF" → use the native Read tool directly
  • "What does page 5 say?" → use Read
  • "Extract the table from section 3" → use Read

The viewer's value is showing the user the document and collaborating on markup — not streaming text back to you.

Tools

list_pdfs

List available local PDFs and allowed local directories. No arguments.

display_pdf

Open a PDF in the interactive viewer. Call once per document.

  • url — local file path or HTTPS URL
  • page — initial page (optional, default 1)
  • elicit_form_inputs — if true, prompts the user to fill form fields before displaying (use for interactive form-filling)

Returns a viewUUID — pass this to every interact call. Calling display_pdf again creates a separate viewer; interact calls with the new UUID won't reach the one the user is looking at.

Also returns formFields (name, type, page, bounding box) if the PDF has fillable fields — use these coordinates for signature placement.

interact

All follow-up actions after display_pdf. Pass viewUUID plus one or more commands. Batch multiple commands in one call via the commands array — they run sequentially. End batches with get_screenshot to verify changes visually.

Annotation actions:

  • add_annotations — add markup (see types below)
  • update_annotations — modify existing (id + type required)
  • remove_annotations — delete by id array
  • highlight_text — auto-find text by query and highlight it (preferred over manual rects for text markup)

Navigation actions:

  • navigate (page), search (query), find (query, silent), search_navigate (matchIndex), zoom (scale 0.5–3.0)

Extraction actions:

  • get_text — extract text from page ranges (max 20 pages). Use for reading content to decide what to annotate, NOT for summarization.
  • get_screenshot — capture a page as an image (verify your annotations)

Form action:

  • fill_form — fill named fields: fields: [{name, value}, ...]

Annotation Types

All annotations need id (unique string), type, page (1-indexed). Coordinates are PDF points (1/72 inch), origin top-left, Y increases downward. US Letter is 612×792pt.

TypeKey propertiesUse for
highlightrects, color?, content?Mark important text
underlinerects, color?Emphasize terms
strikethroughrects, color?Mark deletions
notex, y, content, color?Sticky-note comments
freetextx, y, content, fontSize?Visible text on page
rectanglex, y, width, height, color?, fillColor?Box regions
circlex, y, width, height, color?, fillColor?Circle regions
linex1, y1, x2, y2, color?Draw lines/arrows
stampx, y, label, color?, rotation?APPROVED, DRAFT, CONFIDENTIAL, etc.
imageimageUrl, x?, y?, width?, height?Signatures, initials, logos

Image annotations accept a local file path or HTTPS URL (no data: URIs). Dimensions auto-detected if omitted. Users can also drag & drop images directly onto the viewer.

Interactive Workflows

Collaborative annotation (AI-driven)

  1. display_pdf to open the document
  2. interactget_text on relevant page range to understand content
  3. Propose a batch of annotations to the user (describe what you'll mark)
  4. On approval, interactadd_annotations + get_screenshot
  5. Show the user, ask for edits, iterate
  6. When done, remind them they can download the annotated PDF from the viewer toolbar

Form filling (visual, not programmatic)

Unlike headless form tools, this gives the user live visual feedback and handles forms with cryptic/unnamed fields where the label is printed on the page rather than in field metadata.

  1. display_pdf — inspect returned formFields (name, type, page, bounding box)
  2. If field names are cryptic (Text1, Field_7), get_screenshot the pages and match bounding boxes to visual labels
  3. Ask the user for values using the visual labels, or infer from context
  4. interactfill_form, then get_screenshot to show the result
  5. User confirms or edits directly in the viewer

For simple well-labeled forms, display_pdf with elicit_form_inputs: true prompts the user upfront instead.

Signing (visual, not certified)

  1. Ask for the signature/initials image path
  2. display_pdf, check formFields for signature-type fields or ask which page/position
  3. interactadd_annotations with type: "image" at the target coordinates
  4. get_screenshot to confirm placement

Disclaimer: This places a visual signature image. It is not a certified or cryptographic digital signature.

Supported Sources

  • Local files (paths under client MCP roots)
  • arXiv (/abs/ URLs auto-convert to PDF)
  • Any direct HTTPS PDF URL (bioRxiv, Zenodo, OSF, etc. — use the direct PDF link, not the landing page)

Out of Scope

  • Summarization / text extraction — use native Read instead
  • Certified digital signatures — image stamping only
  • PDF creation — this works on existing PDFs only