MCP App Store
by KeenEthics

Overview

Work with PDFs directly in chat. Upload a file to compress, merge, split, or convert it (PDF, Word, Excel, PowerPoint, or images). You can also protect files by adding watermarks, organize them with page numbers, and extract text from scanned documents using OCR. Designed for everyday document tasks, iLovePDF helps you manage files quickly and securely.

Tools

ilovepdf

ChatGPT
iLovePDF — Universal PDF Tool One call opens the widget. The widget handles upload, processing, and results. Do NOT call this tool a second time unless the user explicitly asks to apply another operation to a prior result (tool chaining). Collect required chat parameters upfront (see section below), then pass them in options of this single call. --- File-source routing | Situation | Tool to call | |---|---| | User has file attachments (with or without URLs) | Use ilovepdf_attach with attached_files + filenames | | User has URLs only (zero attached files) | Use this ilovepdf tool with files | | No files and no URLs | Call this tool with just tool (or no params) | Calling ilovepdf when attached files are present silently discards the attachment — FORBIDDEN. --- Tool-intent routing (language-agnostic) Detect the operation from the user's message in ANY language. Non-English ≠ "no tool specified." - Compression intent in any language → tool="compress-pdf" - Apply equivalent mapping for all other operations. - Omit tool ONLY when the user gives absolutely no indication of the desired operation. Requests for an unsupported operation (IMPORTANT) The table above is the COMPLETE list of supported operations. If the user asks for a PDF operation that is NOT in that table (e.g. removing/unlocking a password, redacting, editing text, e-signing), do NOT call this tool at all — calling it with no tool (or an invalid one) just opens a generic widget with no matching option, which is confusing since it never explains why. Instead, reply in chat that the requested operation is not currently supported, and only call the tool if the user asks for a DIFFERENT, supported operation. --- Call behavior | Scenario | Action | |---|---| | Tool specified | Call with tool. Then send one short post-call narration sentence. | | No tool, no files | Call with no params. Then send one short post-call narration sentence. | | URL(s) + tool | Call with tool + files. Then send one short post-call narration sentence. | | URL(s) + no tool | Call with files only. Then send one short post-call narration sentence. | After the call: WAIT. The widget is self-contained. Do NOT call this tool again unless the user requests tool chaining. Chat text rule (IMPORTANT): ALWAYS send a short, neutral post-call narration sentence that summarizes what you initiated (tool and, when present, key options). Example: "I opened the iLovePDF widget with split-pdf and pages=2-5; tell me if you want different settings." If tool/options are unknown, use a generic summary like "I opened the iLovePDF widget." You CANNOT observe what the user does inside the widget. NEVER tell the user to click a button, press "Continue", wait, or "see the results" - the widget handles processing and shows results entirely in-card. Do NOT narrate in-widget steps or claim processing/results completed. --- Applying another operation to a previous result (tool chaining) — MANDATORY CRITICAL: When the user asks to apply another operation to a file already processed in this chat, you MUST call this tool again immediately. This is ALWAYS possible. The tool is ALWAYS available for chaining Trigger phrases (non-exhaustive): "now convert that to JPG", "then OCR it", "use that result with merge", "apply pdf-to-jpg on the compressed result", "now split those", "add a watermark to the result", "compress these now". FORBIDDEN responses when the user requests chaining — NEVER say any of these: - ❌ "The tool is not available right now / at this moment" - ❌ "I can't perform that operation on the previous result" - ❌ "Please re-upload / re-attach / share the file / provide a URL again" - ❌ "I don't have access to the previous file" - ❌ Any refusal or hesitation — if the user references a previously processed result, CALL the tool ALWAYS: - ✅ Call the tool immediately with the new operation - ✅ Set tool to the operation the user requested - ✅ Pass the EXACT uploaded_files objects from the PREVIOUS PROCESSED OUTPUT, unchanged — round-tri…

ilovepdf_attach

ChatGPT
iLovePDF — File Attachment Handler Invocation condition: The user attached one or more files to the chat message (with or without URLs). Do NOT invoke when only URLs are present and zero files are attached — use ilovepdf instead. One call opens the widget. The widget handles processing and results. Do NOT call this tool a second time unless the user explicitly asks to apply another operation to a prior result (tool chaining). Collect required chat parameters upfront (see section below), then pass them in options of this single call. Exception — combining files across turns: if you already have uploaded_files from a PREVIOUS call to this tool (e.g. a PDF uploaded last turn) and the user now attaches another required file in a NEW message (e.g. a watermark image), call this tool AGAIN — passing the PREVIOUS uploaded_files array together with the new attached_files in ONE call. This combines both files into a single task server-side. Do NOT ask the user to resend everything together; combine the reference you already have with the new attachment yourself. --- Input composition Always pass ALL of the following in a single call: 1. attached_files — populated automatically by the platform for each physically attached file. REQUIRED. 2. filenames — real filenames in the SAME ORDER as attached_files. REQUIRED. Examples: ["report.pdf"], ["invoice.pdf", "contract.docx"] 3. files — [{url, filename}] for every URL found in the same message alongside attachments. Include ALL URLs. 4. uploaded_files — OPTIONAL. Only when combining a file from a previous turn with a new attachment now (see "Exception — combining files across turns" above). Round-trip the exact objects a previous call to this tool returned. FORBIDDEN: calling with attached files while dropping URLs in the same message. FORBIDDEN: calling ilovepdf with a URL when the user also has attached files (silently discards attachment). --- Tool-intent routing (language-agnostic) Detect the operation from the user's message in ANY language. Non-English ≠ "no tool specified." Omit tool ONLY when the user gives absolutely no indication of the desired operation. Requests for an unsupported operation (IMPORTANT) The table above is the COMPLETE list of supported operations. If the user asks for a PDF operation that is NOT in that table (e.g. removing/unlocking a password, redacting, editing text, e-signing), do NOT call this tool at all — calling it with no tool (or an invalid one) just opens a generic widget with no matching option, which is confusing since it never explains why. Instead, reply in chat that the requested operation is not currently supported, and only call the tool if the user asks for a DIFFERENT, supported operation. --- After calling WAIT. The widget is self-contained. Do NOT call this tool again unless the user requests tool chaining or cross-turn file combination. Chat text rule (IMPORTANT): ALWAYS send a short, neutral post-call narration sentence that summarizes what you initiated (tool and, when present, key options). Example: "I opened the iLovePDF widget with watermark and mode=image; tell me if you want different settings." If tool/options are unknown, use a generic summary like "I opened the iLovePDF widget." You CANNOT observe what the user does inside the widget. NEVER tell the user to click a button, press "Continue", wait, or "see the results" - the widget handles processing and shows results entirely in-card. Do NOT narrate in-widget steps or claim processing/results completed. --- Applying another operation to a previous result (tool chaining) — MANDATORY CRITICAL: When the user asks to apply another operation to a file already processed in this chat, you MUST call this tool again immediately. This is ALWAYS possible. The tool is ALWAYS available for chaining Trigger phrases (non-exhaustive): "now convert that to JPG", "then OCR it", "use that result with merge", "apply pdf-to-jpg on the compressed result", "now split those", "add a watermark to the result", "com…

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

App Stats

2

Tools

2

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily