MCPInstall

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

Installs
6.3K
Last 24h
+8
Trending rank
#9490
Security
Warn

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/anthropics/knowledge-work-plugins --skill view-pdf
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads view-pdf automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

Security audits

Independent scans of the skill's instructions and bundled files.

Gen Agent Trust Hub PassSAFE ·This skill facilitates interactive PDF workflows, including viewing and annotating documents. It includes security considerations regarding the processing of external PDF content and remote images, which are common for document handling tools. See detailed analysis for context.
Socket PassNo alerts
Snyk WarnMEDIUM ·Risk: MEDIUM · 1 issue
ZeroLeaks PassNONE ·Score: 93/100 · 2 sections analyzed

SKILL.md

The instructions your agent reads when the skill is triggered.

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

FAQ

What does the view-pdf skill do?

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

How do I install view-pdf?

Run npx skills add https://github.com/anthropics/knowledge-work-plugins --skill view-pdf in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/view-pdf/ (personal) or .claude/skills/view-pdf/ (project).

Which AI agents can use view-pdf?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is view-pdf safe to install?

Security partners have reviewed it: Gen Agent Trust Hub passed; Socket passed; Snyk flagged items to review; ZeroLeaks passed. As with any skill, read the SKILL.md and bundled scripts before installing.

Who maintains view-pdf?

It is published by anthropics in anthropics/knowledge-work-plugins, and it is an official skill from the maker of the technology it covers. It has 6,304 recorded installs.

More from anthropics/knowledge-work-plugins

View all →

data-visualization

anthropics/knowledge-work-plugins

Create effective data visualizations with Python (matplotlib, seaborn, plotly). Use when building charts, choosing the right chart type for a dataset, creating publication-quality figures, or applying design principles like accessibility and color theory.

OfficialFrontend & Design13.8K installs

documentation

anthropics/knowledge-work-plugins

Write and maintain technical documentation. Trigger with "write docs for", "document this", "create a README", "write a runbook", "onboarding guide", or when the user needs help with any form of technical writing — API docs, architecture docs, or operational runbooks.

OfficialDocs & Writing10.3K installs

code-review

anthropics/knowledge-work-plugins

Review code changes for security, performance, and correctness. Trigger with a PR URL or diff, "review this before I merge", "is this code safe?", or when checking a change for N+1 queries, injection risks, missing edge cases, or error handling gaps.

OfficialCode Quality & Workflow9.9K installs

build-dashboard

anthropics/knowledge-work-plugins

Build an interactive HTML dashboard with charts, filters, and tables. Use when creating an executive overview with KPI cards, turning query results into a shareable self-contained report, building a team monitoring snapshot, or needing multiple charts with filters in one browser-openable file.

OfficialData & Databases9.1K installs

system-design

anthropics/knowledge-work-plugins

Design systems, services, and architectures. Trigger with "design a system for", "how should we architect", "system design for", "what's the right architecture for", or when the user needs help with API design, data modeling, or service boundaries.

OfficialFrontend & Design7.5K installs

memory-management

anthropics/knowledge-work-plugins

Two-tier memory system that makes Claude a true workplace collaborator. Decodes shorthand, acronyms, nicknames, and internal language so Claude understands requests like a colleague would. CLAUDE.md for working memory, memory/ directory for the full knowledge base.

Official7.5K installs

Popular docs & writing skills

View category →

grill-with-docs

mattpocock/skills

A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.

Docs & Writing1.2M installs

lark-markdown

open.feishu.cn

飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。

Docs & Writing778.7K installs

writing-beats

mattpocock/skills

Writing, exploit; assemble raw material into a journey of beats, grounding each term before a beat leans on it.

Docs & Writing490.7K installs

writing-shape

mattpocock/skills

Writing, exploit: shape raw material into an article, paragraph by paragraph.

Docs & Writing490.2K installs

writing-fragments

mattpocock/skills

Writing, explore: mine raw fragments, no structure yet.

Docs & Writing489.6K installs

writing-for-agents

mattpocock/skills

Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.

Docs & Writing479.3K installs