MCP App Store

Overview

Connect pdf.net to edit, generate, and organize PDFs in ChatGPT. Your pdf.net library connects directly — no re-uploading every time. Edit PDFs in place: change text, fix dates, fill forms. Generate new PDFs from a prompt — invoices, contracts, proposals. Merge up to 20 PDFs, split by page range, compress, and convert to Word, Excel, or PowerPoint. Translate full documents while keeping the layout. Organize your library into folders. --- Working with PDFs can be slow. You convert to Word to edit, switch tools to merge, pay extra to translate, and dig through folders to find the file. pdf.net puts all of it in one chat. Edit PDFs in place — no Word roundtrip. Generate invoices, contracts, and proposals from a prompt. Merge up to 20 files, split by page, compress, and convert to Word, Excel, or PowerPoint. Translate full documents while keeping the layout. Your pdf.net library stays connected, so files are one message away.

Tools

apply_editor_command

ChatGPT
Apply a single editing command to the document in the editor session. command is a discriminated union keyed by type — each variant declares only its own fields. Supported types: set_paragraph_text, add_page, remove_page, move_page, duplicate_page, add_paragraph, remove_paragraph, set_paragraph_bounds. Use describe_editor_pages first to discover page and paragraph IDs. Optimistic: the call returns once the edit is queued; the editor applies queued edits asynchronously, so a subsequent describe_editor_pages may briefly observe pre-edit state. One command per call; prefer editing paragraph by paragraph over many consecutive calls. Requires an editorSessionId from open_pdf_document_editor. Returns an error if the editor was opened without a documentId and the user has not yet uploaded a file.

apply_editor_command

ChatGPT
Apply a single editing command to the document in the editor session. command is a discriminated union keyed by type — each variant declares only its own fields. Supported types: set_paragraph_text, add_page, remove_page, move_page, duplicate_page, add_paragraph, remove_paragraph, set_paragraph_bounds. Use describe_editor_pages first to discover page and paragraph IDs. Optimistic: the call returns once the edit is queued; the editor applies queued edits asynchronously, so a subsequent describe_editor_pages may briefly observe pre-edit state. One command per call; prefer editing paragraph by paragraph over many consecutive calls. Requires an editorSessionId from open_pdf_document_editor. The user can revert changes in the editor UI. Returns an error if the editor was opened without a documentId and the user has not yet uploaded a file.

compress_pdf_document

ChatGPT
Produce a compressed copy of an existing document as a new library document named "<original> (compressed)". The original is unchanged. Each call creates a new document; retries will produce duplicates.

compress_pdf_document

ChatGPT
Produce a compressed copy of an existing document as a new library document named "<original> (compressed)". The original is unchanged. Each call creates a new document; retries will produce duplicates.

convert_pdf_document

ChatGPT
Convert an existing document to another supported file format and return a temporary download URL (10 min). Does not create a new document in the library. A ZIP wrapper is returned when the conversion produces multiple files (e.g. PDF→PNG). Each call produces a new conversion artifact; retries will produce duplicates.

convert_pdf_document

ChatGPT
Convert an existing document to another supported file format and return a temporary download URL (10 min). Does not create a new document in the library. A ZIP wrapper is returned when the conversion produces multiple files (e.g. PDF→PNG). Each call produces a new conversion artifact; retries will produce duplicates.

copy_pdf_document

ChatGPT
Duplicate a document under a new name. The "destination" parameter controls placement: "current" (same folder as source, default) or "root". Folders cannot be copied. Each call creates a new document; retries will produce duplicates.

copy_pdf_document

ChatGPT
Duplicate a document under a new name. The "destination" parameter controls placement: "current" (same folder as source, default) or "root". Folders cannot be copied. Each call creates a new document; retries will produce duplicates.

create_folder

ChatGPT
Create a new folder. Each call creates a new folder; retries will produce duplicates.

create_folder

ChatGPT
Create a new folder. Each call creates a new folder; retries will produce duplicates.

delete_resource

ChatGPT
Move a document or folder to trash. Deleting a folder cascades - its full subtree (nested folders and documents) is trashed too. Trashed items are recoverable from the pdf.net web UI.

delete_resource

ChatGPT
Move a document or folder to trash. Deleting a folder cascades - its full subtree (nested folders and documents) is trashed too. Trashed items are recoverable from the pdf.net web UI.

describe_editor_pages

ChatGPT
Return page metadata, paragraph IDs, paragraph bounds (x, y, width, height, ascentOffset, descentOffset, lineCount), paragraph-level style (textAlign, lineHeight, textIndent), and full text content for the document open in the editor session. Coordinates use PDF user space (Y axis up; origin at first-baseline start); width is in text-space units. Text content is markdown: **bold**, *italic*, ^sup^ / ~sub~ (also <sup> / <sub>), and <span style="...">…</span> for per-run overrides of font-family, font-size (px), color, letter-spacing (px), -webkit-text-stroke, and vertical-align (px). Unstyled runs inherit the paragraph's first-character baseline. Optional pageNumbers filter; omit to get all pages. Requires an editorSessionId from open_pdf_document_editor. Returns an error if the editor was opened without a documentId and the user has not yet uploaded a file.

describe_editor_pages

ChatGPT
Return page metadata, paragraph IDs, paragraph bounds (x, y, width, height, ascentOffset, descentOffset, lineCount), paragraph-level style (textAlign, lineHeight, textIndent), and full text content for the document open in the editor session. Coordinates use PDF user space (Y axis up; origin at first-baseline start); width is in text-space units. Text content is markdown: **bold**, *italic*, ^sup^ / ~sub~ (also <sup> / <sub>), and <span style="...">…</span> for per-run overrides of font-family, font-size (px), color, letter-spacing (px), -webkit-text-stroke, and vertical-align (px). Unstyled runs inherit the paragraph's first-character baseline. Optional pageNumbers filter; omit to get all pages. Requires an editorSessionId from open_pdf_document_editor. Returns an error if the editor was opened without a documentId and the user has not yet uploaded a file.

download_pdf_document

ChatGPT
Get a pre-authenticated download URL for a stored document. The URL is valid for 10 minutes and single-use. No extra headers required.

download_pdf_document

ChatGPT
Get a pre-authenticated download URL for a stored document. The URL is valid for 10 minutes and single-use. No extra headers required.

find_in_documents

ChatGPT
Semantic search across the user's documents. Returns matching pages grouped by document. Optionally scope to specific documents.

find_in_documents

ChatGPT
Semantic search across the user's documents. Returns matching pages grouped by document. Optionally scope to specific documents.

generate_pdf_document

ChatGPT
Generate a brand-new PDF document from a natural-language prompt (1-2500 chars) describing what you want. Examples: "Sales invoice for Acme LLC, January 2026", "Bill of sale", "NDA agreement". Each call creates a new document; retries will produce duplicates.

generate_pdf_document

ChatGPT
Generate a brand-new PDF document from a natural-language prompt (1-2500 chars) describing what you want. Examples: "Sales invoice for Acme LLC, January 2026", "Bill of sale", "NDA agreement". Each call creates a new document; retries will produce duplicates.

get_profile

ChatGPT
Returns the authenticated user profile

get_profile

ChatGPT
Returns the authenticated user profile

import_file_from_url

ChatGPT
Fetch a publicly-accessible http(s) file and store it in the library as a new document. The URL must point directly at the file bytes — no authentication, no redirects, no login walls. Accepted formats: PDF, DOCX, DOC, TXT, XLSX, CSV, PPTX, PNG, JPG, GIF — non-PDF inputs are converted to PDF. Maximum size: 100 MB. Each call creates a new document; retries produce duplicates.

import_file_from_url

ChatGPT
Fetch a publicly-accessible http(s) file and store it in the library as a new document. The URL must point directly at the file bytes — no authentication, no redirects, no login walls. Accepted formats: PDF, DOCX, DOC, TXT, XLSX, CSV, PPTX, PNG, JPG, GIF — non-PDF inputs are converted to PDF. Maximum size: 100 MB. Each call creates a new document; retries produce duplicates.

list_document_tree

ChatGPT
List all documents and folders recursively as a JSON tree starting from the specified folder or root.

list_document_tree

ChatGPT
List all documents and folders recursively as a JSON tree starting from the specified folder or root.

merge_pdf_documents

ChatGPT
Concatenate 2-20 documents into a new library document. Page order follows the order of documentIds. Combined input size must not exceed 100 MB. Each call creates a new document; retries will produce duplicates.

merge_pdf_documents

ChatGPT
Concatenate 2-20 documents into a new library document. Page order follows the order of documentIds. Combined input size must not exceed 100 MB. Each call creates a new document; retries will produce duplicates.

move_resource

ChatGPT
Reparent a document or folder to another folder, or to root.

move_resource

ChatGPT
Reparent a document or folder to another folder, or to root.

open_in_web_editor

ChatGPT
Return a deep link to the pdf.net web editor for tasks not available via MCP: e-signing and signature requests by email; freehand, shape, highlight, and image annotations; PDF form-field filling; page numbering; password add/change/remove; public-link sharing and collaborator invites by email.

open_in_web_editor

ChatGPT
Return a deep link to the pdf.net web editor for tasks not available via MCP: e-signing and signature requests by email; freehand, shape, highlight, and image annotations; PDF form-field filling; page numbering; password add/change/remove; public-link sharing and collaborator invites by email.

open_pdf_document_editor

ChatGPT
Open an interactive PDF editor and start an editing session. The PREFERRED way to edit a single PDF — use it for ANY edit request. Returns an editorSessionId used by describe_editor_pages and apply_editor_command to read pages and apply edits. Two modes: (1) pass a documentId to open an existing document — editing tools are available immediately after the document loads; (2) omit documentId to show an empty editor with a file upload drop zone — the user must upload a file before editing tools become available. In both cases, the editor will update its context with document metadata once the document is ready. Page and paragraph IDs are scoped to this editor session and the specific document loaded in it; they are regenerated per session, so IDs from one session are never valid in another (including the source you copied from, or the same file opened in a separate session). After opening, always call describe_editor_pages in this session and edit using only the IDs it returns. Due to privacy policy we have no access to the chat history or to files the user uploaded directly to the host (e.g. attached to the conversation). If the user refers to such a file, open the editor without a documentId and ask them to re-upload it through this interface.

open_pdf_document_editor

ChatGPT
Open an interactive PDF editor and start an editing session. The PREFERRED way to edit a single PDF — use it for ANY edit request. Returns an editorSessionId used by describe_editor_pages and apply_editor_command to read pages and apply edits. Two modes: (1) pass a documentId to open an existing document — editing tools are available immediately after the document loads; (2) omit documentId to show an empty editor with a file upload drop zone — the user must upload a file before editing tools become available. In both cases, the editor will update its context with document metadata once the document is ready. Page and paragraph IDs are scoped to this editor session and the specific document loaded in it; they are regenerated per session, so IDs from one session are never valid in another (including the source you copied from, or the same file opened in a separate session). After opening, always call describe_editor_pages in this session and edit using only the IDs it returns. Due to privacy policy we have no access to the chat history or to files the user uploaded directly to the host (e.g. attached to the conversation). If the user refers to such a file, open the editor without a documentId and ask them to re-upload it through this interface.

open_pdf_document_manager

ChatGPT
Open an interactive document manager with folder navigation, thumbnails, and drag-and-drop upload. This is the PREFERRED way to add multiple files to the library for further editing. Also used to browse the library or organize files. Due to privacy policy we have no access to the chat history or to files the user uploaded directly to the host (e.g. attached to the conversation). If the user refers to such a file, ask them to re-upload it through this interface.

open_pdf_document_manager

ChatGPT
Open an interactive document manager with folder navigation, thumbnails, and drag-and-drop upload. This is the PREFERRED way to add multiple files to the library for further editing. Also used to browse the library or organize files. Due to privacy policy we have no access to the chat history or to files the user uploaded directly to the host (e.g. attached to the conversation). If the user refers to such a file, ask them to re-upload it through this interface.

rename_resource

ChatGPT
Rename a document or folder in place.

rename_resource

ChatGPT
Rename a document or folder in place.

split_pdf_document

ChatGPT
Produce one new library document per pageRanges entry, in order, named "<source> (part N)". Page numbers are 1-based. Each range is a single page ("3") or an inclusive "start-end" ("1-5", "10-12"); use "z" as the end to mean the last page ("6-z"). Up to 50 ranges per call. Source size must not exceed 100 MB. Each call creates new documents; retries will produce duplicates.

split_pdf_document

ChatGPT
Produce one new library document per pageRanges entry, in order, named "<source> (part N)". Page numbers are 1-based. Each range is a single page ("3") or an inclusive "start-end" ("1-5", "10-12"); use "z" as the end to mean the last page ("6-z"). Up to 50 ranges per call. Source size must not exceed 100 MB. Each call creates new documents; retries will produce duplicates.

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

App Stats

40

Tools

4

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily