tastenkasperle/scrub-vault

Zero-dependency in-memory PII airgap & reversible masking proxy for Cloud LLMs (GDPR Art. 32 compliant MCP server)

Python

0

5 commits

updated Sep 30, 2026

See the code

See what people are saying

README

🛡️ ScrubVault: Zero-Data-Leak AI Airgap & Reversible PII Masking Engine

PyPI version License: Apache 2.0 Zero Dependencies Raptor Guard Certified GDPR Art. 32

Send sensitive data to Cloud LLMs (ChatGPT, Claude, Gemini) without ever leaking confidential PII.

pip install scrub-vault

ScrubVault is a lightweight, zero-dependency in-memory privacy proxy and Model Context Protocol (MCP) server. It intercept prompts, replaces personal identifiable information (emails, IBANs, IP addresses, credit cards, tax IDs) with deterministic local tokens ({{EMAIL_1}}, {{IBAN_1}}), and restores the original values when the AI responds.


🚀 The Architecture

                   +----------------------------------+
                   |  Your Prompt (Confidential PII)  |
                   +----------------------------------+
                                     │
                                     ▼
                      ┌─────────────────────────────┐
                      │    ScrubVault (Local RAM)   │
                      │  - Scans & Masks Sensitive  │
                      │  - Stores Mapping in Memory │
                      └─────────────────────────────┘
                                     │
                                     ▼ (Masked Prompt: "{{EMAIL_1}}, {{IBAN_1}}")
                      ┌─────────────────────────────┐
                      │    Public Cloud LLM API     │
                      │   (OpenAI / Anthropic / ...) │
                      │   *Zero PII is transmitted* │
                      └─────────────────────────────┘
                                     │
                                     ▼ (Response with tokens)
                      ┌─────────────────────────────┐
                      │    ScrubVault (Local RAM)   │
                      │  - Deterministic Unmasking  │
                      └─────────────────────────────┘
                                     │
                                     ▼
                   +----------------------------------+
                   |  End-User Result (Restored PII)  |
                   +----------------------------------+

⚡ Quickstart

1. Python SDK (Zero Dependencies)

from src.core.vault import ScrubVault

vault = ScrubVault()

# 1. Mask sensitive input
input_text = "Order for client Max, email: max@corp.de, IBAN: DE89370400440532013000"
result = vault.mask(input_text)

print(result.masked_text)
# Output: "Order for client Max, email: {{EMAIL_1}}, IBAN: {{IBAN_1}}"

# 2. Transmit result.masked_text to your LLM of choice...
ai_response = "Received confirmation for {{EMAIL_1}} on account {{IBAN_1}}."

# 3. Unmask locally
clean_response = vault.unmask(ai_response, result.token_map)
print(clean_response)
# Output: "Received confirmation for max@corp.de on account DE89370400440532013000."

2. Standalone CLI

# Calculate GDPR Art. 32 Risk Score
python -m src.cli.main audit "Contract with Herr Schmidt, IBAN: DE89370400440532013000"

# Mask a dataset file directly
python -m src.cli.main scrub-dataset input.json output_clean.json

🤖 Model Context Protocol (MCP) Integration

ScrubVault includes a native stdio Model Context Protocol (MCP) server. Add it to your claude_desktop_config.json or Antigravity configuration:

{
  "mcpServers": {
    "scrub_vault": {
      "command": "python",
      "args": ["-m", "src.mcp.server"],
      "cwd": "/path/to/scrub_vault"
    }
  }
}

Available MCP Tools:

  • scrub_mask_text: Masks PII in input text and returns a reversible token map.
  • scrub_unmask_text: Replaces tokens with original values.
  • scrub_audit_risk: Calculates risk scores and detection breakdowns.
  • scrub_anonymize_json: Recursively scrubs JSON structures.

🛡️ Security & Clean Code Standard

  • Pure Python Standard Library: Zero third-party dependencies (re, json, sys, typing).
  • In-Memory Vault: Token maps live exclusively in volatile RAM and are never written to disk.
  • ReDoS Hardened: Regex patterns are strictly bounded against algorithmic complexity attacks.
  • Audit Passed: Tested and verified by Raptor Guard SAST (0 Critical, 0 High, 0 Medium findings).

📄 License

Apache License 2.0. Open-source research and engineering by the Diamantenschmiede.

ai-security
anonymization
claude-desktop
dsgvo
gdpr
llm-security
mcp
mcp-server
model-context-protocol
pii-masking
privacy
python
zero-dependency

tastenkasperle/scrub-vault

Zero-dependency in-memory PII airgap & reversible masking proxy for Cloud LLMs (GDPR Art. 32 compliant MCP server)

Python

0

5 commits

updated Sep 30, 2026

See the code

See what people are saying

README

🛡️ ScrubVault: Zero-Data-Leak AI Airgap & Reversible PII Masking Engine

PyPI version License: Apache 2.0 Zero Dependencies Raptor Guard Certified GDPR Art. 32

Send sensitive data to Cloud LLMs (ChatGPT, Claude, Gemini) without ever leaking confidential PII.

pip install scrub-vault

ScrubVault is a lightweight, zero-dependency in-memory privacy proxy and Model Context Protocol (MCP) server. It intercept prompts, replaces personal identifiable information (emails, IBANs, IP addresses, credit cards, tax IDs) with deterministic local tokens ({{EMAIL_1}}, {{IBAN_1}}), and restores the original values when the AI responds.


🚀 The Architecture

                   +----------------------------------+
                   |  Your Prompt (Confidential PII)  |
                   +----------------------------------+
                                     │
                                     ▼
                      ┌─────────────────────────────┐
                      │    ScrubVault (Local RAM)   │
                      │  - Scans & Masks Sensitive  │
                      │  - Stores Mapping in Memory │
                      └─────────────────────────────┘
                                     │
                                     ▼ (Masked Prompt: "{{EMAIL_1}}, {{IBAN_1}}")
                      ┌─────────────────────────────┐
                      │    Public Cloud LLM API     │
                      │   (OpenAI / Anthropic / ...) │
                      │   *Zero PII is transmitted* │
                      └─────────────────────────────┘
                                     │
                                     ▼ (Response with tokens)
                      ┌─────────────────────────────┐
                      │    ScrubVault (Local RAM)   │
                      │  - Deterministic Unmasking  │
                      └─────────────────────────────┘
                                     │
                                     ▼
                   +----------------------------------+
                   |  End-User Result (Restored PII)  |
                   +----------------------------------+

⚡ Quickstart

1. Python SDK (Zero Dependencies)

from src.core.vault import ScrubVault

vault = ScrubVault()

# 1. Mask sensitive input
input_text = "Order for client Max, email: max@corp.de, IBAN: DE89370400440532013000"
result = vault.mask(input_text)

print(result.masked_text)
# Output: "Order for client Max, email: {{EMAIL_1}}, IBAN: {{IBAN_1}}"

# 2. Transmit result.masked_text to your LLM of choice...
ai_response = "Received confirmation for {{EMAIL_1}} on account {{IBAN_1}}."

# 3. Unmask locally
clean_response = vault.unmask(ai_response, result.token_map)
print(clean_response)
# Output: "Received confirmation for max@corp.de on account DE89370400440532013000."

2. Standalone CLI

# Calculate GDPR Art. 32 Risk Score
python -m src.cli.main audit "Contract with Herr Schmidt, IBAN: DE89370400440532013000"

# Mask a dataset file directly
python -m src.cli.main scrub-dataset input.json output_clean.json

🤖 Model Context Protocol (MCP) Integration

ScrubVault includes a native stdio Model Context Protocol (MCP) server. Add it to your claude_desktop_config.json or Antigravity configuration:

{
  "mcpServers": {
    "scrub_vault": {
      "command": "python",
      "args": ["-m", "src.mcp.server"],
      "cwd": "/path/to/scrub_vault"
    }
  }
}

Available MCP Tools:

  • scrub_mask_text: Masks PII in input text and returns a reversible token map.
  • scrub_unmask_text: Replaces tokens with original values.
  • scrub_audit_risk: Calculates risk scores and detection breakdowns.
  • scrub_anonymize_json: Recursively scrubs JSON structures.

🛡️ Security & Clean Code Standard

  • Pure Python Standard Library: Zero third-party dependencies (re, json, sys, typing).
  • In-Memory Vault: Token maps live exclusively in volatile RAM and are never written to disk.
  • ReDoS Hardened: Regex patterns are strictly bounded against algorithmic complexity attacks.
  • Audit Passed: Tested and verified by Raptor Guard SAST (0 Critical, 0 High, 0 Medium findings).

📄 License

Apache License 2.0. Open-source research and engineering by the Diamantenschmiede.

ai-security
anonymization
claude-desktop
dsgvo
gdpr
llm-security
mcp
mcp-server
model-context-protocol
pii-masking
privacy
python
zero-dependency

Languages

Python

100.0%