apply_editor_command
ChatGPTApply 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
ChatGPTApply 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
ChatGPTProduce 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
ChatGPTProduce 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
ChatGPTConvert 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
ChatGPTConvert 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
ChatGPTDuplicate 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
ChatGPTDuplicate 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
ChatGPTCreate a new folder. Each call creates a new folder; retries will produce duplicates.
create_folder
ChatGPTCreate a new folder. Each call creates a new folder; retries will produce duplicates.
delete_resource
ChatGPTMove 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
ChatGPTMove 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
ChatGPTReturn 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
ChatGPTReturn 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
ChatGPTGet 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
ChatGPTGet 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
ChatGPTSemantic search across the user's documents. Returns matching pages grouped by document. Optionally scope to specific documents.
find_in_documents
ChatGPTSemantic search across the user's documents. Returns matching pages grouped by document. Optionally scope to specific documents.
generate_pdf_document
ChatGPTGenerate 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
ChatGPTGenerate 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
ChatGPTReturns the authenticated user profile
get_profile
ChatGPTReturns the authenticated user profile
import_file_from_url
ChatGPTFetch 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
ChatGPTFetch 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
ChatGPTList all documents and folders recursively as a JSON tree starting from the specified folder or root.
list_document_tree
ChatGPTList all documents and folders recursively as a JSON tree starting from the specified folder or root.
merge_pdf_documents
ChatGPTConcatenate 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
ChatGPTConcatenate 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
ChatGPTReparent a document or folder to another folder, or to root.
move_resource
ChatGPTReparent a document or folder to another folder, or to root.
open_in_web_editor
ChatGPTReturn 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
ChatGPTReturn 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
ChatGPTOpen 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
ChatGPTOpen 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
ChatGPTOpen 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
ChatGPTOpen 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
ChatGPTRename a document or folder in place.
rename_resource
ChatGPTRename a document or folder in place.
split_pdf_document
ChatGPTProduce 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
ChatGPTProduce 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.