view-pdf

Par anthropics · knowledge-work-plugins

Visionneuse PDF interactive. À utiliser lorsque l'utilisateur souhaite ouvrir, afficher ou consulter un PDF et y collaborer visuellement — annoter, surligner, apposer un tampon, remplir des champs de formulaire, placer une signature/des initiales, ou réviser des annotations ensemble. Ne convient pas à la synthèse ou à l'extraction de texte (utiliser Read nativement à la place).

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

Visionneuse PDF — Workflows de Documents Interactifs

Vous avez accès à un serveur PDF local qui rend les documents dans une visionneuse en direct et vous permet d'annoter, de remplir des formulaires et de placer des signatures avec un retour visuel en temps réel.

Quand utiliser cette compétence

Utilisez la visionneuse PDF quand l'utilisateur souhaite de l'interactivité :

  • « Montre-moi ce contrat » / « Ouvre ce document »
  • « Mets en évidence les termes clés et laisse-moi vérifier »
  • « Aide-moi à remplir ce formulaire »
  • « Signe ceci page 3 » / « Ajoute mes initiales à chaque page »
  • « Tamponne ceci CONFIDENTIEL » / « Marque ceci comme approuvé »
  • « Parcours ce document avec moi et annote les parties importantes »

N'utilisez PAS la visionneuse pour de l'ingestion pure :

  • « Résume ce PDF » → utilisez l'outil Read natif directement
  • « Que dit la page 5 ? » → utilisez Read
  • « Extrait le tableau de la section 3 » → utilisez Read

La valeur de la visionneuse est de montrer le document à l'utilisateur et de collaborer sur le balisage — pas de retourner du texte en continu.

Outils

list_pdfs

Liste les PDF locaux disponibles et les répertoires locaux autorisés. Pas d'arguments.

display_pdf

Ouvre un PDF dans la visionneuse interactive. Appelez une fois par document.

  • url — chemin de fichier local ou URL HTTPS
  • page — page initiale (optionnel, par défaut 1)
  • elicit_form_inputs — si true, invite l'utilisateur à remplir les champs de formulaire avant l'affichage (utilisez pour le remplissage interactif de formulaires)

Retourne un viewUUID — passez-le à chaque appel interact. Appeler display_pdf à nouveau crée une visionneuse séparée ; les appels interact avec le nouvel UUID ne rejoindront pas celle que l'utilisateur regarde.

Retourne également formFields (nom, type, page, boîte de délimitation) si le PDF contient des champs remplissables — utilisez ces coordonnées pour le positionnement des signatures.

interact

Toutes les actions de suivi après display_pdf. Passez viewUUID plus une ou plusieurs commandes. Regroupez plusieurs commandes en un seul appel via le tableau commands — elles s'exécutent séquentiellement. Terminez les lots avec get_screenshot pour vérifier les modifications visuellement.

Actions d'annotation :

  • add_annotations — ajouter du balisage (voir les types ci-dessous)
  • update_annotations — modifier l'existant (id + type requis)
  • remove_annotations — supprimer par tableau d'id
  • highlight_text — trouver automatiquement le texte par requête et le mettre en évidence (préféré aux rectangles manuels pour le balisage de texte)

Actions de navigation :

  • navigate (page), search (requête), find (requête, silencieux), search_navigate (matchIndex), zoom (échelle 0,5–3,0)

Actions d'extraction :

  • get_text — extraire le texte des plages de pages (20 pages max). À utiliser pour lire le contenu et décider quoi annoter, PAS pour la résumé.
  • get_screenshot — capturer une page en tant qu'image (vérifier vos annotations)

Action de formulaire :

  • fill_form — remplir les champs nommés : fields: [{name, value}, ...]

Types d'Annotation

Toutes les annotations nécessitent id (chaîne unique), type, page (indexée à 1). Les coordonnées sont en points PDF (1/72 pouce), origine en haut à gauche, Y augmente vers le bas. US Letter fait 612×792pt.

Type Propriétés clés Utilisé pour
highlight rects, color?, content? Marquer le texte important
underline rects, color? Souligner les termes
strikethrough rects, color? Marquer les suppressions
note x, y, content, color? Commentaires de note adhésive
freetext x, y, content, fontSize? Texte visible sur la page
rectangle x, y, width, height, color?, fillColor? Régions de boîte
circle x, y, width, height, color?, fillColor? Régions circulaires
line x1, y1, x2, y2, color? Tracer des lignes/flèches
stamp x, y, label, color?, rotation? APPROVED, DRAFT, CONFIDENTIAL, etc.
image imageUrl, x?, y?, width?, height? Signatures, initiales, logos

Les annotations d'image acceptent un chemin de fichier local ou une URL HTTPS (pas d'URIs data:). Les dimensions sont détectées automatiquement si omises. Les utilisateurs peuvent aussi glisser-déposer des images directement sur la visionneuse.

Workflows Interactifs

Annotation collaborative (pilotée par l'IA)

  1. display_pdf pour ouvrir le document
  2. interactget_text sur la plage de pages pertinente pour comprendre le contenu
  3. Proposer un lot d'annotations à l'utilisateur (décrivez ce que vous marquerez)
  4. Après approbation, interactadd_annotations + get_screenshot
  5. Montrer le résultat à l'utilisateur, demander les modifications, itérer
  6. Quand c'est fait, rappeler à l'utilisateur qu'il peut télécharger le PDF annoté depuis la barre d'outils de la visionneuse

Remplissage de formulaire (visuel, pas programmatique)

Contrairement aux outils de formulaire sans interface, cela donne à l'utilisateur un retour visuel en direct et gère les formulaires avec des champs énigmatiques/sans nom où le libellé est imprimé sur la page plutôt que dans les métadonnées de champ.

  1. display_pdf — inspecter formFields retourné (nom, type, page, boîte de délimitation)
  2. Si les noms de champs sont énigmatiques (Text1, Field_7), get_screenshot les pages et faire correspondre les boîtes de délimitation aux libellés visuels
  3. Demander les valeurs à l'utilisateur en utilisant les libellés visuels, ou en déduire à partir du contexte
  4. interactfill_form, puis get_screenshot pour afficher le résultat
  5. L'utilisateur confirme ou édite directement dans la visionneuse

Pour les formulaires simples bien libellés, display_pdf avec elicit_form_inputs: true invite plutôt l'utilisateur au préalable.

Signature (visuelle, pas certifiée)

  1. Demander le chemin de l'image de signature/initiales
  2. display_pdf, vérifier formFields pour les champs de type signature ou demander quelle page/position
  3. interactadd_annotations avec type: "image" aux coordonnées cibles
  4. get_screenshot pour confirmer le positionnement

Disclaimer : Cela place une image de signature visuelle. Ce n'est pas une signature numérique certifiée ou cryptographique.

Sources Supportées

  • Fichiers locaux (chemins sous les racines MCP client)
  • arXiv (les URLs /abs/ se convertissent automatiquement en PDF)
  • Toute URL PDF HTTPS directe (bioRxiv, Zenodo, OSF, etc. — utilisez le lien PDF direct, pas la page d'accueil)

Hors du Scope

  • Résumé / extraction de texte — utilisez Read natif à la place
  • Signatures numériques certifiées — balisage d'image uniquement
  • Création de PDF — fonctionne uniquement sur les PDF existants

Skills similaires