# blackout

Permanently strips private data from PDF files locally by rasterising pages and destroying the underlying text layer.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Author: thrain-ai
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/thrain-ai/blackout-pdf
- Updated: 2026-08-08
- HTML: https://affpapa.org/en/nevibecode/mcp/blackout

## What it does

AI assistants tasked with redacting files frequently place black boxes over text while leaving the raw strings selectable underneath. This server provides `redact_pdf` and `check_pdf` tools that rasterise each page, burn the redactions into raw pixels, and discard the original text layer entirely.

Under the hood, the engine relies on Skia in Node.js to handle canvas rendering. It targets identifiers such as payment card details, phone records, email addresses, and SSNs. Every run performs an automated text extraction check on the newly minted document; if any selectable characters remain, the process exits with an error instead of saving an insecure file.

All operations run on your local device without sending network traffic during document processing.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add blackout -- npx -y @thrain/blackout-mcp
```

### Codex

**Platform CLI**
```bash
codex mcp add blackout -- npx -y @thrain/blackout-mcp
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "blackout": {
            "command": "npx",
            "args": [
                "-y",
                "@thrain/blackout-mcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "blackout": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@thrain/blackout-mcp"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add blackout npx -y @thrain/blackout-mcp
```

## When to use it
- sanitize sensitive records in PDF format without cloud uploads
- rasterize pages so hidden text cannot be recovered by copy-paste
- verify through check_pdf that a redacted document has zero extractable text

## Example prompts
- Redact social security numbers and emails from `contract.pdf` using `redact_pdf`
- Sanitize `records.pdf` by removing phone numbers and card data
- Run `check_pdf` on `final.pdf` to confirm the text layer is gone

## Similar
- [openai-privacy-filter](https://affpapa.org/en/nevibecode/skills/openai-privacy-filter.md) — skill · 369 installs
- [Redact MCP](https://affpapa.org/en/nevibecode/mcp/redact-mcp.md) — MCP server · ★ 6
- [output-sanitizer](https://affpapa.org/en/nevibecode/skills/output-sanitizer.md) — skill · 476 installs
- [KDAN PDF](https://affpapa.org/en/nevibecode/mcp/kdan-pdf.md) — MCP server · ★ 57
- [redacta-mcp](https://affpapa.org/en/nevibecode/mcp/redacta-mcp.md) — MCP server · ★ 8
- [pii-detect](https://affpapa.org/en/nevibecode/skills/pii-detect.md) — skill · 762 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
