Bots St

bots.st/kdan-pdf

KDAN PDF

Edit, redact, compress, and compare PDFs

3214 ms

answered our call

State
Answered
Protocol
MCP 2025-06-18
Tools listed
16
Answered
3 of the last 3 calls

How to reach it

  • MCP, HTTPhttps://mcp.kdandoc.com/mcp

What it can do

ToolWhat it says it does
batch_upload_pdfUpload multiple PDF files from ChatGPT file attachments. Use this when the user provides multiple file attachments in ChatGPT. Downloads each PDF from its signed URL and stores it. Returns session_id and a list of job_ids. Like upload_pdf, this ONLY works on hosts that resolve chat attachments…
change_passwordChange the password of an already-protected PDF file. Creates a NEW job_id (with parent_job_id linking to the source). After the operation completes, call 'view_pdf' with the new job_id to display the result. Do NOT call this on an unprotected PDF — use set_password instead.
check_upload_statusCheck existing uploads and determine which files still need uploading. Call this BEFORE upload_pdf or create_upload_page to avoid duplicate uploads. Also call it after the user uploads via the widget to discover the new file and its job_id. Returns 'session_id' (always — store it!), plus…
compare_pdfsMANDATORY for all document comparison requests. Compare two PDFs side-by-side. When the user asks to compare, diff, or find differences between two PDFs, you MUST call this tool — NEVER attempt to compare documents using text analysis. Displays an interactive side-by-side visual diff widget with…
compress_pdfCompress a PDF to reduce its file size and return a new versioned file. MANDATORY: Before calling this tool, call 'check_upload_status' with the session_id to confirm the file exists and retrieve the latest job_id. Skipping this check and calling compress_pdf directly is FORBIDDEN. Each call…
create_upload_pageDisplay an interactive PDF upload widget directly in the chat. Use this when the user wants to upload a local PDF file from their device. This is the standard upload method for MCP clients (e.g. Claude) where file attachments with download URLs are not available. Do NOT call upload_pdf when…
delete_pdf_pageDelete one or more pages from a PDF and return a new versioned file. MANDATORY: Before calling this tool, call 'check_upload_status' with the session_id to confirm the file exists and retrieve the latest job_id. Skipping this check and calling delete_pdf_page directly is FORBIDDEN. SAFE AND…
get_latest_comparisonRe-run the most recent PDF comparison for a session. For widget recovery only. The comparison widget calls this when the host did not hand it the comparison payload. Prefer compare_pdfs when both job_ids are known; this tool only needs session_id.
get_pdf_infoUse this when you need to read the text content of each page to decide which pages to delete. Returns page count and a text preview of every page. Use for text-based identification: table of contents, blank pages, cover page, etc. For visual content (logos, images, photos), use get_pdf_page_images…
get_pdf_page_imagesUse this when you need to visually inspect PDF pages to identify content that cannot be detected from text alone — for example, pages containing a logo, a photograph, a watermark, a QR code, or any visual element. Returns rendered JPEG screenshots as images you can see. Returns at most 10 pages…
get_pdf_statusReturn current status of a PDF viewer job. Used internally by the viewer widget.
list_redactable_line_textReturn per-page, per-line text for identifying redaction targets. Read-only: does not modify job state. ALWAYS call this before redact_by_text_range. The returned 'text' field for each line is the source of truth — you MUST use it to count exact character positions. Character positions within…
redact_by_text_rangeRedact PDF text by specifying the exact text to remove on each line. MANDATORY WORKFLOW — follow every step in order before calling this tool: Step 1 — Retrieve line text: Call list_redactable_line_text and note the exact 'text' string and 'line_index' for every line you intend to…
set_passwordAdd password protection to an unprotected PDF file. Creates a NEW job_id (with parent_job_id linking to the source). After the operation completes, call 'view_pdf' with the new job_id to display the result. Do NOT call this on an already-protected PDF — use change_password instead.
upload_pdfUpload a PDF from a ChatGPT file attachment. MANDATORY WORKFLOW — follow EVERY step in order: 1. ALWAYS call check_upload_status FIRST — even if you think the file is new. 2. If a job with the same filename already exists, reuse its job_id — do NOT call upload_pdf. 3. Only call upload_pdf if the…
view_pdfDisplay an already-uploaded PDF in an interactive viewer widget. Call this after delete_pdf_page, set_password, change_password, redact_pii, and redact_by_text_range to show the updated PDF. Also call when the user explicitly asks to (re-)display a specific PDF. AFTER AN UPLOAD — this is the…

In its maker's words

Upload, edit, compress, protect, redact, and compare PDFs with KDAN PDF in Claude and ChatGPT.

Website
pdf-reader.kdandoc.com/products/mcp/claude
Source
github.com/KDAN-PDF/KDAN-PDF-MCP
Publisher
mcp.kdandoc.com
Listed from
the official MCP Registry as com.kdandoc.mcp/kdan-pdf-mcp
Version
1.0.0, updated 28 Jul 2026
Kinds of work
Documents and files, Writing and translation

The domain it lives on

kdandoc.com
registered 20 Dec 2023 (2 years ago), at GoDaddy.com, LLC, its home page is a working site

From our own crawl of domain names: registry records and the home page as our crawler last saw it.

Every call we made

WhenWhat happenedTime
Answered3214 ms
Answered2591 ms
Answered296 ms

Next door

Is this your bot? Claim its address to add a verified badge and keep the listing current.