pdf4me-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| API_KEY | Yes | Your PDF4me API key. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| add_attachment_to_pdfA | Embed one or more files as attachments into a PDF using the PDF4me AddAttachmentToPdf API. Provide the path to the source PDF and a list of local file paths to attach (docName is each file's basename). Optional: request_doc_name for the API docName field (defaults to the PDF's filename) and output path. |
| add_barcode_to_pdfA | Draw a barcode or QR code onto PDF pages using the PDF4me addbarcode API (/api/v2/addbarcode). Requires local pdf_file_path, barcode text, barcodeType (e.g. qrCode, code128), pages spec (e.g. all, 1, 1-3, 1,3,5), alignX (Left/Center/Right), alignY (Top/Middle/Bottom), hideText. Optional: size/margins in MM or points, opacity, displayText, showOnlyInPrint, isTextAbove. |
| add_form_fields_to_pdfA | Add an interactive form field (TextBox or CheckBox) to a PDF via PDF4me AddFormField (/api/v2/AddFormField). Provide the PDF path, field name, initial value, position (X/Y in PDF units), Size, pages spec, and formFieldType. Saves the resulting PDF to disk. |
| add_html_header_footer_to_pdfA | Add HTML as header, footer, or both on PDF pages using PDF4me AddHtmlHeaderFooter (/api/v2/AddHtmlHeaderFooter). html_content is a plain HTML string (not base64). header_footer_location is Header, Footer, or Both. Optional: pages (empty string = all), skip_first_page, pixel margins, output path. |
| add_image_stamp_to_pdfB | Stamp or watermark a PDF with an image using PDF4me ImageStamp (/api/v2/ImageStamp). Provide pdf_file_path, image_file_path (PNG/JPG/etc.), alignX (Left/Center/Right), alignY (Top/Middle/Bottom). Optional: pages, size in MM or pixels, margins, opacity, is_background, show_only_in_print, output path. |
| add_image_watermark_to_imageA | Overlay a watermark image on a source image via PDF4me AddImageWatermarkToImage (/api/v2/AddImageWatermarkToImage). Provide image_file_path, watermark_image_file_path, and position (topright, topleft, bottomright, bottomleft, centralhorizontal, diagonal, centralvertical, custom). Optional: opacity (0.0–1.0), horizontal/vertical offset, position_x/y for custom, rotation (degrees), output path. |
| add_margin_to_pdfA | Add margins to a PDF using the PDF4me AddMargin API. Provide a local PDF path and optional margins in millimeters (margin_left/right/top/bottom, 0-100). Saves the resulting PDF to disk. |
| add_page_number_to_pdfA | Add page numbers to a PDF via PDF4me POST /api/v2/AddPageNumber. When helping a user, explain how to set page_number_format before calling: use the literal character # for the current page (1, 2, 3, …) and the literal substring {1} for the total page count. Those are placeholders, not Python format specifiers—pass them exactly as strings (e.g. '# of {1}' renders as '1 of 10', 'Page #' as 'Page 1', '# / {1}' as '1 / 10', '(#)' as '(1)', '#' alone as '1'). align_x must be left, center, or right; align_y must be top, middle, or bottom. Optional: margin_x_in_mm and margin_y_in_mm (integers 0–100 mm from the chosen edge), font_size (8–72), is_bold, is_italic, skip_first_page. Requires a local pdf_file_path; output defaults next to the source file. |
| add_text_stamp_to_pdfA | Add a text stamp or watermark to a PDF using PDF4me Text Stamp (/api/v2/Stamp). Provide pdf_file_path, stamp text, pages (e.g. all, 1, 1-3), alignX/alignY, font and margin settings. Uses API field isItalics (italic). Saves the stamped PDF to disk. |
| add_text_watermark_to_imageB | Add a text watermark to an image via PDF4me AddTextWatermarkToImage (/api/v2/AddTextWatermarkToImage). image_file_path, watermark_text, text_position (e.g. bottomleft, diagonal, custom), text_font_family, is_underline, is_italic; optional font size, colour, bold, opacity, rotation, position_x/y. |
| classify_documentB | Classify a PDF by content via PDF4me ClassifyDocument (/api/v2/ClassifyDocument). pdf_file_path; optional request_doc_name and output_dir. Saves classified_document.json. |
| compress_imageA | Compress an image via PDF4me CompressImage (/api/v2/CompressImage). image_file_path, image_type (JPG, PNG, WebP), compression_level (Max, Medium, Low); optional doc_name, output_dir, output_file_name. Uses async 202 polling when applicable. |
| compress_pdfA | Compress a PDF file using the PDF4me API to reduce file size. Provide the local file path to the PDF. Choose an optimization profile: Web (fast download), Print (high-quality), or Screen (screen viewing). Optionally specify an output directory and output file name. |
| convert_html_to_pdfA | Convert a local HTML file to PDF using the PDF4me ConvertHtmlToPdf API. Provide the file path to the HTML document. Configure layout, page format, scale, margins, print background, and header/footer. Optionally set output directory and output file name. |
| convert_image_formatA | Convert a local image between formats (BMP, GIF, JPG, PNG, TIFF) using the PDF4me ConvertImageFormat API. Provide the local image path plus current and new format. Supports sync/async processing and optional output directory and output file name. |
| convert_json_to_excelA | Convert a local JSON file to Excel (XLSX) using the PDF4me ConvertJsonToExcel API. Provide the file path to UTF-8 JSON. Options: worksheet_name, title formatting, number/date conversion and formats, ignore_null_values, first_row/first_column (1-based), and optional output path. |
| convert_md_to_pdfA | Convert a local Markdown file (.md) to PDF using the PDF4me ConvertMdToPdf API. Provide the file path to the Markdown file and output_dir where the PDF will be saved. Long HTTP timeouts on requests. complete. Optional output file name (defaults to .pdf). |
| convert_ocr_pdfA | Convert a PDF to a searchable, editable PDF using the PDF4me ConvertOcrPdf API (OCR). Provide the local path to the input PDF, quality (Draft or High), ocr_when_needed, and language (e.g. eng). The API request body only includes docContent, docName, qualityType, ocrWhenNeeded, and language. If the API returns 202, the tool polls the Location URL until the PDF is ready. Optional output directory and output file name. |
| convert_pdf_to_excelA | Convert a local PDF file to Excel (XLSX) using the PDF4me ConvertPdfToExcel API. Provide the file path to the PDF. Options: quality (Draft/High), merge_all_sheets, language, OCR when needed, and optional output path. Output is always XLSX. |
| convert_pdf_to_pdfaA | Convert a PDF file to PDF/A (archival ISO format) using the PDF4me PdfA API. Provide the local file path to the PDF. Choose compliance (e.g. PdfA1b), allow_upgrade / allow_downgrade, and optional output path. |
| convert_pdf_to_powerpointA | Convert a local PDF file to PowerPoint (PPTX) using the PDF4me ConvertPdfToPowerPoint API. Provide the file path to the PDF. Options: quality (Draft/High), language, OCR when needed, merge_all_sheets, and optional output path. Output is always PPTX. |
| convert_pdf_to_wordA | Convert a local PDF file to Word (DOCX) using the PDF4me ConvertPdfToWord API. Provide the file path to the PDF. Options: quality (Draft/High), merge_all_sheets, language, OCR when needed, and optional output path. Output is always DOCX. |
| convert_to_pdfA | Convert a local document file (for example DOCX, PPTX, XLSX, images, or text formats) to PDF using the PDF4me ConvertToPdf API. Provide the local file path, plus optional output directory and output file name. |
| convert_url_to_pdfA | Convert a web page to PDF using the PDF4me ConvertUrlToPdf API. Required input is only web_url (https://...); no local file path is read. Optional: layout, page format, margins, scale, print background, auth (NoAuth or credentials), output_dir/output_file_name for where to save the PDF (default file name output.pdf). |
| convert_visio_to_pdfB | Convert a local Visio file (.vsdx/.vsd/.vsdm) to PDF using the PDF4me ConvertVisio API. Supports PDF options (compliance, page range, hidden pages, foreground/toolbar, auto-fit), sync/async processing, and optional output directory/file name. |
| convert_word_to_pdf_formB | Convert a local Word document (DOCX) to a PDF form with fillable fields using the PDF4me ConvertWordToPdfForm API. Provide the file path to the DOCX file. Optionally specify async polling and output directory/file name. |
| create_barcodeA | Create a standalone barcode or QR code image (PNG) using the PDF4me Create Barcode API. Pass the text to encode and barcodeType (e.g. qrCode, code128, dataMatrix, ean13, upcA). hideText hides the human-readable label. Saves the file and returns the path. |
| create_images_from_pdfA | Render PDF pages to image files using the PDF4me CreateImages API (POST /api/v2/CreateImages). Controls width in pixels, image format (jpeg, png, tiff, etc.), and page selection (top-level pageNrs plus imageAction.PageSelection.PageNrs when the expression parses to integers; use 'all' for all pages). Writes one file per page to output_dir (defaults to the input PDF directory). |
| create_swiss_qr_billA | Create the Swiss QR bill payment part on a PDF using the PDF4me CreateSwissQrBill API (POST /api/v2/CreateSwissQrBill). Required inputs per OpenAPI: docContent, document.Name, iban, crName, crAddressType. Enums match backend: address S|K; currency CHF|EUR; language German|French|Italian|English; referenceType QRR|SCOR|NON; seperatorLine LineWithScissor|Line|None (string None). All other schema fields are optional (amount, creditor/debtor address lines, reference, etc.). Reads the source PDF from pdf_file_path (docContent base64); optional document_name overrides document.Name (defaults to the file basename). Output PDF name is output_file_name if set, otherwise 'swiss_qr_bill.pdf'. Saves next to the PDF unless output_dir is set; optional isAsync / 202 polling. |
| create_zugferd_invoiceA | Create a ZUGFeRD e-invoice using PDF4me CreateZugferdInvoice API (POST /api/v2/CreateZugferdInvoice). Supports inputFormat XML/JSON/CSV, outputMode XmlWithPdf or XmlOnly, conformance level, and language. For XmlWithPdf, provide source PDF via source_pdf_path (docContent/document.Name are derived from the file). Saves output as PDF or XML and returns output metadata. |
| crop_imageA | Crop an image via PDF4me CropImage (/api/v2/CropImage). Choose crop_type Border or Rectangle. Border: set left/right/top/bottom border in pixels. Rectangle: set upper_left_x/y and width/height. |
| delete_blank_pages_from_pdfC | Delete blank pages from a PDF via PDF4me DeleteBlankPages (/api/v2/DeleteBlankPages). Provide pdf_file_path and delete_page_option (NoTextNoImages, NoText, NoImages). Saves cleaned PDF to disk. |
| delete_pdf_pagesB | Remove pages from a PDF using the PDF4me DeletePages API. Provide the local PDF path and pageNumbers (e.g. '2', '1,3,5', or '2-4'). Optionally set output directory and output file name. |
| disable_tracking_changes_in_wordA | Disable Word Track Changes via PDF4me /api/v2/DisableTrackingChangesInWord. Input is a local Word file path (.docx or .doc) which is sent as docContent Base64; docName defaults to the input filename. Saves a Word output file with track changes disabled. |
| enable_tracking_changes_in_wordA | Enable Word Track Changes via PDF4me /api/v2/EnableTrackingChangesInWord. Input is a local Word file path (.docx or .doc) which is sent as docContent Base64; docName defaults to the input filename. Saves a Word output file with track changes enabled. |
| extract_attachment_from_pdfA | Extract embedded file attachments from a PDF via PDF4me ExtractAttachmentFromPdf (/api/v2/ExtractAttachmentFromPdf). pdf_file_path; optional output_dir (defaults next to PDF). Saves extracted_attachments.json when JSON, decodes outputDocuments to files, or saves/extracts ZIP. |
| extract_form_data_from_pdfA | Extract all PDF form fields and values via PDF4me /api/v2/ExtractPdfFormData. Input is pdf_file_path; optional request_doc_name and output_dir. Saves extracted_form_data.json with the full API response. |
| extract_pages_from_pdfA | Extract selected pages from a PDF via PDF4me /api/v2/Extract. Inputs: pdf_file_path and page_numbers (e.g. '1,3,5' or '1-5,10'). Optional request_doc_name and output path settings. |
| extract_resourcesA | Extract text and/or embedded images from a PDF via PDF4me ExtractResources (/api/v2/ExtractResources). pdf_file_path, extract_text, extract_images; optional output_dir (defaults next to PDF). Writes extracted_resources.json, extracted_text.txt when text is extracted, and image files. |
| extract_table_from_pdfA | Extract tables from a PDF via PDF4me ExtractTableFromPdf (/api/v2/ExtractTableFromPdf). pdf_file_path; optional output_dir (defaults next to PDF). Saves extracted_tables.json, per-table table_N.json, and table_N.csv when rows are available. |
| extract_text_by_expressionA | Extract text from a PDF matching a regex via PDF4me ExtractTextByExpression (/api/v2/ExtractTextByExpression). pdf_file_path, expression, page_sequence (e.g. '1-' all pages, '1-3', '1,2,3'); optional output_dir. Saves JSON, a matches text file, and CSV. |
| extract_text_from_imageA | Extract text from a local image using the PDF4me ImageExtractText API (POST /api/v2/ImageExtractText). Uses OCR; supports async processing with polling on 202. Returns the parsed JSON response in structured_content and a text summary when possible. |
| extract_text_from_wordA | Extract text from a Word document via PDF4me /api/v2/ExtractTextFromWord. Supports page range and content filtering options (comments, header/footer, tracked changes). Saves extracted text and JSON response metadata to disk. |
| fill_pdf_formB | Fill form fields in a local PDF using the PDF4me FillPdfForm API. Provide the local PDF path and a JSON object of field/value pairs in form_data. Optionally specify output directory and output file name. |
| find_and_replace_textC | Find and replace text in a PDF via PDF4me /api/v2/FindAndReplace. Inputs: pdf_file_path, old_text, new_text, page_sequence; optional output path. |
| flatten_pdfA | Flatten a PDF file with the PDF4me API: forms, annotations, and layers become static content. Provide the local file path to the PDF. Optionally specify an output directory and output file name. |
| flip_imageA | Flip an image horizontally or vertically via PDF4me /api/v2/FlipImage. Inputs: image_file_path and orientation ('horizontal' or 'vertical'); optional request_doc_name and output path. |
| generate_document_singleA | Generate a single document from a template using PDF4me GenerateDocumentSingle API (POST /api/v2/GenerateDocumentSingle). Supports template file, document data text/file, output type, and async polling. |
| generate_documents_multipleA | Generate multiple documents from one template and data using PDF4me GenerateDocumentMultiple API (POST /api/v2/GenerateDocumentMultiple). Supports async polling on 202; saves each output from outputDocuments[].streamFile. |
| get_document_from_pdf4meB | Subscribe a callback webhook via PDF4me WebhookSubscribe (/api/v2/WebhookSubscribe). Provide callback_url and doc_name. Saves API response as JSON. |
| get_image_metadataA | Extract metadata from a local image using the PDF4me GetImageMetadata API. Provide the file path to a JPG or PNG image. Returns structured metadata JSON including image properties and available EXIF details. |
| get_pdf_metadataA | Extract metadata from a local PDF using the PDF4me GetPdfMetadata API. Provide the file path to the PDF. Returns metadata such as title, author, page count, size, dates, and security properties. |
| get_tracking_changes_in_wordA | Extract tracking changes data from a Word file via PDF4me /api/v2/GetTrackingChangesInWord. Input is a local .docx/.doc file. Saves the API response as JSON (or raw text fallback). |
| linearize_pdfA | Linearize a PDF file with the PDF4me API for faster web loading and progressive display. Provide the local file path to the PDF. Choose optimize_profile: web, Max, Print, Default, WebMax, PrintMax, PrintGray, Compress, or CompressMax. Optionally specify an output directory and output file name. |
| merge_multiple_pdfsC | Merge multiple PDF files into one via PDF4me /api/v2/Merge. Inputs: pdf_file_paths (list of local PDFs), optional request_doc_name, and output path. |
| merge_pdf_overlayB | Overlay one PDF over another via PDF4me /api/v2/MergeOverlay. Inputs: base_pdf_file_path and overlay_pdf_file_path; optional output naming and async mode. |
| parse_documentB | Parse a PDF with a PDF4me parse template via ParseDocument (/api/v2/ParseDocument). Requires pdf_file_path, doc_name (or uses PDF basename), parse_id (or auto-generated UUID), and either template_id (GUID) or template_name. Saves parsed_document.json under output_dir. |
| process_bank_chequeA | AI-Process Bank Cheque: extract structured data from a bank cheque via PDF4me POST /api/v2/ProcessBankCheque (isAsync true: 202 + Location poll until JSON result). Request body uses isAsync (camelCase) and CustomFieldKeys (PascalCase) when custom keys are sent—not the IsAsync/customFieldKeys shape used by AI-Invoice Parser. Provide pdf_file_path (local .pdf/.png/.jpg/.jpeg as Base64). doc_name: logical file name (e.g. cheque.pdf); optional (defaults to basename). Optional custom_field_keys: include only as a non-empty list (property omitted when unused). Saves the full API JSON to process_bank_cheque.json. |
| process_bank_statementA | AI-Process Bank Statement (processBankStatement): extract structured data via PDF4me POST /api/v2/ProcessBankStatement. JSON uses camelCase isAsync (true), analyzePatterns (boolean, default true), and customFieldKeys (camelCase, not CustomFieldKeys)—omit customFieldKeys when there are no keys. Provide pdf_file_path (local .pdf/.png/.jpg/.jpeg). doc_name is the logical docName sent to the API (optional: defaults to basename). Optional bank_name (omitted when empty). Optional custom_field_keys (list) and/or custom_field_keys_csv (comma-separated; trimmed, empty segments dropped)—merged and deduped. Optional profiles string: trimmed empty omits the property; otherwise if it does not start with an opening curly brace or square bracket, the value is wrapped in outer curly braces for custom profiles. 202 + Location poll; saves process_bank_statement.json. |
| process_contractA | AI-Process Contract: extract structured data from a contract via PDF4me POST /api/v2/ProcessContract. Request JSON has only docContent, docName, and IsAsync (must be true); this action does not send customFieldKeys or CustomFieldKeys. Provide pdf_file_path (local .pdf/.png/.jpg/.jpeg as Base64). doc_name: logical file name (e.g. contract.pdf); optional (defaults to basename). Async: 202 + Location poll until JSON; saves process_contract.json. |
| process_credit_cardA | AI-Process Credit Card: extract structured data from a credit card image/PDF via PDF4me POST /api/v2/ProcessCreditCard. Body uses IsAsync (must be true) and CustomFieldKeys (PascalCase) only when custom_field_keys is non-empty—omit CustomFieldKeys when unused. Provide pdf_file_path (local .pdf/.png/.jpg/.jpeg as Base64). doc_name optional (defaults to basename); names without an extension get .png (not .pdf). 202 + Location poll; saves process_credit_card.json. |
| process_health_cardA | AI-Process Health Card: extract structured data from a health card image/PDF via PDF4me POST /api/v2/ProcessHealthCard. Request JSON is only docContent, docName, and IsAsync (must be true); no customFieldKeys or CustomFieldKeys. Provide pdf_file_path (local .pdf/.png/.jpg/.jpeg as Base64). doc_name optional (defaults to basename); names without an extension get .jpeg. 202 + Location poll; saves process_health_card.json. |
| process_invoiceA | AI-Invoice Parser: extract structured invoice data from a document via PDF4me POST /api/v2/ProcessInvoice (async: 202 + Location poll until JSON result). Provide pdf_file_path (local .pdf/.png/.jpg/.jpeg read as Base64). doc_name: logical document name for the API (e.g. invoice.pdf); optional (defaults to the file basename). Optional custom_field_keys: non-empty list of extra field names for the model to extract; omit the parameter when you have no custom keys (empty lists are not sent). Saves the full API JSON to process_invoice.json and returns key fields (invoiceNumber, vendorName, total, success, …). |
| process_marriage_certificateA | AI-Process Marriage Certificate: extract structured data via PDF4me POST /api/v2/ProcessMarriageCertificate. Base body: docContent, docName, IsAsync (true). VerifyAuthenticity is sent only when verify_authenticity is true (property omitted when false). CustomFieldKeys (PascalCase) is sent only when custom_field_keys is a non-empty list. Provide pdf_file_path (local .pdf/.png/.jpg/.jpeg). doc_name optional (basename); names without an extension get .pdf. 202 + Location poll; saves process_marriage_certificate.json. |
| process_mortgage_documentA | AI-Process Mortgage Document: extract structured data via PDF4me POST /api/v2/ProcessMortgageDocument. Uses camelCase isAsync (true), not IsAsync. Body: docContent, docName, isAsync; optional documentType (hint, e.g. loan—omitted when empty); CustomFieldKeys (PascalCase) only when custom_field_keys is non-empty. Provide pdf_file_path (local .pdf only, must be a PDF file). doc_name optional (basename); 202 + Location poll; saves process_mortgage_document.json. |
| process_orderA | AI-Process Order (processOrder): extract structured order data via PDF4me POST /api/v2/ProcessOrder. JSON body: docName, docContent, isAsync (true), and optional profiles only. doc_name is sent as docName as provided or defaulted (basename from pdf_file_path)—not overwritten by the server. Provide pdf_file_path (local .pdf/.png/.jpg/.jpeg). Optional profiles: trim then omit if empty; otherwise if it does not start with an opening curly brace or square bracket, wrap in outer curly braces. 202 + Location poll; saves process_order.json. |
| process_pay_stubA | AI-Process Pay Stub: extract structured data from a pay stub image/PDF via PDF4me POST /api/v2/ProcessPayStub. Body uses IsAsync (must be true) and CustomFieldKeys (PascalCase) only when custom_field_keys is non-empty—omit CustomFieldKeys when unused. Provide pdf_file_path (local .pdf/.png/.jpg/.jpeg as Base64). doc_name optional (defaults to basename); names without an extension get .png. 202 + Location poll; saves process_pay_stub.json. |
| process_receiptA | AI-Process Receipt (processReceipt): extract structured receipt data via PDF4me POST /api/v2/ProcessReceipt. Body: docName, docContent, analyzeItems, extractMerchantInfo, calculateTotals (all booleans, defaults true), isAsync (true); optional receiptType (omit when empty or 'none'); customFieldKeys camelCase when keys present (list and/or CSV merged); optional profiles (sanitized like other process tools). Provide pdf_file_path (local .pdf/.png/.jpg/.jpeg). docName resolution: uses basename unless doc_name is set. receipt_type examples: meal, supplies, hotel, fuel and energy, transportation, communication, subscriptions, entertainment, training, healthcare, generic. 202 + Location poll; saves process_receipt.json. |
| process_shipping_labelA | AI-Process Shipping Label (processShippingLabel): extract structured data via PDF4me POST /api/v2/ProcessShippingLabel. Body: docName (non-empty), docContent, isAsync (true), optional profiles. docName resolution: uses doc_name if set else the file basename. Provide pdf_file_path (local .pdf/.png/.jpg/.jpeg). Optional profiles: trim, omit if empty; wrap in outer braces when not starting with an opening curly brace or square bracket. 202 + Location poll; saves process_shipping_label.json. |
| process_tax_documentA | AI-Process Tax Document (processTaxDocument): extract structured tax data via PDF4me POST /api/v2/ProcessTaxDocument. Body: docName (sent exactly as doc_name—trimmed—or 'tax_document.pdf' if omitted; never replaced by local file basename or URL path in the request), docContent, isAsync (true); optional taxModel (omit when empty or 'none'); customFieldKeys camelCase when keys present (list and/or custom_field_keys_csv merged); optional profiles (sanitized). Provide pdf_file_path (local .pdf/.png/.jpg/.jpeg). tax_model examples: W2, 1099, 1099-SSA, 1040, 1040-SR, 1040-NR, 1098, 1098-E, 1098-T, 1095A, 1095C, W-4, UnifiedTaxUS. 202 + Location poll; saves process_tax_document.json. |
| process_universal_documentA | AI - Universal Document Data Extraction (processUniversalDocument): extract named fields via PDF4me POST /api/v2/ProcessUniversalDocument. docName = file basename if available, else doc_name, else 'document.pdf'. fields (required): at least one field name—use fields and/or fields_csv (comma-separated, trimmed). mode: 0 Standard (default) or 1 Strict. isAsync true. Optional documentType (omit if empty); optional profiles (sanitized). Provide pdf_file_path (local .pdf/.png/.jpg/.jpeg). 202 + Location poll; saves process_universal_document.json. |
| protect_pdfA | Password-protect a local PDF using the PDF4me Protect API. Provide the file path, open password, and pdf_permission (for example All). Optionally specify output directory and file name. |
| read_barcodesA | Read barcodes and QR codes from a local PDF using the PDF4me ReadBarcodes API. Provide the file path, barcode types (e.g. all, qrCode, dataMatrix, code128), and pages. Always requests async processing (isAsync true); on HTTP 202 the tool polls the Location URL. Returns structured barcode data as JSON. |
| read_barcodes_from_imageA | Read barcodes and QR codes from a local image using the PDF4me ReadBarcodesfromImage API. Provide the image path and optionally image type (JPG, PNG, GIF, BMP, TIFF, WEBP). (payload key isAsync). Returns structured barcode data as JSON. |
| read_swiss_qr_billA | Read Swiss QR bill data from a local PDF using the PDF4me ReadSwissQRBill API. Provide the file path to the PDF. Returns structured Swiss QR data as JSON. |
| remove_exif_tags_from_imageA | Remove EXIF metadata tags from a local image using the PDF4me RemoveEXIFTagsFromImage API. Supports sync and async processing with 202 polling. Uses long HTTP timeouts for large uploads and slow jobs. Input supports JPG/PNG; imageType is optional. output_file_name is required; output_dir is optional. |
| repair_pdfA | Repair a damaged or problematic PDF using the PDF4me RepairPdf API. Provide the local file path to the PDF. Optionally specify an output directory and output file name. |
| replace_text_with_imageA | Replace occurrences of a text string in a PDF with an image using the PDF4me ReplaceTextWithImage API (POST /api/v2/ReplaceTextWithImage). Provide the PDF path, image path, text to replace, page sequence (e.g. all, 1, 1,3,5, 2-5), and image width/height in pixels. Supports async via isAsync and 202 Location polling. Optional output directory and file name. |
| replace_text_with_image_in_wordA | Replace placeholder text in a Word document with an image using the PDF4me ReplaceTextWithImageInWord API (POST /api/v2/ReplaceTextWithImageInWord). Provide paths to the .docx/.doc file and image, SearchText to find, PageNumbers (e.g. 1 or 1,2), and optional first-page skip. Uses isAsync with 202 Location polling. Saves the modified Word file to disk. |
| resize_imageA | Resize a local image using the PDF4me ResizeImage API (Percentage or Specific dimensions). Provide the image path, resize mode, and options (percentage or width/height, aspect ratio). Optional output directory and file name; saves the resized image to disk. |
| rotate_imageB | Rotate a local image using the PDF4me RotateImage API. Supports rotation angle, background color, proportionate resize, and async 202 polling. Optional output directory and file name; saves the rotated image to disk. |
| rotate_image_by_exif_dataA | Automatically rotate a local image according to EXIF orientation metadata using the PDF4me RotateImageByExifData API. Supports async 202 polling. Requires output_dir; saves the rotated image under that directory. |
| rotate_pdfA | Rotate all pages of a PDF the same way using the PDF4me Rotate API. Provide the local PDF path and rotationType (NoRotation, Clockwise, CounterClockwise, UpsideDown). Optional output directory and file name. |
| rotate_pdf_pageB | Rotate selected pages of a PDF using the PDF4me RotatePage API. Provide the PDF path, page spec (e.g. "1", "1,3,5", "2-4"), and rotationType. Optional output directory and file name. |
| sign_pdfA | Add a signature image to a PDF using the PDF4me SignPdf API. Provide paths to the PDF and signature image (e.g. JPG/PNG). Supports page ranges, alignment, size, margins, opacity, and async 202 polling. Optional output directory and file name; saves the signed PDF to disk. |
| split_pdfC | Split a PDF via PDF4me SplitPDF (/api/v2/SplitPdf). split_action supports RecurringSplitAfterPage, SplitAfterPage, SplitSequence, SplitRanges. Provide split_action_number for first two, split_sequence for SplitSequence, split_ranges for SplitRanges. |
| split_pdf_by_barcodeB | Split a PDF by barcode text via PDF4me SplitByBarcode (/api/v2/SplitByBarcode). Provide barcode_string, barcode_filter, barcode_type, split_barcode_page, combine_pages_with_same_consecutive_barcodes, and pdf_render_dpi. |
| split_pdf_by_swiss_qrC | Split a PDF by Swiss QR via PDF4me SplitPdfByBarcode (/api/v2/SplitPdfByBarcode) (SplitDocBySwissQrCode). pdf_file_path, barcode_string (default SPC), barcode_filter, barcode_type, split_qr_page (before/after), pdf_render_dpi, combine_pages_with_same_barcodes (maps to combinePagesWithSameConsecutiveBarcodes). |
| split_pdf_by_textB | Split a PDF by matching text via PDF4me SplitByText (/api/v2/SplitByText). Provide pdf_file_path, text, split_text_page (before/after), and file_naming. |
| unlock_pdfA | Remove password protection from a local PDF using the PDF4me Unlock API. Provide the file path and the current open password. Optionally specify output directory and file name. |
| update_hyperlink_annotationA | Update hyperlink annotations in a PDF using PDF4me UpdateHyperlinkAnnotation API (POST /api/v2/UpdateHyperlinkAnnotation). Provide a local PDF path and all hyperlink update fields (SearchOn, SearchValue, IsExpression, TextCurrentValue, TextNewValue, URLCurrentValue, URLNewValue). Supports async via isAsync and 202 Location polling. Saves the updated PDF to disk. |
| upload_fileA | Upload a local file to PDF4me storage using the UploadFile API (POST /api/v2/UploadFile). Sends payload with docName and docContent (base64). Returns the API response JSON/text (for example uploaded file reference details). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| available_tools | Describes all available tools in this MCP server. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/pdf4me/pdf4me-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server