pdfassistant-mcp
pdfAssistant MCP Server gives Claude, ChatGPT, Codex, and any MCP-compatible client the ability to manipulate PDF files directly inside your conversation —…
Что умеет
- Add Files To Pdf: Embed one of the user's uploaded files inside an existing PDF as an attachment, optionally renaming the resulting PDF. ## Tool Usage Rules - Use the `add_files_to_pdf` tool when the
- Add Images To Pdf: Place an existing JPEG, TIF, PNG, or GIF image onto a specific page of a PDF at the user-specified coordinates and return the modified file. ## Tool Usage Rules - Use the `add_image
- Add Ocr Text To Pdf: Apply OCR to images inside a PDF, embedding searchable text behind each graphic while retaining the original appearance. ## Tool Usage Rules - Use the `add_ocr_text_to_pdf` tool w
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
pdfAssistant MCP Server gives Claude, ChatGPT, Codex, and any MCP-compatible client the ability to manipulate PDF files directly inside your conversation — not just read or summarize them.
Connect once via OAuth in under 60 seconds. From that point, your AI assistant can convert, compress, merge, split, redact, OCR, watermark, encrypt, sign, and extract from PDFs using natural language — with results delivered as actual files.
67 tools. 6 resources. Built on Adobe PDF Library technology via pdfRest. Streamable HTTP transport with OAuth 2.0. No local installation required.
Enterprise-grade privacy: no AI training on your data, 24-hour file deletion, TLS 1.3 in transit, AES-256 at rest. SOC 2 Type 2 compliant.
Requires a paid pdfAssistant plan. Full capability list and setup guides at pdfassistant.ai/integrations/ai-connections/
Список инструментов сервера (60)
Технические названия из tools/list. Нужны только разработчикам.
| add_files_to_pdf | Embed one of the user's uploaded files inside an existing PDF as an attachment, optionally renaming the resulting PDF. ## Tool Usage Rules - Use the `add_files_to_pdf` tool when the user wants to attach a secondary file to a PDF for distribution or archival purposes. - Only proceed if the attachment is permitted by the document (e.g., a PDF/A file that forbids attachments will return an error you should surface to the user rather than retrying). - When the user specifies how the output should be named, populate `output` with the requested filename (no extension). - Remember that attachments remain embedded in the PDF and are not shown on the page, so you do not need to convert the attached file before calling. - Any file type is acceptable as the attachment. |
| add_images_to_pdf | Place an existing JPEG, TIF, PNG, or GIF image onto a specific page of a PDF at the user-specified coordinates and return the modified file. ## Tool Usage Rules - Use the `add_images_to_pdf` tool when the user wants to insert an uploaded image (JPEG, TIF/TIFF, PNG, or GIF) into a PDF page at a defined location. - Convert any inch-based measurements into PDF units (1 inch = 72 units) because the PDF coordinate system starts at the lower-left corner; map those values into `x`, `y`, and the requested `page`. - Validate that the requested page exists in the PDF so the tool call does not reference an out-of-range page number. - When the user wants a specific filename for the edited PDF, set the `output` argument to that name (omit the extension). - Use image files directly—no conversion is required before calling this tool. |
| add_ocr_text_to_pdf | Apply OCR to images inside a PDF, embedding searchable text behind each graphic while retaining the original appearance. ## Tool Usage Rules - Use the `add_ocr_text_to_pdf` tool when the user needs a searchable and selectable version of an image-heavy PDF without altering the visual content. - Pass the requested OCR `languages` (the default is English) and remind the user that adding more languages increases processing time. - Supply `output` whenever the user asks for a specific filename for the OCR-enhanced copy. |
| add_open_password_to_restricted_pdf | Encrypt a restricted but currently password-free PDF by applying a new open password. ## Tool Usage Rules - Use the `add_open_password_to_restricted_pdf` tool when the user wants to add an open password to a PDF that already has permissions restrictions. - Provide the existing `current_permissions_password` so the service can modify the file, and choose a new open password between 6 and 128 characters. - Supply `output` whenever the user wants the encrypted result saved under a specific name. - Confirm via the `FileCreate` metadata that `restrict_permissions_set` is true before calling this helper so you know permissions restrictions already exist; don't rerun `get_pdf_metadata` just to read that flag. |
| add_open_password_to_unrestricted_pdf | Encrypt an unrestricted PDF by applying a new open password without modifying permissions. ## Tool Usage Rules - Use the `add_open_password_to_unrestricted_pdf` tool when the user wants to encrypt an unrestricted PDF that currently has no open password. - The PDF must not be encrypted or locked behind permissions (`restrict_permissions_set` should be false); no existing password is needed for this call. - Provide a `new_open_password` between 6 and 128 characters and set `output` when a specific filename is desired. - Before selecting this tool, read `restrict_permissions_set` and `requires_password_to_open` from the `FileCreate` metadata to verify the PDF is truly unrestricted instead of calling `get_pdf_metadata`. |
| add_permissions_password_to_encrypted_pdf | Apply a permissions password and restriction set to an encrypted PDF that currently only has an open password. ## Tool Usage Rules - Use the `add_permissions_password_to_encrypted_pdf` tool when an encrypted PDF lacks a permissions password and you want to enforce restrictions for the first time. - Provide the current open password, the desired `new_permissions_password`, and the restrictions to apply; do not use this tool if restrictions already exist (use `change_permissions_on_encrypted_pdf` instead). - Supply `output` whenever the user wants the resulting file saved under a specific name. - Before selecting this tool, confirm via the `FileCreate` metadata that `restrict_permissions_set` is false and `requires_password_to_open` is true so you know the file already has an open password but no permissions restrictions; do not rerun `get_pdf_metadata` just for these flags. |
| add_permissions_password_to_unencrypted_pdf | Apply a new permissions password and a set of restrictions to an unencrypted, unrestricted PDF. ## Tool Usage Rules - Use the `add_permissions_password_to_unencrypted_pdf` tool when the user wants to lock a currently unrestricted PDF behind a permissions password. - Provide the list of `restrictions` that should be enforced (print, copy, edit, accessibility, etc.) and choose a `new_permissions_password` between 6 and 128 characters. - Set `output` whenever the user asks for a particular filename for the restricted PDF. - Before selecting this tool, confirm via the `FileCreate` metadata whether `restrict_permissions_set` and `requires_password_to_open` are both false; do not run `get_pdf_metadata` just to read those flags. |
| add_text_to_pdf | Overlay one or more styled text blocks onto a PDF page (or all pages), respecting fonts, colors, opacity, rotation, RTL direction, and precise PDF-unit positioning. ## Tool Usage Rules - Use the `add_text_to_pdf` tool when the user asks to insert new text into an existing PDF, especially when they need control over style, placement, or page targeting. - Supply `text_items_to_add` entries that capture the user's requested font, size, color, opacity, rotation, RTL preference, column width, and precise PDF-unit coordinates (1 inch = 72 units) for each block. - Specify `"all"` in the `page` field when the user wants the same text applied to every page; otherwise, provide the numeric page number and verify it exists. - When the user requests a specific filename for the edited PDF, fill the `output` argument with that name (omit the extension). |
| append_file_contents | Create a new server-side file by appending text or binary chunks to an existing file's contents. ## Tool Usage Rules - Use the `append_file_contents` tool when the user wants a new file that combines an existing file with additional bytes (for example, constructing a large upload iteratively). - Supply the source file `id`, the extra `contents`, and the correct `encoding` (`utf-8` / `base64`); the tool reads the source file and appends the new bytes at the end. - This tool does not mutate the source file resource; it uploads a newly combined file and returns metadata for that new file ID. - This tool is intended for relatively small files, and should not be used for large uploads. |
| change_open_password_on_restricted_pdf | Change the open password on a restricted PDF, supplying both the current open and permissions passwords. ## Tool Usage Rules - Use the `change_open_password_on_restricted_pdf` tool when the PDF has both an open password and restrictions enforced by a permissions password. - Supply the current open password plus the permissions password, choose a new open password (6-128 chars), and set `output` if a particular filename is needed. - Confirm via `restrict_permissions_set` and `requires_password_to_open` in the `FileCreate` metadata that both passwords are present before calling this tool; do not rerun `get_pdf_metadata` just to verify them. |
| change_open_password_on_unrestricted_pdf | Replace the open password on an encrypted but unrestricted PDF without touching its permissions. ## Tool Usage Rules - Use the `change_open_password_on_unrestricted_pdf` tool when the user wants to update the open password on a PDF that is encrypted but not restricted. - Provide the current open password, choose a new one between 6 and 128 characters, and name the output if required. - Before invoking this tool, read `restrict_permissions_set` and `requires_password_to_open` from the `FileCreate` metadata to ensure the PDF is encrypted but lacks restrictions, rather than rerunning `get_pdf_metadata`. - If `requires_password_to_open` is true and `restrict_permissions_set` is null/unknown, assume the PDF has no restrictions and call this tool directly. Do not call `get_pdf_metadata` or ask a follow-up question in that case. |
| change_permissions_on_encrypted_pdf | Revise the restriction set on an encrypted PDF that already enforces permissions. ## Tool Usage Rules - Use the `change_permissions_on_encrypted_pdf` tool when an encrypted PDF already has restrictions and you need to adjust which restrictions are enforced or rotate the permissions password. - Provide the current open password, the current permissions password, and the updated restriction list; include a `new_permissions_password` only when changing it. - Supply `output` when the user wants a specific filename for the modified file. - Ensure the `FileCreate` metadata indicates both `restrict_permissions_set` and `requires_password_to_open` are true before selecting this tool; avoid calling `get_pdf_metadata` just to read those flags. |
| change_permissions_on_unencrypted_pdf | Update restrictions on an unencrypted PDF, optionally rotating the permissions password. ## Tool Usage Rules - Use the `change_permissions_on_unencrypted_pdf` tool when the user needs to modify the restriction set on a PDF that currently has no encryption. - Provide the current permissions password, the new restriction list, and optionally a new permissions password (6-128 characters) when the user wants to change it. - Set `output` whenever a particular filename is requested for the updated file. - Check `restrict_permissions_set` and `requires_password_to_open` in the `FileCreate` metadata before calling—this tool should only run on PDFs without an open password, so don't rerun `get_pdf_metadata` just to verify those flags. |
| compress_pdf | Shrink a PDF by applying preset or custom compression profiles, balancing between fidelity and file size. ## Tool Usage Rules - Use the `compress_pdf` tool when the user needs a smaller PDF for sharing, emailing, or storage. - Pick one of the predefined compression levels (low, medium, high) unless the user explicitly wants a custom profile. - If the user requests a custom profile, provide its resource UUID in `profile_id`; omit this argument for standard levels. - Honor the user's desired output name by setting `output`, so the generated file matches their naming preference. |
| convert_colors_in_pdf | Convert every color in a PDF to a defined profile (ICC, RGB, CMYK, grayscale, etc.) and optionally keep true blacks while renaming the output. ## Tool Usage Rules - Use the `convert_colors_in_pdf` tool when the user wants colors aligned with a specific print, screen, or grayscale profile. - Prefer one of the supported profiles (lab-d50, srgb, apple-rgb, color-match-rgb, gamma-18, gamma-22, dot-gain-10/15/20/25/30, monitor-rgb, acrobat5-cmyk, acrobat9-cmyk) to match their workflow. - When the user only names a color model, fall back to the default profile for that model: standard RGB for `rgb`, grayscale with 20% dot gain for `gray`, and Acrobat Reader 9 CMYK for `cmyk`. - Toggle `preserve_black` whenever they want the original black definitions preserved across the conversion. - Provide `output` whenever the user wants the converted file saved with a specific filename. |
| convert_email_to_pdf | Convert an uploaded .eml email file on pdfRest into a PDF rendering. ## Tool Usage Rules - Use the `convert_email_to_pdf` tool when the user supplies an .eml message and wants a PDF version of the email. - Make sure the `id` references an actual EML file stored on pdfRest; other email formats must be converted to .eml first. - Populate `output` whenever the user specifies a filename for the resulting PDF. |
| convert_graphic_file_to_pdf | Convert a single raster image (JPEG, TIFF, BMP, or PNG) on pdfRest into a PDF. ## Tool Usage Rules - Use the `convert_graphic_file_to_pdf` tool when the user wants a JPEG, TIFF, BMP, or PNG turned into a PDF. - Pass only one image resource ID per call; merge multiple images later if the user needs a multi-page PDF. - Upload remote images before invoking this function so the `id` points to an existing pdfRest resource. - Set `output` whenever the user names the PDF; omit it to use the default naming scheme. |
| convert_html_file_to_pdf | Convert an uploaded HTML document on pdfRest into a PDF while controlling compression, downsampling, page size, margins, orientation, and responsive layout. ## Tool Usage Rules - Use the `convert_html_file_to_pdf` tool when the user provides (or you craft) HTML that must become a PDF. - Supply the pdfRest resource ID for that HTML file; upload remote URLs before calling. - Map layout instructions—page size, margins, orientation, and device layout—to the matching parameters only when the user requests them. - Create custom markup with `write_file_contents` first instead of embedding raw HTML in a prompt, then reference the resulting file ID here. - Fill in `output` whenever the user names the resulting PDF file. |
| convert_html_file_to_pdf_with_resources | Convert a server-side HTML file into a PDF while resolving referenced pdfAssistant files by UUID. ## Tool Usage Rules - Use the `convert_html_file_to_pdf_with_resources` tool after creating a large HTML document with `write_file_contents` and `append_file_contents`. - Supply the final server-side HTML file ID. Its HTML or CSS may reference assistant files with `pdfassistant-resource:<UUID>`. - Keep each `write_file_contents` or `append_file_contents` call under about 750 KB; reuse the latest file ID returned by each append call. - Set compression, downsample, page, and layout options only when the user requests specific rendering behavior; otherwise rely on the defaults. - Populate `output` with the filename the user wants. ## Parallelism Hint Call `convert_html_file_to_pdf_with_resources` once after all HTML chunks have been appended; do not convert incomplete documents in parallel. |
| convert_office_file_to_pdf | Convert Microsoft Word, Excel, or PowerPoint files on pdfRest into PDFs with optional compression, downsampling, accessibility tagging, and locale controls. ## Tool Usage Rules - Use the `convert_office_file_to_pdf` tool when the user uploads a Word, Excel, or PowerPoint document and needs a PDF version. - Pass the resource ID of the original Office file; route graphics, HTML, or email formats through their dedicated converters instead. - Turn on `tagged_pdf` when the user requests an accessible/Section 508 compliant PDF, and set `locale` for region-specific number or date formatting. - Adjust `compression` and `downsample` only when the user wants smaller files or higher fidelity; otherwise rely on pdfRest defaults. - Provide `output` whenever the user specifies how the resulting PDF should be named. |
| convert_pdf_file_to_markdown | Convert selected PDF pages into Markdown content, optionally inserting page-break comments and controlling the output filename. ## Tool Usage Rules - Use the `convert_pdf_file_to_markdown` tool when the user needs a Markdown version of their PDF, ideally for documentation or text editing. - Match the `pages` argument to the pages or ranges the user cares about; the tool honors commas, ranges, and the special `last` token. - Turn `page_break_comments` on when the user requests explicit HTML comment markers for page boundaries in the Markdown. - Set `output` whenever the user has a preferred filename for the exported Markdown file. |
| convert_pdf_to_bmp | Export specified PDF pages to BMP image files, picking the page range, resolution, and color model while honoring an optional filename prefix. ## Tool Usage Rules - Use the `convert_pdf_to_bmp` tool when the user wants bitmap previews or raster files in BMP format for every requested page. - Convert the user's page selection into the `pages` parameter (ranges, even/odd, reverse order are all supported). - Match the requested DPI to `resolution` within the allowed 12-2400 range so the output matches their detail expectations. - Specify `color_model` (rgb or gray) that best fits the destination workflow, and provide an `output` prefix when the user needs a custom filename sequence. |
| convert_pdf_to_excel | Convert a PDF on pdfRest into an editable Microsoft Excel workbook. ## Tool Usage Rules - Use the `convert_pdf_to_excel` tool when the user wants spreadsheet-friendly data extracted from a PDF. - Pass only PDF resource IDs; convert scans or Office files to PDF before calling this tool. - Clarify that this endpoint focuses on preserving tables and cell structure—choose text extraction if the user only needs plain text. - Honor requested filenames by setting `output`, or omit it to let pdfRest provide the default name. |
| convert_pdf_to_gif | Convert PDF pages into GIF images with control over the page range, DPI, and color model so each page becomes a GIF file. ## Tool Usage Rules - Use the `convert_pdf_to_gif` tool when the user asks for GIF exports of PDF pages for sharing or compatibility with lighter viewers. - The `convert_pdf_to_gif` tool outputs one GIF per PDF page; animated GIFs are not supported, so clarify that limitation if requested. - Translate the user's page choices (ranges, even/odd, etc.) into the `pages` argument exactly as requested. - Set `resolution` to match the desired DPI between 12 and 2400 so the exported frames meet quality needs. - Choose the appropriate `color_model` (rgb or gray) and supply `output` when the user wants a specific prefix for the numbered GIF files. |
| convert_pdf_to_jpeg | Render PDF pages as JPEG images, selecting the pages, DPI, and color space (including CMYK) before generating numbered files. ## Tool Usage Rules - Use the `convert_pdf_to_jpeg` tool when the user expects JPG exports for proofs, web publishing, or print-ready assets that benefit from JPEG compression and optional CMYK support. - Reflect the user's requested pages (including ranges or even/odd filters) in the `pages` argument. - Honor the DPI the user needs by setting `resolution` anywhere from 12 through 2400. - Pick the right `color_model` (rgb, cmyk, or gray) and state an `output` prefix if the user provided a desired filename base for the sequentially numbered JPGs. |
| convert_pdf_to_pdfa | Convert a PDF into one of the PDF/A archival standards (1b, 2b/2u, or 3b/3u) and optionally rasterize pages that throw compliance errors. ## Tool Usage Rules - Use the `convert_pdf_to_pdfa` tool when the user needs an archival-grade PDF/A (1b, 2b/2u, or 3b/3u) export for long-term preservation or compliance. - Ask which PDF/A version the user requires; if they do not specify, clarify the differences before calling. - Set `rasterize_if_errors_encountered` to `on` only when the user prefers to rasterize problematic pages instead of failing the conversion. - Provide `output` whenever the user wants a specific filename for the resulting PDF/A file. |
| convert_pdf_to_pdfx | Convert a PDF into one of the PDF/X print-ready standards (1a, 3, 4, or 6). ## Tool Usage Rules - Use the `convert_pdf_to_pdfx` tool when the user needs to deliver a print-ready PDF/X file for professional printing or press-submission requirements. - Ask which PDF/X version the user requires; if they do not specify, clarify the differences before calling. - Supply `output` whenever the user asks for a particular filename for the PDF/X export so the result matches their naming convention. |
| convert_pdf_to_png | Produce PNG raster images from specified PDF pages while managing the page selection, DPI, color model, and optional alpha channel. ## Tool Usage Rules - Use the `convert_pdf_to_png` tool when the user requests lossless PNG exports, especially when transparency (RGBA) might be needed. - Map the user's page list/ranges into the `pages` argument so the right slices of the PDF are rendered. - Set `resolution` within the allowed 12-2400 DPI range to meet their clarity requirements. - Choose between `color_model` values (rgb, rgba, gray) and provide an `output` prefix when the user has a preferred filename base for the numbered PNGs. |
| convert_pdf_to_powerpoint | Convert a PDF on pdfRest into a Microsoft PowerPoint presentation. ## Tool Usage Rules - Use the `convert_pdf_to_powerpoint` tool when the user needs presentation-ready slides derived from a PDF. - Provide only PDF resource IDs; convert other file types to PDF first so this tool has a valid input. - Remind the user that the resulting slides mirror the PDF layout and may need manual editing afterward. - Set `output` to the filename the user wants for the .pptx file whenever they mention it. |
| convert_pdf_to_tiff | Convert PDF pages to TIFF images and control how many pages, which DPI, and which color model (RGB, RGBA, CMYK, Lab, or Gray) are used. ## Tool Usage Rules - Use the `convert_pdf_to_tiff` tool when the user needs high-fidelity TIFF exports for imaging or archiving. - Set `pages` to match the user's requested range or selection of pages. - Choose a `resolution` (12-2400 DPI) that satisfies their sharpness or file-size priorities. - Pick the appropriate `color_model` and supply an `output` prefix when the user expects a specific filename base for the sequentially numbered TIFF files. |
| convert_pdf_to_word | Convert a PDF on pdfRest into an editable Microsoft Word (.docx) document. ## Tool Usage Rules - Use the `convert_pdf_to_word` tool when the user needs a PDF delivered as an editable Microsoft Word file. - Ensure the `id` points to a PDF that already lives on pdfRest; convert other formats to PDF first. - Set expectations that pdfRest preserves layout as closely as possible but may reflow complex designs. - Provide `output` when the user specifies the desired Word filename so the generated .docx matches their request. |
| convert_pdf_xfa_to_acroforms | Convert PDF XFA form content into AcroForm fields so the document is compatible with most PDF viewers and editors. ## Tool Usage Rules - Use the `convert_pdf_xfa_to_acroforms` tool when the user needs XFA forms converted into editable AcroForm fields for compatibility or processing. - Supply `output` if the user wants to rename the converted PDF so it matches their naming convention. - Trigger this tool before any workflows that require AcroForm support (annotations, signing, or form-filling bots) when the document currently contains XFA forms. |
| convert_webpage_to_pdf | Capture a live webpage (HTTP/HTTPS) as a PDF while controlling compression, downsampling, margins, orientation, and responsive layout options. ## Tool Usage Rules - Use the `convert_webpage_to_pdf` tool when the user supplies an HTTP(S) URL and explicitly wants a PDF capture of that page. - Call this tool only for HTML pages; if the server reports a non-HTML content type, choose another workflow or request a different URL. - Never pass pdfRest `/resource/...` URLs; upload that file and reference its ID instead. - Set compression, downsample, page, and layout options only when the user requests specific rendering behavior; otherwise rely on the defaults. - Populate `output` with the filename the user wants, and use text-extraction tools instead if they just need the page contents. |
| create_upload_session | Create a short-lived upload session for direct multipart file uploads to pdfAssistant. ## Tool Usage Rules - Use the `create_upload_session` tool when running in a CLI, automation, or other non-browser MCP environment where upload widgets cannot render. - Use the `create_upload_session` tool to upload local files by sending HTTP POST to the returned URL with multipart field `file` and the returned Bearer token. - The returned structured content contains `upload.url`, `upload.headers.Authorization`, `upload.token`, expiration details, a curl example, and security handling flags. - Treat the returned token as sensitive: do not persist it, expose it in logs, or reuse it after expiration. - After upload succeeds, use the returned file metadata from the upload response for downstream file-processing tools. - Use `show_upload_widget` only when the host can render widgets and the user wants an interactive in-chat upload flow. ## Parallelism Hint Call `create_upload_session` once and reuse the returned token for multiple independent uploads until it expires; upload requests may run in parallel if the client can send them safely. |
| create_zip_archive | Bundle multiple server-side files into a single .zip archive, optionally renaming the output. ## Tool Usage Rules - Use the `create_zip_archive` tool when the user wants to compress several existing resources into one downloadable ZIP package. - Supply every file's UUID in the `id` list to include them in the archive; you can gather these IDs from previous uploads or processing calls. - Provide `output` when the user specifies a specific name for the ZIP file rather than accepting the default. |
| digitally_sign_pdf_with_non_pfx | Digitally sign a PDF with separate certificate and private key files (DER/PEM), with optional logo and signature field customization. ## Tool Usage Rules - Use the `digitally_sign_pdf_with_non_pfx` tool whenever the user provides a certificate file plus its matching private key (DER or PEM) instead of a PFX bundle. - Confirm both resources exist in the chat and correspond to the same identity before calling. - Provide both the certificate and private key (DER or PEM) in a matched pair; only one credential combination is required per signing operation. - Decide whether to target an existing signature field or create a new one: provide `new_signature_field_location_settings` with page coordinates when creating a field, otherwise omit it and pass the existing field name via `digital_signature_field_name`. - Map every requested visual/metadata element (reason, contact info, timestamps, distinguished name, etc.) into `digital_signature_display_settings`, clearing individual values when the user wants them hidden. - When the user wants a logo pass the logo file ID and opacity in `logo_image`. Do not convert the file—just pass the logo file ID as provided. Any JPG, PNG, TIFF, or BMP image file is acceptable. - Translate user-specified dimensions or offsets into PDF units (1 inch = 72 units) before populating `new_signature_field_location_settings`. - Fill the `output` parameter whenever the user specifies how the signed PDF should be named. |
| digitally_sign_pdf_with_pfx | Digitally sign a PDF with a PFX/PKCS#12 credential and passphrase, optionally adding a logo and fully controlling the signature field's appearance and placement. ## Tool Usage Rules - Use the `digitally_sign_pdf_with_pfx` tool whenever the user supplies a .pfx/.p12 credential file plus its passphrase for signing. - Ensure both uploaded files exist in the chat and form a matching pair before calling; do not proceed if either resource is missing. - The system requires a PFX credential file plus a separate passphrase text file; upload both so the call can succeed, and remember only one credential combination is needed per signing. - Determine whether to sign an existing field or create a new one: include `new_signature_field_location_settings` with page coordinates (PDF units) when creating a field, otherwise omit it and supply the exact name of the existing field in `digital_signature_field_name`. - Capture every requested visual element in `digital_signature_display_settings` (reason, contact info, timestamps, distinguished name, etc.); set values to null/false when the user explicitly wants something hidden. - When the user wants a logo pass the logo file ID and opacity in `logo_image`. Do not convert the file—just pass the logo file ID as provided. Any JPG, PNG, TIFF, or BMP image file is acceptable. - Honor sizing and placement requests by translating the user's inch-based measurements into PDF units (1 inch = 72 units) inside `new_signature_field_location_settings`. - Always populate `output` when the user specifies the desired filename of the signed PDF. |
| export_pdf_form_data | Extract form field data from XFA or AcroForm PDFs into a structured data file (FDF, XFDF, XML, XDP, or XFD). ## Tool Usage Rules - Use the `export_pdf_form_data` tool when the user wants the form field values exported for reuse, inspection, or migration. - Choose the `data_format` that matches downstream systems (e.g., XML for general consumption or FDF/XFDF for Acrobat workflows). - Set `output` whenever the user specifies a desired filename for the resulting form data file. - Don't perform additional form-type pre-checks before calling this tool; if the export fails because the form type is incompatible, surface the error to the user and suggest trying a different data file. - When the user needs a sample data file or help understanding every form field, export to XML to produce that field-list file for them. |
| extract_files_from_zip | Extract every file inside an uploaded .zip archive (with optional password) and return resource IDs for downstream processing. ## Tool Usage Rules - Use the `extract_files_from_zip` tool when the user needs the individual PDF or resource files contained in a ZIP archive. - Provide `password` only when the archive is protected; otherwise omit it so the unzipping proceeds normally. - After the tool returns, mention the resource IDs for the unzipped files so later steps can reference them. |
| extract_image_files_from_pdf | Extract every embedded image from a PDF within the requested page ranges and optionally set the prefix of the resulting filenames. ## Tool Usage Rules - Use the `extract_image_files_from_pdf` tool when the user wants the original images extracted from specific PDF pages for reuse or inspection. - Reflect the user's page selection in `pages` (ranges, commas, and the special `last` token are all supported) to control which pages are scanned. - Set `output` whenever the user needs a custom prefix for the extracted image filenames. |
| extract_text_from_pdf | Extract all text from a PDF into either a downloadable .txt file or a JSON payload that can include per-word style and coordinate metadata. ## Tool Usage Rules - Use the `extract_text_from_pdf` tool when the user wants the PDF's textual contents returned to them (for example as a .txt or JSON download). - Default to `output_type=text`, which produces a .txt file for the user, and only switch to JSON when they explicitly request structured metadata. - Enable `word_style`, `word_coordinates`, or alternate `full_text` modes solely when delivering JSON output that benefits from those details. - Recommend running OCR before calling this tool if the PDF is images-only so the text layer actually exists. - Pass `preserve_line_breaks` and `output` exactly as the user specifies to match their formatting and naming preferences. - Do NOT call `read_file_contents` after `extract_text_from_pdf` unless there is a concrete downstream need (e.g., the user asked to view text inline, you must inspect contents to choose the next tool or parameters, or the contents will be transformed or passed into another workflow step). Avoid reading the file just to copy it into chat. - If the user only asks to extract text (even with formatting constraints like preserving line breaks), you MUST return the extracted text file and MUST NOT paste the contents unless they explicitly ask to see the text inline. - For a plain extraction request, respond with the output file only; do not summarize or quote the text unless the user explicitly asks to view it. |
| finalize_redaction_previews_in_pdf | Apply previously previewed text redactions so the specified content is permanently removed. ## Tool Usage Rules - Use the `finalize_redaction_previews_in_pdf` tool only **after** the preview step; run `preview_text_redaction_in_pdf` first even when the user declines to inspect the preview, then pass the preview response's `id` into this tool. - Choose an `rgb_color` for the final redaction marks that matches the user's visual preference (default black is acceptable when unspecified). - Provide `output` whenever the user wants the permanently redacted PDF saved with a custom name. - In general chats, do NOT finalize based solely on a preview call. Only call `finalize_redaction_previews_in_pdf` after explicit user approval or an explicit request to finalize without a preview. - In workflow creation chats, default to adding `finalize_redaction_previews_in_pdf` right after `preview_text_redaction_in_pdf` so the workflow stays atomic, but if the user explicitly asks to stop at the preview step, honor that and leave the finalization call out until they change their mind. |
| flatten_annotations_in_pdf | Collapse all annotation appearances into the page content and make them no longer editable. ## Tool Usage Rules - Use the `flatten_annotations_in_pdf` tool when the user needs annotations merged into their pages to prevent further edits while keeping the visual cues. - Set `output` whenever the user specifies the desired name for the resulting PDF. |
| flatten_layers_in_pdf | Flatten every layer in a PDF so that content from multiple layers is collapsed into a single layer. ## Tool Usage Rules - Use the `flatten_layers_in_pdf` tool when the user wants to collapse layered content for consistent viewing or printing across viewers that do not honor layers. - Supply the `output` parameter whenever the user requests a specific filename for the flattened file. |
| flatten_pdf_forms | Flatten XFA or AcroForm fields so they become part of the page content yet retain their displayed values. ## Tool Usage Rules - Use the `flatten_pdf_forms` tool when the user wants form fields rendered as static content to prevent further edits while preserving appearance and data. - Set `output` whenever the user requests a specific filename for the flattened form PDF. - Prefer flattening before distributing or printing form-filled documents to ensure compatibility with all viewers. |
| flatten_transparencies_in_pdf | Flatten all transparent objects in a PDF while controlling the resulting resolution. ## Tool Usage Rules - Use the `flatten_transparencies_in_pdf` tool when the user needs transparency collapsed for validation, printing, or compatibility reasons. - Translate the user's desired fidelity into the `quality` argument: choose `low` for monochrome proofs or web publishing, `medium` for desktop proofs and standard color printing, and high for final separations (default to medium when unspecified). - Provide the `output` name whenever the user specifies a target filename so the result matches their expectations. |
| get_file_metadata | Fetch metadata for any server-side file (name, MIME type, size, page count, etc.) without downloading the contents. ## Tool Usage Rules - Use the `get_file_metadata` tool when the user needs to know a file's name, MIME type, size, page count, or image-only flag. - Prefer this call over downloading the entire file when you merely need descriptive data for planning or validation. - Rely on the returned `FileCreate` object to seed downstream operations instead of re-querying `get_pdf_metadata`. |
| get_pdf_metadata | Request metadata and structural details about a PDF (tags, size, permissions, fonts, etc.) via the pdf-info endpoint. ## Tool Usage Rules - Use the `get_pdf_metadata` tool when the user asks for specific facts about their PDF's structure, permissions, or metadata fields. - Provide the list of `queries` (or `"all"`) that correspond to the requested properties and rely on `_normalize_queries` to deduplicate or expand `all`. - Review the returned JSON to display values such as page count, embedded files, or conformance claims before moving on to analysis or transformations. - If file metadata is present in chat (JSON payload or files list), treat it as authoritative metadata. Field mapping to queries: name->filename, page_count->page_count, image_only->image_only, restrict_permissions_set->restrict_permissions_set, requires_password_to_open->requires_password_to_open. Use those fields directly and do NOT call `get_pdf_metadata` just to re-fetch them. |
| html_string_to_pdf | Convert assistant-authored HTML into a PDF while resolving referenced pdfAssistant files by UUID. ## Tool Usage Rules - Use the `html_string_to_pdf` tool when you create HTML to fulfill a request for a PDF. - Include assistant files in HTML or CSS with `pdfassistant-resource:<UUID>`; do not use download URLs. - Set compression, downsample, page, and layout options only when the user requests specific rendering behavior; otherwise rely on the defaults. - Populate `output` with the filename the user wants. - Call `html_string_to_pdf` once for the finished document; do not first call `write_file_contents` or `convert_html_file_to_pdf`. ## Parallelism Hint Call `html_string_to_pdf` once for a finished document; do not split one document across concurrent calls. |
| import_form_data_to_pdf | Import data from an XFA/AcroForm data file into a PDF so its form fields reflect the provided values. ## Tool Usage Rules - Use the `import_form_data_to_pdf` tool when the user provides a form data file (FDF/XFDF/XML/XDP/XFD) to populate the PDF's fields. - Supply `output` when the user wants the populated PDF saved under a particular filename. - Call this tool directly without pre-checking the form type; if the operation fails due to an incompatible form format, surface the error to the user and suggest trying a different data file. - When the user lacks a data file or needs help formatting one, offer to export the form fields to XML with `export_pdf_form_data` so they can edit or review the structure before importing. |
| linearize_pdf | Configure a PDF for fast web view (linearize) so browsers can stream the file one page at a time, while optionally renaming the output. ## Tool Usage Rules - Use the `linearize_pdf` tool when the user wants to optimize a PDF for fast web view or streaming delivery. - Provide `output` whenever the user asks for a specific filename for the linearized PDF. |
| list_files | List files available to the current user with filters for recency, chat-linked files, and execution outputs. ## Tool Usage Rules - Use the `list_files` tool when an MCP client needs to discover user-accessible files before reading metadata or contents. - Use `since` to bound results to recent files; provide a timezone-aware timestamp and omit it to use the retention-window default. - Use `include_chat_files=False` when the user wants only directly owned files (excluding files discoverable through chat associations). - Use `only_execution_outputs=True` when the user asks for execution-produced artifacts; combine with `include_chat_files=False` for the strictest output-only listing. - Call the `list_files` tool once per filter set and then use returned UUIDs. |
| merge_pdf_files | Merge multiple PDF documents (or selected page ranges of PDF documents) into a single PDF, preserving the requested order and optional output filename. ## Tool Usage Rules - Use the `merge_pdf_files` tool when the user wants to combine two or more PDF resources or specific page ranges from PDF resources into one file. - Provide each merge entry with its `id` and the desired `pages` expression (ranges, reversing, `even`/`odd`, or `last` are all supported) so the backend knows which pages to pull. - Keep the files listed in the exact order you want them merged and rely on the tool to honor that sequence within the generated PDF. - Supply `output` whenever the user asks for a particular filename for the merged PDF. - Do NOT use `merge_pdf_files` with a single input; it requires at least two PDFs. |
| preview_text_redaction_in_pdf | Generate a visual preview of text redactions in a PDF so the user can review which areas will be hidden. ## Tool Usage Rules - Use the `preview_text_redaction_in_pdf` tool when the user wants to see the redactions rendered as red boxes before applying them. - Prefer a preset (email, phone number, date, SSN, etc.) whenever the requested value matches; otherwise ask for a literal string or JS-formatted regex and include it in `redactions`. - When the user asks to redact a category of information (e.g., addresses, names, or IDs) without providing a literal string or regex, first extract and inspect the document's text to see how that information is formatted. Automatically generate a regex from the observed patterns, use it in the redaction preview step, and clearly tell the user which pattern you applied. - When generating redaction regex, provide a JavaScript-formatted pattern (avoid PCRE or Python-style inline flags, e.g. `(?i)`), and send only the pattern text (no slashes or flags); express case-insensitive matches explicitly (e.g., `[Tt][Hh][Ii][Nn][Gg]`). - Always capture the preview response's `id`; pass it to `finalize_redaction_previews_in_pdf` later so the preview and finalization steps stay linked. - Provide `output` whenever the user wants the preview stored under a specific filename. - In general chats, treat this tool strictly as a preview: after generating the preview, STOP and ask for approval before calling `finalize_redaction_previews_in_pdf`. - Only proceed to `finalize_redaction_previews_in_pdf` in general chat when the user explicitly approves or explicitly asks to finalize without a preview. - When building workflows, include the `finalize_redaction_previews_in_pdf` call immediately after this preview step to keep the workflow atomic, unless the user explicitly requests stopping at the preview. |
| rasterize_pdf_pages | Flatten each PDF page into a raster image in a single output PDF, optionally renaming the output. ## Tool Usage Rules - Use the `rasterize_pdf_pages` tool when the user wants a fully raster PDF to avoid font/vector dependencies or match a precise visual reference. - Supply `output` if the user prefers a particular filename for the rasterized PDF. - Reserve rasterization for workflows where faithful page rendering matters more than searchability or editability. |
| read_file_contents | Read bytes from a server-side file, optionally limiting the range, and deliver the result as UTF-8 text or base64 for binary files. ## Tool Usage Rules - Use the `read_file_contents` tool when the user wants to preview, inspect, or stream part of a stored file. - Specify `offset` and `length` exactly when the user only needs a slice; omit them to read the remainder. - The tool auto-detects text files and returns UTF-8 strings; binary files come back as base64. |
| remove_open_password_from_restricted_pdf | Remove the open password from a PDF that remains restricted by a permissions password. ## Tool Usage Rules - Use the `remove_open_password_from_restricted_pdf` tool when the PDF is both restricted and encrypted. - Provide the current open password and the permissions password before finalizing, and set `output` when a custom filename is requested. - Call this tool when the user explicitly wants to decrypt the document (remove the open password) even though restrictions remain; do not use it if they only asked to lift restrictions without ending encryption. - The result is still restricted by permissions, so mention that the permissions password must still be supplied for future restricted actions. - Check `restrict_permissions_set` and `requires_password_to_open` in the `FileCreate` metadata to confirm both passwords apply before choosing this tool, rather than invoking `get_pdf_metadata` again. |
| remove_open_password_from_unrestricted_pdf | Remove the open password from an encrypted PDF that has no permissions restrictions. ## Tool Usage Rules - Use the `remove_open_password_from_unrestricted_pdf` tool when the user wants to decrypt a PDF that has no permissions password but is protected with an open password. - Provide the current open password and choose an `output` name when desired. - Confirm via the `FileCreate` metadata that `restrict_permissions_set` is false before calling this helper so you know it only has an open password; don't rerun `get_pdf_metadata`. |
| remove_restrictions_from_encrypted_pdf | Remove the permissions password and restrictions from a restricted, encrypted PDF while keeping the existing open password. ## Tool Usage Rules - Use the `remove_restrictions_from_encrypted_pdf` tool when the PDF has both an open password and a permissions password, and the user wants to keep the encryption but drop the restrictions. - Provide both the current permissions password and open password, and specify `output` when a custom name is required for the resulting encrypted-but-unrestricted file. - Don't call this tool when the user is trying to remove the open password entirely (use `remove_open_password_from_restricted_pdf` instead); ask for clarification if intent is unclear. - Make sure the `FileCreate` metadata lists both `restrict_permissions_set` and `requires_password_to_open` as true before choosing this tool, which avoids unnecessary metadata calls. |
| remove_restrictions_from_unencrypted_pdf | Remove the permissions password and all restrictions from an unencrypted PDF. ## Tool Usage Rules - Use the `remove_restrictions_from_unencrypted_pdf` tool when the user wants to unlock a PDF by removing its permissions password and restrictions. - Provide the current permissions password and set `output` if the user expects a particular filename. - Confirm the `FileCreate` metadata shows `restrict_permissions_set` true and `requires_password_to_open` false before invoking this tool to ensure the PDF is not encrypted. |