Agent Academy

Agent Academy is a free, source-linked library of skills, prompts, MCP servers and bot templates, organised into courses by profession, for people who hand real work to AI agents: 1,467 live resources, each with its original link, license and safety tags.

Skill

view-pdf

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).

No credentialsDoes not send

https://github.com/anthropics/knowledge-work-plugins/blob/main/pdf-viewer/skills/view-pdf/SKILL.md

Install
npx skills add anthropics/knowledge-work-plugins --skill view-pdf

Original content

Full originalApache-2.0Source

Republished in full under its license, with attribution. The source is authoritative.

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. interact → get_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, interact → add_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)

  1. If field names are cryptic (Text1, Field_7), get_screenshot

the pages and match bounding boxes to visual labels

  1. Ask the user for values using the visual labels, or infer from

context

  1. interact → fill_form, then get_screenshot to show the result
  2. 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

  1. interact → add_annotations with type: "image" at the target

coordinates

  1. 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

Related

SkillSoftware engineering

claude-api

Reference for the Claude API / Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration. TRIGGER — read BEFORE opening the target file; don't skip because it "looks like a one-liner" — whenever: the prompt names Claude/Anthropic in any form (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*`, `us.anthropic.*`,…

Sourcegithub.com/anthropics/skills/blob/main/skills/claude-api/SKILL.md

No credentialsDoes not sendApache-2.0
SkillSoftware engineering

doc-coauthoring

Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar…

Sourcegithub.com/anthropics/skills/blob/main/skills/doc-coauthoring/SKILL.md

No credentialsDoes not sendnot stated
SkillSoftware engineering

mcp-builder

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

Sourcegithub.com/anthropics/skills/blob/main/skills/mcp-builder/SKILL.md

No credentialsDoes not sendApache-2.0
SkillSoftware engineering

skill-creator

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.

Sourcegithub.com/anthropics/skills/blob/main/skills/skill-creator/SKILL.md

No credentialsDoes not sendApache-2.0
SkillSoftware engineering

webapp-testing

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

Sourcegithub.com/anthropics/skills/blob/main/skills/webapp-testing/SKILL.md

No credentialsDoes not sendApache-2.0
SkillSoftware engineering

ai-debt-detector

Use after generating code, after accepting AI suggestions, or when reviewing AI-written modules. Also use when code works but feels brittle, when error handling seems thin, when orphaned resources or missing cleanup are suspected, or when the agent claims done but hidden debt may exist. Catches the specific failure patterns AI agents produce that humans would not.

Sourcegithub.com/wshobson/agents/blob/main/plugins/skill-forge-essentials/skills/ai-debt-detector/SKILL.md

No credentialsDoes not sendMIT