Skip to content
Productivity
Skill

/pdf-tools

Read and search PDFs, turn selected pages into Markdown, fill PDF forms, and create new copies with selected, reordered, rotated or merged pages. Reports source coverage and extraction gaps.

BOOST
From plugin
pdf-tools
1583 skills
Install
$ npx -y skills add Open-Document-Alliance/PDF-Tools --skill pdf-tools --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/pdf-tools

Context preview

The summary Claude sees to decide when to auto-load this skill.

Read and search PDFs, turn selected pages into Markdown, fill PDF forms, and create new copies with selected, reordered, rotated or merged pages. Reports source coverage and extraction gaps.

SKILL.md

pdf-tools.SKILL.md
name: pdf-tools
description: Read and search PDFs, turn selected pages into Markdown, fill PDF forms, and create new copies with selected, reordered, rotated or merged pages. Reports source coverage and extraction gaps.

PDF Tools

Use the configured `pdf-tools` hosted MCP. This processes only documents explicitly supplied for this task, remotely for one request at a time. It does not store documents, browse local folders, or provide the local application's saved workspace, profiles, full viewer or Lumin signing.

Get the supplied file

Prefer the host-provided `file` attachment input. The host supplies its real `download_url` and `file_id`; never invent them. Tools also accept an authorized `pdf_url` or actual `pdf_base64`, but never more than one input form. `merge_pdfs` takes a `files` array of 2 to 5 real attachments. Never publish a private file elsewhere just to obtain a public URL. If the host cannot supply the attachment, explain the unsupported handoff rather than claiming access.

Inputs fetched by URL or attachment are limited to 25 MB and 200 pages. Inline input and returned PDFs are limited to 3 MB. Encrypted PDFs are refused. The assistant host's data terms apply to files and content shared with it.

Read, search and convert

Use `get_pdf_info` first to establish the source and page count. Reading, searching and Markdown conversion require explicit inclusive page ranges of at most 10 pages per call. They default to page 1 only. Track the exact covered ranges if working through a longer document; never describe an unexamined page as reviewed. Use `read_pdf_pages`, `search_pdf_text` and `convert_pdf_to_markdown` for their respective jobs.

Preserve extraction status, truncation and gap warnings in the answer. A no-match result covers only the extracted text in that range. No OCR is performed; image-only content and missing text are not empty-document proof. Markdown conversion is not complete mathematical, table or schema extraction.

Make and return a new copy

Use `select_pdf_pages` with exact unique page numbers in the desired order to split or reorder. Omitted pages are deliberately excluded and must be reported. Use `rotate_pdf_pages` for exact pages and 90, 180 or 270 clockwise degrees. Use `merge_pdfs` for explicitly supplied attachments in their listed order. Page selection and merging copy page content, not document-level form structure, bookmarks or metadata. Do not promise those survived.

For user-facing PDF-producing calls set `output_mode: "download"`. The result card receives and verifies PDF bytes without placing them in the model-visible result. The download action is user initiated and depends on host support. Never call encoded data a download link or say the file has been saved before the host or user confirms it. Without a working card, explain the output limitation. `output_mode: "inline"` is for machine clients that can actually consume base64; do not echo large base64 to the user.

The source is never overwritten. To run a further operation on the new copy, use an actual host-authorized file handoff. A digest alone is not access to bytes, and the stateless server cannot retrieve a previous result by ID.

Forms and visible stamps

Read `read_form_fields` and use exact returned field names. Fill only the user's provided values with `fill_form`. Report both `filled` and `not_filled`. Verify the new copy when the host can supply it again; otherwise do not claim readback. Use `flatten_form` only when the user wants fixed page content rather than editable fields. A successful fill does not mean complete or ready to submit.

Use `detect_signature_zones` before a visible stamp. `apply_signature` needs the person's own explicit intent statement and actual recent confirmation time. Never invent consent, timestamp or signature identity. A visible stamp is not a cryptographic signature or a Lumin signing request. Do not bypass signature, XFA, encryption, size or private-network refusals.

Read more
Ships withpdf-tools

The local PDF workflow for Claude Desktop and MCP hosts: fill, sign, merge, split, extract, render, and analyze PDFs with local file operations.

Get the whole plugin
Stats
158
Stars
25
Forks
Active
Maintenance
JavaScript
Language
MIT
License
1d ago
Last commit
1y ago
Created
2h ago
Added

Repo: Open-Document-Alliance/PDF-Tools

Other skills on pdf-tools.