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.

com.mcparmory/pdfco

PYPI · MCPARMORY-PDFCO · 2 COMPONENTS · SCANNED SEP 20

Extract data, edit, convert, and parse PDF documents with OCR and AI

−1 this week 74 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 Security87
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Install-script risk not yet assessed.Unverified
  • 2 of 41 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
Schema Quality & AI Usability67
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 12004 tokens (~184/item across 65 items; 65 tools + 0 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 Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety89
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 4 of 7 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "merge_pdfs" implies "merge" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Partial
  • An AI judge read all 65 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 com.mcparmory/pdfco MCP server?

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

pypi · mcparmory-pdfco

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

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 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
  • 15 Sept 26 +15
    • Malware scan: unverified → pass security
  • 14 Sept 26 −15
    • Malware scan: pass → unverified security
  • 13 Sept 26 +1

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

  • 11 Sept 26 −2
    • Stability: pass → 0.83 functional
  • 10 Sept 26 +1
    • Stability: 0.97 → pass 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/mcparmory-pdfco@1.0.2

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 →

Dependencies 41 packages
Packages resolved 41
Stale 1
No linked repository 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 65 exposed · ~12,004 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
make_pdf_searchable ~254

Convert scanned PDF documents or image files into text-searchable PDFs by running OCR and adding an invisible text layer for search and indexing capabilities.

NameTypeReqDescription
langstringLanguage code for OCR processing (e.g., 'eng' for English). Defaults to English if not specified. Use standard ISO 639-3 language codes.
namestringOutput filename for the resulting searchable PDF. Defaults to 'result.pdf' if not specified.
pagesstringComma-separated page indices or ranges to process (0-based indexing). Supports individual pages (e.g., 0, 5), ranges (e.g., 3-7, 10-), and reverse indexing (e.g., !0 for last page). Whitespace is all…
rectstringRectangular region coordinates for targeted OCR processing, specified as four space-separated values: x y width height (in points). Use the PDF Edit Add Helper tool to measure coordinates. If omitted…
urlstringyesURL of the PDF or image file to process. Accepts remote URLs pointing to scanned documents or image files that need OCR conversion.

No output schema declared.

No examples provided.

merge_documents_to_pdf ~142

Merge multiple documents and images of various formats (PDF, DOC, DOCX, XLS, XLSX, RTF, TXT, PNG, JPG, or ZIP archives) into a single PDF file. This operation supports broader file type compatibility than standard PDF merge but consumes additional credits due to internal format conversions.

NameTypeReqDescription
namestringOptional custom filename for the generated PDF output file.
urlstringyesComma-separated URLs of source files to merge. Supports PDF, DOC, DOCX, XLS, XLSX, RTF, TXT, PNG, JPG, and ZIP files containing documents or images. Multiple files are merged in the order specified.

No output schema declared.

No examples provided.

merge_pdfs ~100

Merge multiple PDF files into a single consolidated PDF document. Provide one or more PDF URLs to combine them in the order specified.

NameTypeReqDescription
namestringThe filename for the resulting merged PDF document. Defaults to 'result.pdf' if not specified.
urlstringyesOne or more URLs pointing to PDF files to merge, separated by commas. URLs must be accessible and point to valid PDF documents. Defaults to sample encrypted PDFs if not specified.

No output schema declared.

No examples provided.

read_barcodes_from_url ~210

Decode barcodes and QR codes from images or PDF documents accessible via URL. Supports 40+ barcode formats including QR Code, Code 128, EAN, DataMatrix, PDF417, and GS1 standards.

NameTypeReqDescription
pagesstringOptional page indices or ranges to scan (0-based, applies to PDFs only). Specify individual pages (e.g., 0,2,5), ranges (e.g., 3-7 or 10-), or reverse indices (e.g., !0 for last page). Comma-separate…
typesstringyesComma-separated list of barcode types to detect. Choose from 40+ supported formats including QRCode, Code128, EAN13, DataMatrix, PDF417, GS1, and others. Only specified types will be decoded.
urlstringyesURL of the image or PDF document to scan for barcodes. Must be publicly accessible.

No output schema declared.

No examples provided.

remove_pdf_password ~83

Remove password protection and access restrictions from a PDF file, making it fully accessible without authentication.

NameTypeReqDescription
namestringThe desired filename for the unprotected PDF output. Defaults to 'unprotected' if not specified.
urlstringyesThe URL of the PDF file to remove password protection from. Can be a direct file URL or a cloud storage link.

No output schema declared.

No examples provided.

replace_text_in_pdf ~288

Search for text patterns in a PDF document and replace them with new text. Supports literal string matching or regular expressions, with options for case sensitivity and replacement limits.

NameTypeReqDescription
casesensitivebooleanPerform case-sensitive text matching. When true, 'Hello' and 'hello' are treated as different strings.
namestringOutput filename for the processed PDF document.
pagesstringComma-separated page indices or ranges to process (0-based indexing). Supports ranges (e.g., 3-7), open-ended ranges (e.g., 10-), and reverse indexing (e.g., !0 for last page). If omitted, all pages…
regexbooleanEnable regular expression matching for search strings. When true, searchstrings are interpreted as regex patterns rather than literal text.
replacementlimitnumberMaximum number of replacements to perform per search string. Defaults to 1 replacement per string.
replacestringsarrayArray of replacement text strings corresponding to each search string. Must have the same length as searchstrings for proper pairing.
searchstringsarrayArray of text strings or patterns to search for in the PDF. Order corresponds to replacestrings array for paired replacements.
urlstringyesURL of the PDF file to process. Defaults to a sample agreement template if not specified.

No output schema declared.

No examples provided.

replace_text_with_image_in_pdf ~307

Search for specific text in a PDF document and replace it with an image. Supports regex patterns and case-sensitive matching with optional replacement limits and page range targeting.

NameTypeReqDescription
casesensitivebooleanPerform case-sensitive text matching. When true, 'Text' and 'text' are treated as different; when false, they match regardless of case.
namestringCustom filename for the generated output PDF. If not specified, a default name is assigned.
pagesstringComma-separated page indices or ranges to process (0-based indexing). Supports ranges (e.g., 3-7), open-ended ranges (e.g., 10-), reverse indexing (e.g., !0 for last page), and individual pages. Omit…
regexbooleanEnable regular expression matching for the search string. When true, the search string is interpreted as a regex pattern; when false, performs literal text matching.
replaceimagestringBase64-encoded image data (with data URI prefix) to use as the replacement. Supports PNG, JPEG, and other common image formats.
replacementlimitnumberMaximum number of replacements to perform per search term. Use 0 to replace all occurrences; any positive integer limits replacements to that count.
searchstringstring
urlstringyesURL of the PDF file to modify. Accepts publicly accessible URLs or data URIs.

No output schema declared.

No examples provided.

rotate_pdf_pages ~210

Rotates specified pages in a PDF document by a given angle. If no pages are specified, the operation rotates all pages in the document.

NameTypeReqDescription
anglestringThe rotation angle in degrees to apply to selected pages. Common values are 90, 180, and 270 for standard rotations.
namestringThe filename for the output PDF document after rotation is applied.
pagesstringZero-based page indices or ranges to rotate, specified as comma-separated values. Supports individual pages (e.g., 0, 2, 5), ranges (e.g., 3-7, 10-), and reverse indexing from the end of the document…
urlstringyesThe URL of the PDF file to rotate. Can be a remote URL or a local file path.

No output schema declared.

No examples provided.

search_pdf_text ~287

Search for text patterns in a PDF document and retrieve their precise coordinates. Supports both literal string matching and regular expression patterns for flexible text discovery.

NameTypeReqDescription
casesensitivebooleanControl search sensitivity to letter case. Set to false for case-insensitive matching; true for case-sensitive matching.
namestringName identifier for the output results.
pagesstringSpecify which pages to search using 0-based indices. Supports individual pages (e.g., 0, 5), ranges (e.g., 3-7, 10-), and reverse indexing (e.g., !0 for last page). Use comma-separated values for mul…
regexsearchbooleanEnable regular expression matching for the search string. When true, the search string is interpreted as a regex pattern; when false, performs literal string matching.
searchstringstringyesText or pattern to find in the PDF. When regex search is enabled, this accepts regular expression syntax (e.g., date patterns like \d+/\d+/\d+).
urlstringyesURL of the PDF file to search. Defaults to a sample PDF if not specified.
wordmatchingmodestringWord matching mode to control how text boundaries are handled during search (e.g., whole words only vs. partial matches).

No output schema declared.

No examples provided.

search_tables_in_pdf ~165

Scan a PDF document using AI to detect and extract tables, returning their locations, coordinates, and column information for specified pages.

NameTypeReqDescription
namestringOptional custom name for the generated output file.
pagesstringComma-separated page indices or ranges to scan (0-based indexing). Supports individual pages (e.g., 0, 5), ranges (e.g., 3-7, 10-), and reverse indexing from the end (e.g., !0 for last page, !5-!2 fo…
urlstringyesURL of the PDF file to analyze. Defaults to a sample PDF if not provided.

No output schema declared.

No examples provided.

send_email_with_attachment ~293

Send an email message with optional file attachment. Supports multiple recipients and requires SMTP server credentials for delivery.

NameTypeReqDescription
bccstringBlind carbon copy recipient email address. Use comma-separated values for multiple recipients. Recipients in this field are hidden from other recipients.
ccstringCarbon copy recipient email address. Use comma-separated values for multiple recipients.
fromstringyesSender email address in the format 'Name <email@domain.com>' or just 'email@domain.com'.
namestringCustom filename for the attachment. If not specified, the original filename from the URL will be used.
replytostringReply-to email address. If specified, replies will be directed to this address instead of the sender.
smtppasswordstringyesPassword or app-specific password for SMTP authentication. For Gmail, use an app-specific password rather than your account password.
smtpserverstringyesSMTP server hostname (e.g., smtp.gmail.com for Gmail, smtp.office365.com for Outlook).
smtpusernamestringyesUsername or email address for SMTP authentication.
subjectstringyesEmail subject line.
tostringyesPrimary recipient email address. Use comma-separated values for multiple recipients.
urlstringyesURL of the file to attach to the email. Defaults to a sample PDF from AWS S3.

No output schema declared.

No examples provided.

split_pdf ~186

Split a PDF document into multiple separate PDF files by specifying which pages to extract using page numbers or ranges.

NameTypeReqDescription
namestringFilename for the output PDF file. Defaults to 'result.pdf' if not specified.
pagesstringPages to extract from the PDF using 1-based indexing. Specify individual pages (e.g., 1,3,5), ranges (e.g., 1-5), or combinations (e.g., 1-3,5,7-9). Use !1 to reference the last page and !6-!2 for ra…
urlstringyesURL of the PDF file to split. Accepts any publicly accessible PDF URL; defaults to a sample PDF if not provided.

No output schema declared.

No examples provided.

split_pdf_by_text_search ~305

Split a PDF document into multiple files by searching for specific text patterns or barcodes. Pages containing the search term can be used as split points, with options to exclude or include those pages in the output.

NameTypeReqDescription
casesensitivebooleanPerform case-sensitive text matching. When disabled, search is case-insensitive.
excludekeypagesbooleanExclude pages containing the search match from the output files. When enabled, matching pages are removed; when disabled, they are included in the split results.
langstringOCR language for extracting text from scanned PDFs, images, and documents. Use ISO 639-3 language codes (e.g., 'eng' for English). Combine multiple languages with '+' for simultaneous processing (e.g…
namestringBase name for the output PDF files. The system will append sequential numbering to create individual split file names.
regexsearchbooleanEnable regular expression matching for the search string. When enabled, the searchstring is interpreted as a regex pattern rather than literal text.
searchstringstringyesText pattern or barcode format to search for within the PDF. Supports barcode syntax like [[barcode:qrcode,datamatrix /pattern/]] for barcode detection, or plain text strings for text search.
urlstringyesURL of the PDF file to split. Must be a publicly accessible URL pointing to a valid PDF document.

No output schema declared.

No examples provided.

upload_file_from_url ~95

Downloads a file from a source URL and uploads it as a temporary file to the system. Temporary files are automatically deleted after 1 hour.

NameTypeReqDescription
namestringOptional custom name for the uploaded file. If not provided, the original filename from the source URL will be used.
urlstringyesThe source URL of the file to download and upload. Must be a valid, accessible HTTP or HTTPS URL.

No output schema declared.

No examples provided.

upload_file_from_url_direct ~95

Downloads a file from a remote URL and uploads it as a temporary file to the system. The temporary file will be automatically deleted after 1 hour.

NameTypeReqDescription
namestringOptional custom name for the uploaded file. If not provided, the original filename from the source URL will be used.
urlstringyesThe remote URL pointing to the file to download and upload. Must be a valid URI format.

No output schema declared.

No examples provided.

Common questions

What is the com.mcparmory/pdfco MCP server?

com.mcparmory/pdfco is an MCP server listed in the public MCP registry as com.mcparmory/pdfco. Extract data, edit, convert, and parse PDF documents with OCR and AI. This page covers its PyPI package (mcparmory-pdfco).

Is the com.mcparmory/pdfco MCP server safe to use?

com.mcparmory/pdfco scores 74 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 com.mcparmory/pdfco MCP server expose?

com.mcparmory/pdfco exposes 65 tools: extract_invoice_data, extract_data_from_pdf_document, list_document_parser_templates, get_document_parser_template, extract_pdf_attachments, and 60 more. Their descriptions and schemas cost roughly 12,004 tokens of context every time the server is loaded.

Is the com.mcparmory/pdfco MCP server still maintained?

com.mcparmory/pdfco 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.