Servidor MCP

EasyPDF

io.github.Lorenzino69/easypdf
Productividad Público y accesible MCP 2025-11-25

Qué hace este MCP

Manipulates PDF files by compressing, merging, splitting, rotating, extracting, numbering, protecting, and unlocking pages.

add_page_numbers
Add page numbers
Add page numbers to a PDF.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'required': ['file'], 'properties': {'file': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'description': 'ChatGPT file identifier.'}, 'file_name': {'type': 'string', 'default': '', 'description': 'Original file name, e.g. report.pdf.'}, 'mime_type': {'type': 'string', 'default': '', 'description': 'MIME type of the file, e.g. application/pdf.'}, 'download_url': {'type': 'string', 'description': 'URL from which the file can be downloaded.'}}, 'description': 'The PDF to number.'}, 'position': {'type': 'string', 'default': 'bottom-center', 'description': '"bottom-center" (default), "bottom-left", "bottom-right", "top-center", "top-left" or "top-right".'}, 'start_number': {'type': 'integer', 'default': 1, 'description': 'Number printed on the first page. Default 1.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'additionalProperties': True}
compress_pdf
Compress PDF
Compress a PDF to reduce its file size while keeping it readable.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'required': ['file'], 'properties': {'file': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'description': 'ChatGPT file identifier.'}, 'file_name': {'type': 'string', 'default': '', 'description': 'Original file name, e.g. report.pdf.'}, 'mime_type': {'type': 'string', 'default': '', 'description': 'MIME type of the file, e.g. application/pdf.'}, 'download_url': {'type': 'string', 'description': 'URL from which the file can be downloaded.'}}, 'description': 'The PDF to compress (shared in the conversation).'}, 'quality': {'type': 'string', 'default': 'medium', 'description': '"low" (smallest file), "medium" (balanced, default) or "high" (best visual quality).'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'additionalProperties': True}
edit_pdf_text
Edit text in PDF
Change, correct or delete text INSIDE the original PDF, keeping its fonts, sizes, colors and layout. Use this whenever the user wants their existing PDF updated rather than a new document: fix a typo, change a date, amount, name or address, update a CV or a price list, translate a heading, remove a line. Read the PDF first, then pass one edit per change with `find` copied exactly as printed in the document. Dates and amounts written differently in the PDF (12/08/2026 vs August 12, 2026; 1240 vs 1,240.00) are matched and rewritten in the document's format.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'required': ['file', 'edits'], 'properties': {'file': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'description': 'ChatGPT file identifier.'}, 'file_name': {'type': 'string', 'default': '', 'description': 'Original file name, e.g. report.pdf.'}, 'mime_type': {'type': 'string', 'default': '', 'description': 'MIME type of the file, e.g. application/pdf.'}, 'download_url': {'type': 'string', 'description': 'URL from which the file can be downloaded.'}}, 'description': 'The PDF to edit (shared in the conversation).'}, 'edits': {'type': 'array', 'items': {'type': 'object', 'required': ['find', 'replace'], 'properties': {'find': {'type': 'string', 'description': 'Text to replace, copied exactly as it is printed in the PDF (same spelling, accents and punctuation). Keep it short: one line or a few words is most reliable.'}, 'page': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': '1-based page number to limit this change to. Omit to change every occurrence in the document.'}, 'replace': {'type': 'string', 'description': 'New text written in place of `find`. An empty string deletes the text.'}}, 'description': 'One change to write into the PDF.'}, 'description': 'Changes to write, applied in order. Each one replaces every\noccurrence of `find` (only on `page` when given).'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'additionalProperties': True}
extract_pages
Extract pages
Extract specific pages from a PDF into a new PDF (pages are 1-indexed).
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'required': ['file', 'page_numbers'], 'properties': {'file': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'description': 'ChatGPT file identifier.'}, 'file_name': {'type': 'string', 'default': '', 'description': 'Original file name, e.g. report.pdf.'}, 'mime_type': {'type': 'string', 'default': '', 'description': 'MIME type of the file, e.g. application/pdf.'}, 'download_url': {'type': 'string', 'description': 'URL from which the file can be downloaded.'}}, 'description': 'The source PDF.'}, 'page_numbers': {'type': 'array', 'items': {'type': 'integer'}, 'description': 'Pages to keep, e.g. [1, 3, 5]. Order is preserved.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'additionalProperties': True}
merge_pdfs
Merge PDFs
Merge several PDF files into a single document, in the given order.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'required': ['files'], 'properties': {'files': {'type': 'array', 'items': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'description': 'ChatGPT file identifier.'}, 'file_name': {'type': 'string', 'default': '', 'description': 'Original file name, e.g. report.pdf.'}, 'mime_type': {'type': 'string', 'default': '', 'description': 'MIME type of the file, e.g. application/pdf.'}, 'download_url': {'type': 'string', 'description': 'URL from which the file can be downloaded.'}}, 'description': 'A file shared in the ChatGPT conversation (user upload).'}, 'description': 'Two or more PDFs shared in the conversation, in the order to merge them.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'additionalProperties': True}
protect_pdf
Protect PDF with password
Protect a PDF with a password (AES-256 encryption).
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'required': ['file', 'password'], 'properties': {'file': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'description': 'ChatGPT file identifier.'}, 'file_name': {'type': 'string', 'default': '', 'description': 'Original file name, e.g. report.pdf.'}, 'mime_type': {'type': 'string', 'default': '', 'description': 'MIME type of the file, e.g. application/pdf.'}, 'download_url': {'type': 'string', 'description': 'URL from which the file can be downloaded.'}}, 'description': 'The PDF to protect.'}, 'password': {'type': 'string', 'description': 'Password that will be required to open the PDF.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'additionalProperties': True}
rotate_pdf
Rotate PDF
Rotate all pages, or selected pages, of a PDF.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'required': ['file', 'angle'], 'properties': {'file': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'description': 'ChatGPT file identifier.'}, 'file_name': {'type': 'string', 'default': '', 'description': 'Original file name, e.g. report.pdf.'}, 'mime_type': {'type': 'string', 'default': '', 'description': 'MIME type of the file, e.g. application/pdf.'}, 'download_url': {'type': 'string', 'description': 'URL from which the file can be downloaded.'}}, 'description': 'The PDF to rotate.'}, 'angle': {'type': 'integer', 'description': '90, 180 or 270 degrees (clockwise).'}, 'pages': {'anyOf': [{'type': 'array', 'items': {'type': 'integer'}}, {'type': 'null'}], 'default': None, 'description': 'Optional 1-indexed page numbers to rotate; omit to rotate every page.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'additionalProperties': True}
split_pdf
Split PDF
Split a PDF into several smaller PDFs.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'required': ['file'], 'properties': {'file': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'description': 'ChatGPT file identifier.'}, 'file_name': {'type': 'string', 'default': '', 'description': 'Original file name, e.g. report.pdf.'}, 'mime_type': {'type': 'string', 'default': '', 'description': 'MIME type of the file, e.g. application/pdf.'}, 'download_url': {'type': 'string', 'description': 'URL from which the file can be downloaded.'}}, 'description': 'The PDF to split.'}, 'pages_per_file': {'type': 'integer', 'default': 1, 'description': 'Number of pages in each output file (default 1: one file per page).'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'additionalProperties': True}
unlock_pdf
Remove PDF password
Remove the password protection from a PDF you own.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', 'required': ['file', 'password'], 'properties': {'file': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'description': 'ChatGPT file identifier.'}, 'file_name': {'type': 'string', 'default': '', 'description': 'Original file name, e.g. report.pdf.'}, 'mime_type': {'type': 'string', 'default': '', 'description': 'MIME type of the file, e.g. application/pdf.'}, 'download_url': {'type': 'string', 'description': 'URL from which the file can be downloaded.'}}, 'description': 'The password-protected PDF.'}, 'password': {'type': 'string', 'description': 'Its current password.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'additionalProperties': True}
Añadido
edit_pdf_text
1 de October de 2026 a las 02:45
Añadido
add_page_numbers
17 de September de 2026 a las 12:43
Añadido
unlock_pdf
17 de September de 2026 a las 12:43
Añadido
protect_pdf
17 de September de 2026 a las 12:43
Añadido
rotate_pdf
17 de September de 2026 a las 12:43
Añadido
extract_pages
17 de September de 2026 a las 12:43
Añadido
split_pdf
17 de September de 2026 a las 12:43
Añadido
merge_pdfs
17 de September de 2026 a las 12:43
Añadido
compress_pdf
17 de September de 2026 a las 12:43