{"name":"io.github.Lorenzino69/easypdf","slug":"lorenzino69-easypdf","title":"EasyPDF","description":"Edit PDF text in place, fonts and layout kept. Compress, merge, split, convert and translate PDFs.","url":"https://mcp.market/server/lorenzino69-easypdf","rating":null,"grade":"A","score":97,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-10-01T09:51:54.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T05:25:23.851Z","last_ok_at":"2026-11-04T05:25:23.851Z","latency_ms":177},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/Lorenzino69/easypdf-mcp","website":"https://www.easypdf.fr/ai-assistants","version":"1.1.0","remotes":[{"type":"streamable-http","url":"https://www.easypdf.fr/mcp"},{"type":"streamable-http","url":"https://www.easypdf.fr/chatgpt/mcp"}],"packages":[],"tools":[{"name":"add_page_numbers","description":"Add page numbers to a PDF.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"file":{"description":"The PDF to number.","properties":{"download_url":{"description":"URL from which the file can be downloaded.","type":"string"},"file_id":{"description":"ChatGPT file identifier.","type":"string"},"mime_type":{"default":"","description":"MIME type of the file, e.g. application/pdf.","type":"string"},"file_name":{"default":"","description":"Original file name, e.g. report.pdf.","type":"string"}},"required":["download_url","file_id"],"type":"object"},"position":{"default":"bottom-center","type":"string","description":"\"bottom-center\" (default), \"bottom-left\", \"bottom-right\", \"top-center\", \"top-left\" or \"top-right\"."},"start_number":{"default":1,"type":"integer","description":"Number printed on the first page. Default 1."}},"required":["file"],"additionalProperties":false}},{"name":"compress_pdf","description":"Compress a PDF to reduce its file size while keeping it readable.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"file":{"description":"The PDF to compress (shared in the conversation).","properties":{"download_url":{"description":"URL from which the file can be downloaded.","type":"string"},"file_id":{"description":"ChatGPT file identifier.","type":"string"},"mime_type":{"default":"","description":"MIME type of the file, e.g. application/pdf.","type":"string"},"file_name":{"default":"","description":"Original file name, e.g. report.pdf.","type":"string"}},"required":["download_url","file_id"],"type":"object"},"quality":{"default":"medium","type":"string","description":"\"low\" (smallest file), \"medium\" (balanced, default) or \"high\" (best visual quality)."}},"required":["file"],"additionalProperties":false}},{"name":"edit_pdf_text","description":"Change, correct or delete text INSIDE the original PDF, keeping its fonts, sizes, colors and layout.\n\nUse this whenever the user wants their existing PDF updated rather than a\nnew document: fix a typo, change a date, amount, name or address, update a\nCV or a price list, translate a heading, remove a line. Read the PDF first,\nthen pass one edit per change with `find` copied exactly as printed in the\ndocument. Dates and amounts written differently in the PDF (12/08/2026 vs\nAugust 12, 2026; 1240 vs 1,240.00) are matched and rewritten in the\ndocument's format.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"file":{"description":"The PDF to edit (shared in the conversation).","properties":{"download_url":{"description":"URL from which the file can be downloaded.","type":"string"},"file_id":{"description":"ChatGPT file identifier.","type":"string"},"mime_type":{"default":"","description":"MIME type of the file, e.g. application/pdf.","type":"string"},"file_name":{"default":"","description":"Original file name, e.g. report.pdf.","type":"string"}},"required":["download_url","file_id"],"type":"object"},"edits":{"items":{"description":"One change to write into the PDF.","properties":{"find":{"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.","type":"string"},"replace":{"description":"New text written in place of `find`. An empty string deletes the text.","type":"string"},"page":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"1-based page number to limit this change to. Omit to change every occurrence in the document."}},"required":["find","replace"],"type":"object"},"type":"array","description":"Changes to write, applied in order. Each one replaces every\noccurrence of `find` (only on `page` when given)."}},"required":["file","edits"],"additionalProperties":false}},{"name":"extract_pages","description":"Extract specific pages from a PDF into a new PDF (pages are 1-indexed).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"file":{"description":"The source PDF.","properties":{"download_url":{"description":"URL from which the file can be downloaded.","type":"string"},"file_id":{"description":"ChatGPT file identifier.","type":"string"},"mime_type":{"default":"","description":"MIME type of the file, e.g. application/pdf.","type":"string"},"file_name":{"default":"","description":"Original file name, e.g. report.pdf.","type":"string"}},"required":["download_url","file_id"],"type":"object"},"page_numbers":{"items":{"type":"integer"},"type":"array","description":"Pages to keep, e.g. [1, 3, 5]. Order is preserved."}},"required":["file","page_numbers"],"additionalProperties":false}},{"name":"merge_pdfs","description":"Merge several PDF files into a single document, in the given order.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"files":{"items":{"description":"A file shared in the ChatGPT conversation (user upload).","properties":{"download_url":{"description":"URL from which the file can be downloaded.","type":"string"},"file_id":{"description":"ChatGPT file identifier.","type":"string"},"mime_type":{"default":"","description":"MIME type of the file, e.g. application/pdf.","type":"string"},"file_name":{"default":"","description":"Original file name, e.g. report.pdf.","type":"string"}},"required":["download_url","file_id"],"type":"object"},"type":"array","description":"Two or more PDFs shared in the conversation, in the order to merge them."}},"required":["files"],"additionalProperties":false}},{"name":"protect_pdf","description":"Protect a PDF with a password (AES-256 encryption).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"file":{"description":"The PDF to protect.","properties":{"download_url":{"description":"URL from which the file can be downloaded.","type":"string"},"file_id":{"description":"ChatGPT file identifier.","type":"string"},"mime_type":{"default":"","description":"MIME type of the file, e.g. application/pdf.","type":"string"},"file_name":{"default":"","description":"Original file name, e.g. report.pdf.","type":"string"}},"required":["download_url","file_id"],"type":"object"},"password":{"type":"string","description":"Password that will be required to open the PDF."}},"required":["file","password"],"additionalProperties":false}},{"name":"rotate_pdf","description":"Rotate all pages, or selected pages, of a PDF.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"file":{"description":"The PDF to rotate.","properties":{"download_url":{"description":"URL from which the file can be downloaded.","type":"string"},"file_id":{"description":"ChatGPT file identifier.","type":"string"},"mime_type":{"default":"","description":"MIME type of the file, e.g. application/pdf.","type":"string"},"file_name":{"default":"","description":"Original file name, e.g. report.pdf.","type":"string"}},"required":["download_url","file_id"],"type":"object"},"angle":{"type":"integer","description":"90, 180 or 270 degrees (clockwise)."},"pages":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"default":null,"description":"Optional 1-indexed page numbers to rotate; omit to rotate every page."}},"required":["file","angle"],"additionalProperties":false}},{"name":"split_pdf","description":"Split a PDF into several smaller PDFs.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"file":{"description":"The PDF to split.","properties":{"download_url":{"description":"URL from which the file can be downloaded.","type":"string"},"file_id":{"description":"ChatGPT file identifier.","type":"string"},"mime_type":{"default":"","description":"MIME type of the file, e.g. application/pdf.","type":"string"},"file_name":{"default":"","description":"Original file name, e.g. report.pdf.","type":"string"}},"required":["download_url","file_id"],"type":"object"},"pages_per_file":{"default":1,"type":"integer","description":"Number of pages in each output file (default 1: one file per page)."}},"required":["file"],"additionalProperties":false}},{"name":"unlock_pdf","description":"Remove the password protection from a PDF you own.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"file":{"description":"The password-protected PDF.","properties":{"download_url":{"description":"URL from which the file can be downloaded.","type":"string"},"file_id":{"description":"ChatGPT file identifier.","type":"string"},"mime_type":{"default":"","description":"MIME type of the file, e.g. application/pdf.","type":"string"},"file_name":{"default":"","description":"Original file name, e.g. report.pdf.","type":"string"}},"required":["download_url","file_id"],"type":"object"},"password":{"type":"string","description":"Its current password."}},"required":["file","password"],"additionalProperties":false}}],"scan":{"score":97,"grade":"A","scanned_at":"2026-10-03T05:51:08.881Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-03T05:51:08.819Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 267ms (auth required)"]},"poisoning":{"score":15,"max":15,"notes":["9 tool descriptions checked"]},"auth":{"score":15,"max":15,"notes":["OAuth resource metadata advertised on 401"]},"maintenance":{"score":15,"max":15,"notes":["last push 2 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://www.easypdf.fr/mcp","reachable":true,"authRequired":true,"latencyMs":267,"authScheme":"oauth"},{"url":"https://www.easypdf.fr/chatgpt/mcp","reachable":true,"authRequired":false,"latencyMs":874,"serverInfo":{"name":"EasyPDF","version":"3.4.0"}}],"packages":[],"repo":{"found":true,"owner":"Lorenzino69","repo":"easypdf-mcp","archived":false,"pushedAt":"2026-10-01T09:51:54Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/42694506?v=4","ownerCreatedAt":"2018-08-25T10:49:31Z","license":"MIT"},"icon":{"url":"https://www.easypdf.fr/assets/icon-easypdf.png","source":"registry","width":512,"height":512},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-10-01T09:51:54.000Z","score":23}}}},"grade_history":[{"kind":"restore","fromGrade":"C","toGrade":"A","reason":"score 97","createdAt":"2026-10-03T05:51:10.950Z"}],"reviews":[]}