
Security News
PHP Foundation Says Chainguard Broke Security Embargo Ahead of Emergency Patches
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.
@guardbee/mcp-document-scanner
Advanced tools
MCP server and CLI that finds PII and credentials inside PDFs, screenshots and scanned documents — PDF text extraction plus optional OCR (Turkish and English) — before they reach an LLM
🇬🇧 English | 🇹🇷 Türkçe
An MCP server and CLI that finds personal data and credentials inside documents — PDFs, screenshots, scanned pages — before they are handed to an LLM. Text checks in a proxy or a DLP see a PDF attachment or an image as an opaque blob; this package reads it: the PDF text layer first, and OCR (Turkish and English) for images and for PDF pages that have no text.
This package sends usage telemetry by default (tool name + short parameters; document contents and findings are never included — see
@guardbee/mcp-telemetry). Disable withGUARDBEE_TELEMETRY=0.
document ──► type from the bytes (PDF, PNG, JPEG, GIF, WebP, BMP, TIFF, text)
│
├─ PDF page with a text layer ──► text
├─ PDF page without one ─────► render (@napi-rs/canvas) ──► OCR (tesseract.js)
└─ image ─────────────────────► OCR (tesseract.js)
│
guard-core detectors ◄──────┘ TC Kimlik No, VKN, IBAN, card (checksums),
passport, SGK, MERSİS, birth date, address,
e-mail, KEP, phone, 22+ credential formats
npx -y @guardbee/mcp-document-scanner scan ./contracts # text layers only
npm i -g @guardbee/mcp-document-scanner tesseract.js @napi-rs/canvas # with OCR
OCR is optional: tesseract.js reads images, and @napi-rs/canvas (prebuilt, no compiler needed) renders scanned PDF pages for it. Without them the scanner still reads every PDF text layer and says which pages or images it could not read. Tesseract downloads the tur and eng language data (~10 MB) on first use into ~/.cache/guardbee/tessdata (or $XDG_CACHE_HOME/guardbee/tessdata) — never into your working directory. Offline: put <lang>.traineddata in a folder and pass --lang-path.
| Tool | What it does |
|---|---|
scan_document | Scan a file, or every PDF and image in a folder |
scan_base64 | Scan bytes given as base64 (an attachment, an image a tool returned); the type comes from the bytes |
list_detectors | The personal-data and credential detectors that run |
{ "mcpServers": { "documents": { "command": "npx", "args": ["-y", "@guardbee/mcp-document-scanner"] } } }
guardbee-document-scanner scan <file|folder> [--format=text|json|sarif] [--fail-on=any|critical|high|medium|low|none]
[--no-ocr] [--lang=tur,eng] [--lang-path=<dir>] [--cache-path=<dir>] [--include=ip_address,plate_tr]
[--max-pages=50] [--max-files=500] [--text]
⚠️ Found 3 item(s) in 1 document(s) (812ms)
Critical: 0 High: 2 Medium: 1 Low: 0
contracts/acme.pdf (pdf, 2 page(s) read)
[HIGH] tc_kimlik (personal) — page 1, pdf-text: 10*******46
[HIGH] iban (personal) — page 2, pdf-ocr: TR************26
[MEDIUM] email (personal) — page 2, pdf-ocr: al***********om
Findings show only the first and last characters. --format=sarif gives SARIF 2.1.0 with the page as the line, for GitHub Code Scanning. Exit code 1 when something at or above --fail-on was found.
@guardbee/mcp-security-proxy uses this package for interceptors.documents: images and embedded PDFs in tool results and resource blobs are scanned before the model sees them, and a document holding personal data or a credential is withheld (block) or logged (warn).
interceptors:
documents: { enabled: true, action: block, ocr: true, maxBytes: 26214400 }
maxBytes, --max-pages).MIT
FAQs
MCP server and CLI that finds PII and credentials inside PDFs, screenshots and scanned documents — PDF text extraction plus optional OCR (Turkish and English) — before they reach an LLM
The npm package @guardbee/mcp-document-scanner receives a total of 370 weekly downloads. As such, @guardbee/mcp-document-scanner popularity was classified as not popular.
We found that @guardbee/mcp-document-scanner demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.

Security News
PHP releases emergency patches for two critical RCE vulnerabilities as agencies urge organizations to take unpatched sites offline.

Threat Research
/Security News
A supply chain attack compromised LiteLLM 1.107.0 on PyPI and Docker, spreading malware that steals cloud credentials, developer secrets, and AI provider keys.