mcpField
V
view-pdf

view-pdf

github.com/anthropics文档处理33.6k6.3k 次安装1 天前更新
代码仓库

关于 view-pdf

用于处理现有 PDF 的交互式工作流技能,通过本地 PDF 服务和实时查看器支持审阅、批注、填写表单及放置签名图片;不用于总结 PDF 或制作认证签名。

主要功能

  1. 01在查看器中打开本地或 HTTPS PDF
  2. 02添加和管理批注
  3. 03以可视反馈填写 PDF 表单
  4. 04放置签名图片和印章
  5. 05导航、搜索并截取页面

适用场景

  1. 01协作审阅并标注合同
  2. 02填写表单并查看渲染结果
  3. 03在页面上放置姓名缩写或视觉签名

MCP 相关

它使用本地 PDF 服务向客户端提供文档查看与交互工具。该技能说明如何打开 PDF,并通过该服务发送后续操作。

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/view-pdf确认已加载。

详细介绍

PDF 查看器 — 交互式文档工作流

你可以访问一个本地 PDF 服务,它会在实时查看器中渲染文档,并让你进行批注、填写表单和放置签名,同时提供实时的视觉反馈。

何时使用此 Skill

当用户需要交互时,使用 PDF 查看器:

  • “给我看看这份合同” / “打开这篇论文”
  • “高亮关键条款,让我来审阅”
  • “帮我填写这份表单”
  • “在第 3 页签名” / “在每一页添加我的姓名缩写”
  • “加盖 CONFIDENTIAL 印章” / “将其标记为已批准”
  • “带我过一遍这份文档,并批注重要部分”

不要将查看器用于纯粹的内容获取:

  • “总结这个 PDF” → 直接使用原生 Read 工具
  • “第 5 页写了什么?” → 使用 Read
  • “提取第 3 节中的表格” → 使用 Read

查看器的价值在于向用户展示文档,并与其协作完成标注,而不是将文本流式回传给你。

工具

list_pdfs

列出可用的本地 PDF 和允许访问的本地目录。无需参数。

display_pdf

在交互式查看器中打开 PDF。每个文档只调用一次。

  • url — 本地文件路径或 HTTPS URL
  • page — 初始页码(可选,默认 1)
  • elicit_form_inputs — 若为 true,则在显示前提示用户填写表单字段(用于交互式表单填写)

返回一个 viewUUID,需将其传递给每次 interact 调用。再次调用 display_pdf 会创建一个独立的查看器;使用新 UUID 的 interact 调用无法到达用户正在查看的那个查看器。

如果 PDF 含有可填写字段,还会返回 formFields(名称、类型、页码、边界框)——签名放置时请使用这些坐标。

interact

display_pdf 之后的所有后续操作。传入 viewUUID 以及一个或多个命令。在一次调用中批量执行多个命令,通过 commands 数组传入,它们会按顺序执行。批次结束时使用 get_screenshot 以直观地验证更改。

标注操作:

  • add_annotations — 添加标记(见下方类型)
  • update_annotations — 修改已有标注(必须提供 id 和 type)
  • remove_annotations — 按 id 数组删除
  • highlight_text — 按查询自动查找文本并高亮(文本标记的首选方式,优于手动指定矩形)

导航操作:

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

提取操作:

  • get_text — 提取指定页码范围的文本(最多 20 页)。用于读取内容以决定标注什么,而非用于总结。
  • get_screenshot — 将页面截取为图像(用于验证你的标注)

表单操作:

  • fill_form — 填写命名字段:fields: [{name, value}, ...]

标注类型

所有标注都需要 id(唯一字符串)、type、page(从 1 开始计数)。 坐标单位为 PDF 点(1/72 英寸),原点位于左上角,Y 轴向下递增。美国信纸尺寸为 612×792pt。

类型关键属性用途
highlightrects、color?、content?标记重要文本
underlinerects、color?强调术语
strikethroughrects、color?标记删除内容
notex、y、content、color?便签式批注
freetextx、y、content、fontSize?页面上可见的文本
rectanglex、y、width、height、color?、fillColor?框选区域
circlex、y、width、height、color?、fillColor?圈选区域
linex1、y1、x2、y2、color?绘制线条/箭头
stampx、y、label、color?、rotation?APPROVED、DRAFT、CONFIDENTIAL 等
imageimageUrl、x?、y?、width?、height?签名、姓名缩写、徽标

图像标注接受本地文件路径或 HTTPS URL(不支持 data: URI)。若省略尺寸,则自动检测。用户也可以直接将图像拖放到查看器上。

交互式工作流

协作标注(AI 驱动)
  1. 使用 display_pdf 打开文档
  2. 对相关页码范围执行 interact → get_text,以理解内容
  3. 向用户提议一批标注(说明将标注的内容)
  4. 获得批准后,执行 interact → add_annotations 和 get_screenshot
  5. 展示给用户,询问修改意见,并反复迭代
  6. 完成后,提醒用户可以从查看器工具栏下载已标注的 PDF
表单填写(可视化,而非程序化)

与无界面的表单工具不同,此方式为用户提供实时可视化反馈,并能处理字段名晦涩或未命名的表单,即标签印在页面上而非写在字段元数据中的情况。

  1. display_pdf:检查返回的 formFields(名称、类型、页码、边界框)
  2. 若字段名晦涩(如 Text1、Field_7),对页面执行 get_screenshot,并将边界框与视觉标签进行匹配
  3. 使用视觉标签向用户询问取值,或根据上下文推断
  4. 执行 interact → fill_form,然后执行 get_screenshot 展示结果
  5. 用户直接在查看器中确认或编辑

对于简单且标签清晰的表单,可使用 display_pdf 并设置 elicit_form_inputs: true,改为预先向用户征询输入。

签名(可视化,非认证签名)
  1. 索取签名或缩写图片的路径
  2. 执行 display_pdf,检查 formFields 中的签名类型字段,或询问签名所在的页码和位置
  3. 在目标坐标处,执行 interact → add_annotations,并设置 type: "image"
  4. 执行 get_screenshot 以确认放置位置

免责声明: 此操作仅放置可视签名图片,并非经认证的或基于密码学的数字签名。

支持的来源

  • 本地文件(位于客户端 MCP roots 路径下)
  • arXiv(/abs/ 链接会自动转换为 PDF)
  • 任何可直接访问的 HTTPS PDF 链接(bioRxiv、Zenodo、OSF 等,请使用 PDF 直链,而非落地页)

不在范围内

  • 摘要 / 文本提取:请改用原生 Read
  • 认证数字签名:仅支持图片盖章
  • PDF 创建:仅适用于已有的 PDF

评论

支持 Markdown