Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

PDF4me

PYPI · PDF4ME-MCP · 2 COMPONENTS · SCANNED SEP 21

PDF & document automation via the PDF4me API — convert, OCR, extract, edit, secure.

0 this week 62 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • 1 of 23 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
Schema Quality & AI Usability77
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 14930 tokens (~160/item across 93 items; 92 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
  • Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage76
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 29% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 7 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "delete_blank_pages_from_pdf" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 93 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the PDF4me MCP server?

PDF4me runs locally as a PyPI package, launched with uvx pdf4me-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · pdf4me-mcp

# add to Claude Code
claude mcp add pdf4me-pdf4me-mcp -- uvx pdf4me-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "pdf4me-pdf4me-mcp": {
      "command": "uvx",
      "args": [
        "pdf4me-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "pdf4me-pdf4me-mcp": {
      "command": "uvx",
      "args": [
        "pdf4me-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add pdf4me-pdf4me-mcp -- uvx pdf4me-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pdf4me-pdf4me-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "pdf4me-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add pdf4me-pdf4me-mcp --command uvx --arg pdf4me-mcp
# ~/.hermes/config.yaml
mcp_servers:
  pdf4me-pdf4me-mcp:
    command: "uvx"
    args: ["pdf4me-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "pdf4me-pdf4me-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "pdf4me-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add pdf4me-pdf4me-mcp -t stdio -c uvx -a pdf4me-mcp
// mcp.json
{
  "mcpServers": {
    "pdf4me-pdf4me-mcp": {
      "command": "uvx",
      "args": [
        "pdf4me-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 −3
    • Stability: pass → 0.77 functional
  • 16 Sept 26 +1
    • Stability: 0.97 → pass security
  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 −3
    • Security disclosure: unverified → fail functional
    • Stability: pass → 0.80 functional
  • 9 Sept 26 +1
    • Stability: 0.97 → pass security
    • Security disclosure: fail → unverified functional
  • 8 Sept 26 −15
    • Malware scan: pass → unverified security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/pdf4me-mcp@1.0.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 23 packages
Packages resolved 23
Stale 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 92 exposed · ~14,915 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
flip_image ~84

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.

NameTypeReqDescription
image_file_pathstringyes
orientationstring
output_dir
output_file_name
request_doc_name

No output schema declared.

No examples provided.

generate_document_single ~252

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.

NameTypeReqDescription
document_data_file_pathLocal data file path to send as base64 documentDataFile.
document_data_text_pathLocal path to text data (JSON/XML text) for documentDataText.
document_data_typestringyesOne of backend-supported values: Json, XML, or Text (plain text data).
file_meta_dataOptional fileMetaData string.
meta_data_jsonOptional metaDataJson string.
output_dirstringyesDirectory to save output (required).
output_file_namestringyesOutput file name (required).
output_typestringyesOne of backend-supported values: PDF, Docx, Html.
template_file_namestringyesTemplate file name sent to API.
template_file_pathstringyesLocal path to template file (html/docx/pdf/etc).
template_file_typestringyesOne of backend-supported values: Docx, Html, Pdf, MailMerge, GoogleDocs.

No output schema declared.

No examples provided.

generate_documents_multiple ~253

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.

NameTypeReqDescription
document_data_file_pathLocal file read as base64 for documentDataFile.
document_data_text_pathPath to a UTF-8 file whose contents are sent as documentDataText.
document_data_typestringyesJson or XML.
file_meta_dataOptional fileMetaData string.
meta_data_jsonOptional metaDataJson string.
output_dirstringyesDirectory where generated files are written.
output_file_namestringyesBase output file name; multiple files use name_1.ext, name_2.ext, etc.
output_typestringyesDesired output format (PDF, Docx, Html, Excel, Word).
template_file_namestringyesFile name for the template in the request.
template_file_pathstringyesLocal path to the template file.
template_file_typestringyesTemplate kind sent to the API (e.g. Docx, Html, Pdf, Word).

No output schema declared.

No examples provided.

get_document_from_pdf4me ~75

Subscribe a callback webhook via PDF4me WebhookSubscribe (/api/v2/WebhookSubscribe). Provide callback_url and doc_name. Saves API response as JSON.

NameTypeReqDescription
callback_urlstringyes
doc_namestringyes
output_dir
output_file_namestring

No output schema declared.

No examples provided.

get_image_metadata ~87

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.

NameTypeReqDescription
file_pathstringyesLocal path to the image file.
image_typestringDeclared image type for the API payload ("JPG" or "PNG").

No output schema declared.

No examples provided.

get_pdf_metadata ~67

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.

NameTypeReqDescription
file_pathstringyesLocal path to the PDF file.

No output schema declared.

No examples provided.

get_tracking_changes_in_word ~85

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).

NameTypeReqDescription
output_dir
output_file_name
request_doc_name
word_file_pathstringyes

No output schema declared.

No examples provided.

linearize_pdf ~125

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.

NameTypeReqDescription
file_pathstringyesLocal path to the PDF file to linearize.
optimize_profilestringOptimization preset (see PDF4me LinearizePdf docs).
output_dir
output_file_name

No output schema declared.

No examples provided.

merge_multiple_pdfs ~79

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.

NameTypeReqDescription
output_dir
output_file_name
pdf_file_pathsarrayyes
request_doc_namestring

No output schema declared.

No examples provided.

merge_pdf_overlay ~87

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.

NameTypeReqDescription
base_pdf_file_pathstringyes
output_dir
output_doc_namestring
output_file_name
overlay_pdf_file_pathstringyes

No output schema declared.

No examples provided.

parse_document ~109

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.

NameTypeReqDescription
output_dir
parse_id
pdf_file_pathstringyes
request_doc_name
template_id
template_name

No output schema declared.

No examples provided.

process_bank_cheque ~223

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 exactly one of: pdf_file_path (local .pdf/.png/.jpg/.jpeg as Base64) or doc_content (Base64, blob id, or URL per your PDF4me setup). doc_name: logical file name (e.g. cheque.pdf); optional with pdf_file_path (defaults to basename), defaults to 'cheque.pdf' when using doc_content if omitted. 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.

NameTypeReqDescription
custom_field_keys
doc_name
output_dir
pdf_file_path

No output schema declared.

No examples provided.

process_bank_statement ~294

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 exactly one of pdf_file_path (local .pdf/.png/.jpg/.jpeg) or doc_content (PDF base64, blob id, or URL). doc_name is the logical docName sent to the API (optional with a file path: defaults to basename; with doc_content alone defaults to 'bank_statement.pdf'). 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. Data URL doc_content: prefix before first comma is stripped. 202 + Location poll; saves process_bank_statement.json.

NameTypeReqDescription
analyze_patternsboolean
bank_name
custom_field_keys
custom_field_keys_csv
doc_name
output_dir
pdf_file_path
profiles

No output schema declared.

No examples provided.

process_contract ~174

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 exactly one of: pdf_file_path (local .pdf/.png/.jpg/.jpeg as Base64) or doc_content (Base64, blob id, or URL per your PDF4me setup). doc_name: logical file name (e.g. contract.pdf); optional with pdf_file_path (defaults to basename), defaults to 'contract.pdf' when using doc_content if omitted. Async: 202 + Location poll until JSON; saves process_contract.json.

NameTypeReqDescription
doc_name
output_dir
pdf_file_path

No output schema declared.

No examples provided.

process_credit_card ~215

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 exactly one of: pdf_file_path (local .pdf/.png/.jpg/.jpeg as Base64) or doc_content (Base64 without requiring a PDF prefix—PNG/JPEG etc., blob id, or URL). If doc_content is a data URL (data:...;base64,...), the prefix before the first comma is stripped. doc_name optional with file path (defaults to basename); with doc_content alone defaults to 'credit_card.png'; names without an extension get .png (not .pdf). 202 + Location poll; saves process_credit_card.json.

NameTypeReqDescription
custom_field_keys
doc_name
output_dir
pdf_file_path

No output schema declared.

No examples provided.

process_health_card ~198

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 exactly one of: pdf_file_path (local .pdf/.png/.jpg/.jpeg as Base64) or doc_content (Base64, blob id, or URL—JPEG and other images are valid; not PDF-only). If doc_content is a data URL (data:...;base64,...), the prefix before the first comma is stripped. doc_name optional with file path (defaults to basename); with doc_content alone defaults to 'health_card.jpeg'; names without an extension get .jpeg. 202 + Location poll; saves process_health_card.json.

NameTypeReqDescription
doc_name
output_dir
pdf_file_path

No output schema declared.

No examples provided.

process_invoice ~213

AI-Invoice Parser: extract structured invoice data from a document via PDF4me POST /api/v2/ProcessInvoice (async: 202 + Location poll until JSON result). Provide exactly one of: pdf_file_path (local .pdf/.png/.jpg/.jpeg read as Base64) or doc_content (Base64 file content, upload blob id, or public URL string—per your PDF4me setup). doc_name: logical document name for the API (e.g. invoice.pdf); optional when using pdf_file_path (defaults to the file basename), required when using doc_content. 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, …).

NameTypeReqDescription
custom_field_keys
doc_name
output_dir
pdf_file_path

No output schema declared.

No examples provided.

process_marriage_certificate ~211

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 exactly one of: pdf_file_path (local .pdf/.png/.jpg/.jpeg) or doc_content (Base64, data URL—prefix before comma stripped—blob id, or URL; non-PDF images allowed). doc_name optional with file path (basename); with doc_content alone defaults to 'marriage_certificate.pdf'; names without an extension get .pdf. 202 + Location poll; saves process_marriage_certificate.json.

NameTypeReqDescription
custom_field_keys
doc_name
output_dir
pdf_file_path
verify_authenticityboolean

No output schema declared.

No examples provided.

process_mortgage_document ~203

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. Exactly one of pdf_file_path (local .pdf only, must be a PDF file) or doc_content (PDF base64, blob id, or URL). For base64 after stripping a data: URL prefix, long base64 payloads must start with 'JVBERi0x'. doc_name optional (basename or mortgage.pdf); 202 + Location poll; saves process_mortgage_document.json.

NameTypeReqDescription
custom_field_keys
doc_name
document_type
output_dir
pdf_file_path

No output schema declared.

No examples provided.

process_order ~194

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, or 'order.pdf' with doc_content only)—not overwritten by the server. Exactly one of pdf_file_path (local .pdf/.png/.jpg/.jpeg) or doc_content (PDF base64, blob id, or URL). 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. Data URL doc_content: strip prefix before first comma. 202 + Location poll; saves process_order.json.

NameTypeReqDescription
doc_name
output_dir
pdf_file_path
profiles

No output schema declared.

No examples provided.

process_pay_stub ~211

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 exactly one of: pdf_file_path (local .pdf/.png/.jpg/.jpeg as Base64) or doc_content (Base64 without requiring a PDF prefix—PNG/JPEG etc., blob id, or URL). If doc_content is a data URL (data:...;base64,...), the prefix before the first comma is stripped. doc_name optional with file path (defaults to basename); with doc_content alone defaults to 'pay_stub.png'; names without an extension get .png. 202 + Location poll; saves process_pay_stub.json.

NameTypeReqDescription
custom_field_keys
doc_name
output_dir
pdf_file_path

No output schema declared.

No examples provided.

process_receipt ~283

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). Exactly one of pdf_file_path or doc_content (PDF base64, blob id, or URL). docName resolution: file path uses basename unless doc_name is set; URL uses last URL path segment when present else doc_name or 'receipt.pdf'; base64/blob uses doc_name or 'receipt.pdf'. receipt_type examples: meal, supplies, hotel, fuel and energy, transportation, communication, subscriptions, entertainment, training, healthcare, generic. Data URL: strip prefix before first comma. 202 + Location poll; saves process_receipt.json.

NameTypeReqDescription
analyze_itemsboolean
calculate_totalsboolean
custom_field_keys
custom_field_keys_csv
doc_name
extract_merchant_infoboolean
output_dir
pdf_file_path
profiles
receipt_type

No output schema declared.

No examples provided.

process_shipping_label ~198

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: binary/file path uses doc_name if set else basename; URL uses trimmed doc_name if provided else last URL path segment (decoded) else falls back to 'shipping_label.pdf'; base64/blob uses doc_name or 'shipping_label.pdf'. Exactly one of pdf_file_path or doc_content (PDF base64, blob id, or URL). Optional profiles: trim, omit if empty; wrap in outer braces when not starting with an opening curly brace or square bracket. Data URL doc_content: strip prefix before first comma. 202 + Location poll; saves process_shipping_label.json.

NameTypeReqDescription
doc_name
output_dir
pdf_file_path
profiles

No output schema declared.

No examples provided.

process_tax_document ~268

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). Exactly one of pdf_file_path or doc_content (PDF base64, blob id, or URL). tax_model examples: W2, 1099, 1099-SSA, 1040, 1040-SR, 1040-NR, 1098, 1098-E, 1098-T, 1095A, 1095C, W-4, UnifiedTaxUS. Data URL doc_content: strip prefix before first comma. 202 + Location poll; saves process_tax_document.json.

NameTypeReqDescription
custom_field_keys
custom_field_keys_csv
doc_name
output_dir
pdf_file_path
profiles
tax_model

No output schema declared.

No examples provided.

process_universal_document ~224

AI - Universal Document Data Extraction (processUniversalDocument): extract named fields via PDF4me POST /api/v2/ProcessUniversalDocument. docName = trimmed inputDocName if set, else doc_name, else 'document.pdf'. inputDocName: file basename, or URL last path segment (decoded) or doc_name, or base64 uses doc_name. 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). Exactly one of pdf_file_path or doc_content (base64, blob id, or URL). Data URL: strip prefix before comma. 202 + Location poll; saves process_universal_document.json.

NameTypeReqDescription
doc_name
document_type
fields
fields_csv
modeinteger
output_dir
pdf_file_path
profiles

No output schema declared.

No examples provided.

protect_pdf ~113

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.

NameTypeReqDescription
file_pathstringyesLocal path to the PDF file to protect.
output_dir
output_file_name
passwordstringyesOpen password for the protected PDF (required).
pdf_permissionstringPDF permission profile string (for example All); matches API pdfPermission.

No output schema declared.

No examples provided.

read_barcodes ~155

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.

NameTypeReqDescription
barcode_typeBarcode type filters sent to the API (defaults to ["all"]).
file_pathstringyesLocal path to the PDF file.
pagesstringPages expression like "all", "1", "1,3,5", "2-5", "1,3,7-10", "2-".

No output schema declared.

No examples provided.

read_barcodes_from_image ~109

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.

NameTypeReqDescription
file_pathstringyesLocal path to the image file.
image_typeImage type passed to API payload. If omitted, inferred from extension (unknown defaults to JPG).

No output schema declared.

No examples provided.

read_swiss_qr_bill ~63

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.

NameTypeReqDescription
file_pathstringyesLocal path to the PDF file.

No output schema declared.

No examples provided.

remove_exif_tags_from_image ~131

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.

NameTypeReqDescription
file_pathstringyesLocal path to the source image.
image_typePayload image type ("JPG" or "PNG"). If omitted, inferred from file extension.
output_dir
output_file_namestringyes

No output schema declared.

No examples provided.

repair_pdf ~73

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.

NameTypeReqDescription
file_pathstringyesLocal path to the PDF file to repair.
output_dir
output_file_name

No output schema declared.

No examples provided.

replace_text_with_image ~242

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.

NameTypeReqDescription
file_pathstringyesLocal path to the input PDF.
image_file_pathstringyesLocal path to the replacement image (e.g. PNG, JPG).
image_heightintegerDisplay height of the placed image in pixels (API integer).
image_widthintegerDisplay width of the placed image in pixels (API integer).
output_dir
output_file_name
page_sequencestringPages to search (e.g. "all", "1", "1,3,5", "2-5").
replace_textstringyesLiteral text in the PDF to replace with the image.

No output schema declared.

No examples provided.

replace_text_with_image_in_word ~218

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.

NameTypeReqDescription
image_file_pathstringyesLocal path to the replacement image.
is_first_page_skipbooleanMaps to IsFirstPageSkip.
output_dir
output_file_name
page_numbersstringPages to process, as accepted by the API (e.g. "1", "1,2").
search_textstringyesPlaceholder text in the document to replace (e.g. SIGN_HERE).
word_file_pathstringyesLocal path to the Word document (.docx or .doc).

No output schema declared.

No examples provided.

resize_image ~180

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.

NameTypeReqDescription
file_pathstringyesLocal path to the source image.
heightintegerTarget height in pixels when using Specific mode.
image_resize_typestringPercentage (ResizePercentage) or Specific (Width/Height in pixels).
maintain_aspect_ratiobooleanPassed through to the API.
output_dir
output_file_name
resize_percentagestringUsed when image_resize_type is Percentage (decimal string, e.g. "50.0").
widthintegerTarget width in pixels when using Specific mode.

No output schema declared.

No examples provided.

rotate_image ~145

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.

NameTypeReqDescription
background_colorstringFill color behind rotated bounds (e.g. #FFFFFF). Sent as API key Backgroundcolor.
file_pathstringyesLocal path to the source image.
output_dir
output_file_name
proportionate_resizebooleanWhether to keep proportions during rotation (API ProportionateResize).
rotation_angleintegerRotation in degrees (integer, e.g. 90).

No output schema declared.

No examples provided.

rotate_image_by_exif_data ~89

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.

NameTypeReqDescription
file_pathstringyesLocal path to the source image.
output_dirstringyesDirectory for the output image (required).
output_file_name

No output schema declared.

No examples provided.

rotate_pdf ~110

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.

NameTypeReqDescription
file_pathstringyesLocal path to the PDF file.
output_dir
output_file_name
rotation_typestringHow to rotate all pages (NoRotation, Clockwise, CounterClockwise, UpsideDown).

No output schema declared.

No examples provided.

rotate_pdf_page ~142

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.

NameTypeReqDescription
file_pathstringyesLocal path to the PDF file.
output_dir
output_file_name
pagestringyesPages to rotate (e.g. "1", "1,3,5", "2-4").
rotation_typestringRotation per API (NoRotation, Clockwise, CounterClockwise, UpsideDown).

No output schema declared.

No examples provided.

sign_pdf ~309

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.

NameTypeReqDescription
align_xstringHorizontal alignment (e.g. Left, Center, Right — API may accept any casing).
align_ystringVertical alignment (e.g. Top, Middle, Bottom).
file_pathstringyesLocal path to the PDF to sign.
height_in_mmstring
height_in_pxstring
is_backgroundbooleanMaps to isBackground.
margin_x_mmstring
margin_x_pxstring
margin_y_mmstring
margin_y_pxstring
opacitystringOpacity 0–100 as a string.
output_dir
output_file_name
pagesstringPage spec (e.g. "1", "1,3,5", "2-5", "1-3").
show_only_in_printbooleanMaps to showOnlyInPrint.
signature_file_pathstringyesLocal path to the signature image file.
width_in_mmstring
width_in_pxstring

No output schema declared.

No examples provided.

split_pdf ~122

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.

NameTypeReqDescription
file_namingstring
output_dir
pdf_file_pathstringyes
request_doc_name
split_actionstringyes
split_action_number
split_ranges
split_sequence

No output schema declared.

No examples provided.

split_pdf_by_barcode ~145

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.

NameTypeReqDescription
barcode_filterstring
barcode_stringstringyes
barcode_typestring
combine_pages_with_same_consecutive_barcodesboolean
output_dir
pdf_file_pathstringyes
pdf_render_dpistring
request_doc_name
split_barcode_pagestring

No output schema declared.

No examples provided.

split_pdf_by_swiss_qr ~174

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).

NameTypeReqDescription
barcode_filterstring
barcode_stringstring
barcode_typestring
combine_pages_with_same_barcodesboolean
output_dir
pdf_file_pathstringyes
pdf_render_dpistring
request_doc_name
split_qr_pagestring

No output schema declared.

No examples provided.

split_pdf_by_text ~99

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.

NameTypeReqDescription
file_namingstring
output_dir
pdf_file_pathstringyes
request_doc_name
split_text_pagestring
textstringyes

No output schema declared.

No examples provided.

unlock_pdf ~86

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.

NameTypeReqDescription
file_pathstringyesLocal path to the protected PDF file.
output_dir
output_file_name
passwordstringyesCurrent open password for the PDF (required).

No output schema declared.

No examples provided.

update_hyperlink_annotation ~220

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.

NameTypeReqDescription
file_pathstringyesLocal path to the input PDF.
is_expressionbooleanyesWhether the search is treated as an expression.
output_dirstring
output_file_namestring
search_onstringyesSearch criteria type (e.g. Text).
search_valuestringyesValue to search for.
text_current_valuestringyesExisting display text to replace.
text_new_valuestringyesNew display text.
url_current_valuestringyesExisting hyperlink URL to replace.
url_new_valuestringyesNew hyperlink URL destination.

No output schema declared.

No examples provided.

upload_file ~73

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).

NameTypeReqDescription
file_pathstringyesLocal path to any file to upload.

No output schema declared.

No examples provided.

Common questions

What is the PDF4me MCP server?

PDF4me is an MCP server listed in the public MCP registry as io.github.pdf4me/pdf4me-mcp. PDF & document automation via the PDF4me API, convert, OCR, extract, edit, secure. This page covers its PyPI package (pdf4me-mcp).

Is the PDF4me MCP server safe to use?

PDF4me scores 62 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the PDF4me MCP server expose?

PDF4me exposes 92 tools: add_attachment_to_pdf, add_barcode_to_pdf, add_form_fields_to_pdf, add_html_header_footer_to_pdf, add_image_stamp_to_pdf, and 87 more. Their descriptions and schemas cost roughly 14,915 tokens of context every time the server is loaded.

Is the PDF4me MCP server still maintained?

PDF4me is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.