MCP server
KDAN PDF
com.kdandoc.mcp/kdan-pdf-mcp
Checked 26 Oct 2026, 08:29 UTC · Connected to it and listed its tools
Upload, edit, compress, protect, redact, and compare PDFs with KDAN PDF in Claude and ChatGPT.
Working at last checkVerified publisher: kdandoc.comAbout 5,848 tokens per request once connected16 tools
https://mcp.kdandoc.com/mcp
At a glance
- Type
- MCP server
- Publisher
- kdandoc.com (verified by the MCP Registry)
- Status
- Working at last check
- Tools
- 16
- Token cost
- About 5,848 tokens per request
- Sets up in
- Claude Code, Claude Desktop, Codex, Gemini CLI, Cursor, VS Code, Antigravity, ChatGPT, OpenAI API, Grok
- Last checked
- 26 Oct 2026, 08:29 UTC
Connect it to your agent
Opens the app, which shows the server and asks you to confirm. For other apps, copy the setup below.
Claude Code
claude mcp add --transport http kdan-pdf-mcp https://mcp.kdandoc.com/mcp
Claude Desktop
Settings → Connectors → Add custom connector, and paste the URL.
Codex (config.toml)
[mcp_servers.kdan-pdf-mcp] url = "https://mcp.kdandoc.com/mcp"
Gemini CLI
{"mcpServers":{"kdan-pdf-mcp":{"httpUrl":"https://mcp.kdandoc.com/mcp"}}}
Cursor
{"mcpServers":{"kdan-pdf-mcp":{"url":"https://mcp.kdandoc.com/mcp"}}}
VS Code
{"servers":{"kdan-pdf-mcp":{"type":"http","url":"https://mcp.kdandoc.com/mcp"}}}
Antigravity
agy mcp add kdan-pdf-mcp https://mcp.kdandoc.com/mcp
ChatGPT
Settings → Apps & Connectors → Advanced settings: turn on Developer mode, then Create a connector and paste the URL. Which plans can do this varies.
OpenAI API (Responses tools)
{"type":"mcp","server_label":"kdan-pdf-mcp","server_url":"https://mcp.kdandoc.com/mcp","require_approval":"always"}
Grok (xAI API tools)
{"type":"mcp","server_label":"kdan-pdf-mcp","server_url":"https://mcp.kdandoc.com/mcp"}
Tools
batch_upload_pdf~542 tokens
Upload 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 forchange_passwordChanges accounts · ~253 tokens
Change 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_status~542 tokens
Check 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: - 'alreacompare_pdfs~350 tokens
MANDATORY 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 cocompress_pdf~258 tokens
Compress 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 creatcreate_upload_page~343 tokens
Display 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 usingdelete_pdf_pageDeletes data · ~468 tokens
Delete 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 REVERSget_latest_comparison~145 tokens
Re-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_info~176 tokens
Use 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 iget_pdf_page_images~340 tokens
Use 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 perget_pdf_status~114 tokens
Return current status of a PDF viewer job. Used internally by the viewer widget.list_redactable_line_text~199 tokens
Return 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 eachredact_by_text_range~782 tokens
Redact 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 redact.set_passwordChanges accounts · ~236 tokens
Add 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_pdf~654 tokens
Upload 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 fiview_pdf~446 tokens
Display 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 step
Browse
Related MCP servers
- EasyPDF
Edit PDF text in place, fonts and layout kept. Compress, merge, split, convert and translate PDFs. - DocuGrip
Find the right PDF tool for any task and get the link. Your document never reaches the server. - BlitzReels Video Editor
Create, edit, reframe, caption, organize, generate, and export short-form videos with BlitzReels. - Oh My Share
Publish HTML/code from your agent to openanthropic.com and get a shareable link. - MiOffice — AI-Powered Workspace Studio
125+ browser tools for PDF, Image, Video, Audio, AI, Scanner. Files never leave your device. - Fixmypdf
Privacy-first PDF tools over MCP: merge, split, rotate, delete, compress, protect, inspect. - DocMorph Studio
Render Mermaid diagrams, Markdown to PDF and outlines, image OCR, and media metadata cleanup. - Medigami Chatgpt
Medigami patient tools: rates, markups, denial codes, deadlines, overturn rates, procedure codes
Badge for your README
[](https://aptlynx.net/servers/com.kdandoc.mcp/kdan-pdf-mcp)
Listing text is written by the maker; AptLynx lists tools and does not vouch for them. Find another tool · Browse by topic · For agents