Skip to content
Squatch MCP

dev.pdfops/pdfops-mcp

dev.pdfops/pdfops-mcp

by dev.pdfopsยท v0.4.5Source: Official MCP Registry

MCP Bill of Materials

A machine-readable inventory of what this server exposes and depends on: tools with their effects, transports, packages, findings and provenance (schema version 1.0). Third-party text in it is escaped. Also available from the REST API at /api/v1/servers/67c109be-5c80-4652-bf9e-4a72efba90f2/mcbom.

MCP Bill of Materials

root{21}
schema_version: "1.0"
bom_format: "squatch-mcbom"
generator{3}
name: "squatch-mcp"
classifier_version: "rules_v1@2026-10-11.1"
unicode_version: "18.0.0"
server{7}
name: "dev.pdfops/pdfops-mcp"
title: null
description: "PDF tools for AI agents: inspect, fill, merge, split, rotate, watermark, protect and invoice PDFs."
version: "0.4.5"
homepage_url: "https://pdfops.dev"
source: "official_registry"
upstream_status: "active"
publisher{4}
namespace: "dev.pdfops"
display_name: "dev.pdfops"
type: "registry_namespace"
status: "unclaimed"
organization: null
repository{5}
url: "https://github.com/pdfops/pdfops-mcp"
provider: "github"
owner: "pdfops"
name: "pdfops-mcp"
verified: false
packages[1]
0{4}
registry_type: "npm"
identifier: "pdfops-mcp"
version: "0.4.5"
transport: "stdio"
transports[2]
0{5}
kind: "package"
type: "stdio"
endpoint_url: null
endpoint_host: null
auth_type: "unknown"
1{5}
kind: "remote"
type: "streamable-http"
endpoint_url: "https://pdfops.dev/api/mcp"
endpoint_host: "pdfops.dev"
auth_type: "none"
auth{3}
type: "none"
authorization_servers[0]
scopes[0]
protocol{4}
era: "modern"
negotiated_version: "2026-07-28"
supported_versions[0]
transport_type: "streamable-http"
tools[15]
0{9}
name: "pdf_delete_pages"
title: "Delete pages from PDF"
effect: "DELETE"
effect_confidence: 0.745
capabilities[1]
0{2}
capability: "FILE_ACCESS"
confidence: 0.567
risk_severity: "HIGH"
fingerprint: "1c783655a3158a4546c58bfbb8c162b0a94c7c41850821f7d708d06af4affa05"
input_schema_fingerprint: "73bf96cc374a7a1ea1b5579960d969c6010625a7b327a8f71ef1b1b4db733d68"
annotations{5}
title: null
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
1{9}
name: "pdf_extract_pages"
title: "Extract pages from PDF"
effect: "READ"
effect_confidence: 0.783
capabilities[1]
0{2}
capability: "FILE_ACCESS"
confidence: 0.632
risk_severity: "MEDIUM"
fingerprint: "7521f5dd9fd40d16b378da6ce1585c1e66e61d6b75f94052935654b0531c1f22"
input_schema_fingerprint: "403dc048f8d62c5df80f3cbf66a44fe9af866541c010f2fe4b8b42feabc7ef4c"
annotations{5}
title: null
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
2{9}
name: "pdf_fill"
title: "Fill PDF form"
effect: "WRITE"
effect_confidence: 0.86
capabilities[2]
0{2}
capability: "AUTHENTICATION"
confidence: 0.53
1{2}
capability: "FILE_ACCESS"
confidence: 0.632
risk_severity: "MEDIUM"
fingerprint: "fadc51bfc1dfd0ec3aba003bfb1107b68f46638d5dedf462f9f92ab0ffd0d8c2"
input_schema_fingerprint: "b0c636db8f5d68760356381576c7688b9781f95a2ce99feb3dffd082ff7ceb93"
annotations{5}
title: null
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
3{9}
name: "pdf_inspect"
title: "Inspect PDF form fields"
effect: "READ"
effect_confidence: 0.888
capabilities[1]
0{2}
capability: "FILE_ACCESS"
confidence: 0.779
risk_severity: "MEDIUM"
fingerprint: "0c8c7cc9d773f70d3f78f911ee7a8ad2c61d0c34a06fd9fad9a96c9c4496a586"
input_schema_fingerprint: "a856679e19f37af89816d2f45f0c494f7d075b557854de61e4960b2a550c90da"
annotations{5}
title: null
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
4{9}
name: "pdf_invoice"
title: "Generate invoice PDF"
effect: "READ"
effect_confidence: 0.72
capabilities[3]
0{2}
capability: "EMAIL"
confidence: 0.577
1{2}
capability: "PAYMENT"
confidence: 0.949
2{2}
capability: "PERSONAL_DATA"
confidence: 0.577
risk_severity: "MEDIUM"
fingerprint: "c06db0d7e33b7930a06c7143a4289e05ab3793e1d32b3558e053cf18f0cd7862"
input_schema_fingerprint: "28e227115bef23399b08efe0d55db909b3de1aa25057f89574c97016d5ce8b11"
annotations{5}
title: null
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
5{9}
name: "pdf_merge"
title: "Merge PDFs"
effect: "WRITE"
effect_confidence: 0.804
capabilities[1]
0{2}
capability: "FILE_ACCESS"
confidence: 0.801
risk_severity: "MEDIUM"
fingerprint: "fb4819f3e16f7205fbc73444b23bd909170e71b0c1fe10ffee6dcabad1314a81"
input_schema_fingerprint: "0c62d9d5a0c6f7504cbbc17d69f0b8f0333d8c2f256fe0cc013e097956ca72a6"
annotations{5}
title: null
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
6{9}
name: "pdf_metadata"
title: "Read PDF metadata"
effect: "READ"
effect_confidence: 0.776
capabilities[1]
0{2}
capability: "FILE_ACCESS"
confidence: 0.74
risk_severity: "MEDIUM"
fingerprint: "e275848ac2059a9c54b9a7b5373351fb1f6c830e8813831a930b9bc78f30d137"
input_schema_fingerprint: "a856679e19f37af89816d2f45f0c494f7d075b557854de61e4960b2a550c90da"
annotations{5}
title: null
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
7{9}
name: "pdf_page_numbers"
title: "Add page numbers to PDF"
effect: "READ"
effect_confidence: 0.533
capabilities[1]
0{2}
capability: "FILE_ACCESS"
confidence: 0.567
risk_severity: "MEDIUM"
fingerprint: "6d55392f3dd98fcf8fa7715565148d166083b9864a339654282b6bc67cf0632a"
input_schema_fingerprint: "bacfedfa9c33b6732c9c5597cbe4ab21a5c0dbb8658834b2a845432742d2accd"
annotations{5}
title: null
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
8{9}
name: "pdf_protect"
title: "Password-protect PDF"
effect: "UNKNOWN"
effect_confidence: 0.15
capabilities[3]
0{2}
capability: "AUTHENTICATION"
confidence: 0.944
1{2}
capability: "FILE_ACCESS"
confidence: 0.567
2{2}
capability: "SECRETS"
confidence: 0.725
risk_severity: "MEDIUM"
fingerprint: "552e67d6c12e12fb1c0fe5c5657e5ab4f696d1c9b5653d2fdbd22ada71a008ef"
input_schema_fingerprint: "4587eacff7d542c9dfdfc2b24b53af87ae31bfc8490598317de2c7ed0b439879"
annotations{5}
title: null
readOnlyHint: false
destructiveHint: false
idempotentHint: false
openWorldHint: true
9{9}
name: "pdf_rotate"
title: "Rotate PDF pages"
effect: "WRITE"
effect_confidence: 0.86
capabilities[1]
0{2}
capability: "FILE_ACCESS"
confidence: 0.567
risk_severity: "MEDIUM"
fingerprint: "12c0e1465fcd4f83d6e8cc2c2ab580a00ae6f05c1d43d40ec7c579e3f2ea0dd6"
input_schema_fingerprint: "25184a25ed5ad6d2d950646c1748d0c1ca6d0c6b73c11dc61e30e2280ca14c29"
annotations{5}
title: null
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
10{9}
name: "pdf_set_metadata"
title: "Set PDF metadata"
effect: "WRITE"
effect_confidence: 0.86
capabilities[1]
0{2}
capability: "FILE_ACCESS"
confidence: 0.632
risk_severity: "MEDIUM"
fingerprint: "81edba05333bf78f07dc8238d3c9b1f96de1561e30f5073adcd4df48eabf8385"
input_schema_fingerprint: "ea50c029624c7f42b78aa0c6a5732aa0e355a0178d02dba599d195cd736c4b75"
annotations{5}
title: null
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
11{9}
name: "pdf_split"
title: "Split PDF into parts"
effect: "UNKNOWN"
effect_confidence: 0.15
capabilities[1]
0{2}
capability: "FILE_ACCESS"
confidence: 0.74
risk_severity: "MEDIUM"
fingerprint: "db1161e4b6e3fc1d5e326af58c028f253df8c2d8f22fd60a6bb930a46c0ee6f6"
input_schema_fingerprint: "54e024b218e149929d0bd3365638f96d148b8b252c5f1a3a611aa5a2871f2e74"
annotations{5}
title: null
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
12{9}
name: "pdf_unlock"
title: "Remove PDF restrictions"
effect: "WRITE"
effect_confidence: 0.801
capabilities[2]
0{2}
capability: "AUTHENTICATION"
confidence: 0.53
1{2}
capability: "FILE_ACCESS"
confidence: 0.632
risk_severity: "MEDIUM"
fingerprint: "4e91bcd81ed4f1e4953802a1746eff922ab06c65ad456b1e562f6a183a5ee5f3"
input_schema_fingerprint: "a856679e19f37af89816d2f45f0c494f7d075b557854de61e4960b2a550c90da"
annotations{5}
title: null
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
13{9}
name: "pdf_watermark"
title: "Add text watermark to PDF"
effect: "WRITE"
effect_confidence: 0.4
capabilities[1]
0{2}
capability: "FILE_ACCESS"
confidence: 0.567
risk_severity: "MEDIUM"
fingerprint: "8dc127b3d7ab8811efa639b6c39151b4f1a138c8718388f008f32557ed9cfc26"
input_schema_fingerprint: "cacafca8f691f1ecfd0145eb2f0542720607b9af725a6cbffc49fccccbcd5a58"
annotations{5}
title: null
readOnlyHint: false
destructiveHint: false
idempotentHint: true
openWorldHint: true
14{9}
name: "pdfops_usage"
title: "Check PDFops quota"
effect: "READ"
effect_confidence: 0.736
capabilities[0]
risk_severity: "INFO"
fingerprint: "f1d8468eb16e961f40931a813421220855844c24954219aaf3690cab451a440b"
input_schema_fingerprint: "efddc7bd8bbcef73a14eb1ace1ffdaec81e518ef1e13c1e9271d0b8acb694a49"
annotations{5}
title: null
readOnlyHint: true
destructiveHint: false
idempotentHint: true
openWorldHint: true
resources[0]
prompts[0]
extensions[0]
data{6}
privacy_completeness: "not_provided"
data_categories[0]
ai_training: null
retention_policy: null
processing_regions[0]
subprocessors[0]
external_integrations[1]
0{3}
host: "pdfops.dev"
registrable_domain: "pdfops.dev"
source: "transport"
findings[23]
0{6}
check_id: "SQ-SERVER-AUTH-NONE-WRITE"
category: "authentication"
severity: "MEDIUM"
title: "State-changing tools available without authentication"
subject_type: "server"
subject_name: null
1{6}
check_id: "SQ-TOOL-ANNOTATION-DESTRUCTIVE-UNDERCLAIM"
category: "annotations"
severity: "MEDIUM"
title: "Declared non-destructive but appears to delete data"
subject_type: "tool"
subject_name: "pdf_delete_pages"
2{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_delete_pages"
3{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_extract_pages"
4{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_fill"
5{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_inspect"
6{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_merge"
7{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_metadata"
8{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_page_numbers"
9{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_protect"
10{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_protect"
11{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_protect"
12{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_rotate"
13{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_set_metadata"
14{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_split"
15{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_unlock"
16{6}
check_id: "SQ-TOOL-CREDENTIAL-ARGUMENT"
category: "schema"
severity: "MEDIUM"
title: "Asks the AI model to supply credentials as arguments"
subject_type: "tool"
subject_name: "pdf_watermark"
17{6}
check_id: "SQ-TOOL-EXFIL-DIRECTIVE"
category: "prompt_injection"
severity: "HIGH"
title: "Asks the AI model to pass conversation data or secrets"
subject_type: "tool"
subject_name: "pdf_fill"
18{6}
check_id: "SQ-TOOL-EXFIL-DIRECTIVE"
category: "prompt_injection"
severity: "HIGH"
title: "Asks the AI model to pass conversation data or secrets"
subject_type: "tool"
subject_name: "pdf_protect"
19{6}
check_id: "SQ-TOOL-EXFIL-DIRECTIVE"
category: "prompt_injection"
severity: "HIGH"
title: "Asks the AI model to pass conversation data or secrets"
subject_type: "tool"
subject_name: "pdf_unlock"
20{6}
check_id: "SQ-TOOL-EXFIL-SHAPED-PARAM"
category: "schema"
severity: "INFO"
title: "Free-text parameter commonly used to collect conversation data"
subject_type: "tool"
subject_name: "pdf_invoice"
21{6}
check_id: "SQ-TOOL-META-INSUFFICIENT"
category: "tool_design"
severity: "LOW"
title: "Description too thin to determine behavior"
subject_type: "tool"
subject_name: "pdf_protect"
22{6}
check_id: "SQ-TOOL-META-INSUFFICIENT"
category: "tool_design"
severity: "LOW"
title: "Description too thin to determine behavior"
subject_type: "tool"
subject_name: "pdf_split"
trust{9}
registry_namespace: "verified_upstream"
publisher_identity: "unverified"
organization: "unverified"
domain: "unverified"
repository: "unverified"
source_provenance: "unknown"
security_scan: "findings_detected"
privacy_transparency: "not_provided"
monitoring: "active"
provenance{4}
registry_name: "dev.pdfops/pdfops-mcp"
registry_content_sha256: "f5ec430aee3d93de4f9a33ef7b6c7738f3d87d9ef8457939193d0622d60c40ff"
scan_snapshot_fingerprint: "b714e3ae5642a8b6813ffe84499fa9943cb69a5e1b24d2c18d381c96dd7c6a48"
scanner_version: "1.0.0"
timestamps{4}
generated_at: "2026-11-15T20:54:51.555Z"
observed_at: "2026-11-12T19:51:15.441+00:00"
registry_published_at: "2026-11-12T18:42:01.580154+00:00"
registry_updated_at: null