---
id: daily-view-pdf
name: "view-pdf"
url: https://skills.yangsir.net/skill/daily-view-pdf
author: anthropics
domain: multimedia
tags: ["pdf-viewer", "document-workflow", "annotation", "form-filling", "productivity"]
install_count: 6300
rating: 4.40 (26 reviews)
github: https://github.com/anthropics/knowledge-work-plugins
---

# view-pdf

> 通过本地 PDF 服务器在实时查看器中渲染文档，支持批注、填写表单和放置签名，并提供实时视觉反馈

**Stats**: 6,300 installs · 4.4/5 (26 reviews)

## Before / After 对比

### 文档处理效率

**Before**:

在 PDF 阅读器中打开文档，使用单独的工具添加批注，打印后手动填写表单和签名，处理一份合同文档需要 20 分钟

**After**:

在交互式查看器中实时批注、填写表单和放置签名，所有修改立即生效且可撤销，3 分钟内完成文档处理

| Metric | Before | After | Change |
|---|---|---|---|
| 处理时间 | 20分钟 | 3分钟 | -85% |

## Readme

# view-pdf

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

Type
Key properties
Use for

`highlight`
`rects`, `color?`, `content?`
Mark important text

`underline`
`rects`, `color?`
Emphasize terms

`strikethrough`
`rects`, `color?`
Mark deletions

`note`
`x`, `y`, `content`, `color?`
Sticky-note comments

`freetext`
`x`, `y`, `content`, `fontSize?`
Visible text on page

`rectangle`
`x`, `y`, `width`, `height`, `color?`, `fillColor?`
Box regions

`circle`
`x`, `y`, `width`, `height`, `color?`, `fillColor?`
Circle regions

`line`
`x1`, `y1`, `x2`, `y2`, `color?`
Draw lines/arrows

`stamp`
`x`, `y`, `label`, `color?`, `rotation?`
APPROVED, DRAFT, CONFIDENTIAL, etc.

`image`
`imageUrl`, `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)

- `display_pdf` to open the document

- `interact` → `get_text` on relevant page range to understand content

- Propose a batch of annotations to the user (describe what you'll mark)

- On approval, `interact` → `add_annotations` + `get_screenshot`

- Show the user, ask for edits, iterate

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

- `display_pdf` — inspect returned `formFields` (name, type, page,
bounding box)

- If field names are cryptic (`Text1`, `Field_7`), `get_screenshot`
the pages and match bounding boxes to visual labels

- Ask the user for values using the **visual** labels, or infer from
context

- `interact` → `fill_form`, then `get_screenshot` to show the result

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

- Ask for the signature/initials image path

- `display_pdf`, check `formFields` for signature-type fields or ask
which page/position

- `interact` → `add_annotations` with `type: "image"` at the target
coordinates

- `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

Weekly Installs586Repository[anthropics/know…-plugins](https://github.com/anthropics/knowledge-work-plugins)GitHub Stars11.1KFirst SeenMar 28, 2026Security Audits[Gen Agent Trust HubPass](/anthropics/knowledge-work-plugins/view-pdf/security/agent-trust-hub)[SocketPass](/anthropics/knowledge-work-plugins/view-pdf/security/socket)[SnykWarn](/anthropics/knowledge-work-plugins/view-pdf/security/snyk)Installed onopencode572codex571github-copilot570gemini-cli569cline569cursor569

---
*Source: https://skills.yangsir.net/skill/daily-view-pdf*
*Markdown mirror: https://skills.yangsir.net/api/skill/daily-view-pdf/markdown*