mcpField
S
ScrubGuard

ScrubGuard

Local
scrubguard-api.scrubguard.workers.devSecurity

About ScrubGuard

ScrubGuard is a PII and secret scrubber for developers and AI workflows that handle sensitive text and JSON. It supports reversible placeholders and uses checksum rules to reduce false positives on ordinary numbers.

Key features

  1. 01Detects and scrubs PII and secrets
  2. 02Validates cards, IBANs, and SSNs
  3. 03Reversible tokens and restoration
  4. 04Recursively sanitizes nested JSON
  5. 05Linear-time regex with bounded backtracking

Use cases

  1. 01Remove sensitive data before sending LLM prompts
  2. 02Clean credentials and personal data from logs
  3. 03Restore placeholders in LLM responses

MCP support

The local MCP server exposes scrub_text, rehydrate_text, and scrub_json tools for text scrubbing, token restoration, and JSON sanitization.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"scrubguard-dev-scrubguard": {
"command": "npx",
"args": [
"-y",
"scrubguard-mcp"
],
"env": {
"SCRUBGUARD_API_KEY": "<SCRUBGUARD_API_KEY>"
}
}
}
}
Run commandnpx -y scrubguard-mcp
Environment variables to set
SCRUBGUARD_API_KEYSecretOptional Pro key for the hosted API. Leave unset to scrub locally with no network calls.

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmscrubguard-mcp1.0.0

Tools

3

Saved tool list · updated 4d ago

ParameterTypeRequiredDescription
modeenumNotokenize ([EMAIL_1] + reversible vault), redact, or masktokenize | redact | mask
textstringYesRaw text or prompt to sanitize
typesarrayNoOptional whitelist of detector types

Details

From the project README

ScrubGuard - Deterministic PII & Secret Scrubber + Reversible LLM Tokenizer

Sub-millisecond, zero-dependency PII & secret redaction with mathematical checksum verification (Luhn Credit Cards, ISO 7064 Mod-97 IBANs, SSA US SSN rules) and Reversible LLM Tokenization.

Strip sensitive data before sending prompts to OpenAI, Anthropic, or logs, and rehydrate [EMAIL_1] / [CREDIT_CARD_1] placeholders in the LLM's response automatically.


Features

  • Mathematical Checksum Validation: Cuts false positives on order IDs and random numbers using Luhn (Credit Cards), ISO 7064 Mod-97 (IBANs), and SSA Area/Group/Serial validation (US SSNs).
  • Secret & API Key Detection: Scrubs leaked OpenAI (sk-proj-...), Anthropic (sk-ant-...), Stripe (sk_live_..., sk_test_..., whsec_...), AWS (AKIA...), GitHub PAT (ghp_..., github_pat_...), Slack, Google API, JWT, and PEM Private Keys.
  • Reversible LLM Tokenization: Replaces PII with consistent placeholders ([EMAIL_1], [US_SSN_1]) and returns a vault map so LLM outputs can be restored via rehydrateText or POST /v1/rehydrate.
  • Deep JSON Sanitizer: Recursively scrubs strings and sensitive keys (password, secret, api_key, ssn) up to 32 levels deep without breaking JSON schemas.
  • Linear-Time Regex Engine: Disjoint character classes and bounded repetitions prevent catastrophic backtracking (ReDoS).

Quick Start (Hosted Edge API)

1. Scrub & Tokenize Prompt Before Sending to an LLM (POST /v1/scrub)
curl -X POST https://scrubguard-api.scrubguard.workers.dev/v1/scrub \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Refund customer [email protected] on card 4532 0151 1283 0366 (SSN 412-55-9821)",
    "mode": "tokenize"
  }'

Response:

{
  "output": "Refund customer [EMAIL_1] on card [CREDIT_CARD_1] (SSN [US_SSN_1])",
  "findings_count": 3,
  "findings_by_type": {
    "CREDIT_CARD": 1,
    "US_SSN": 1,
    "EMAIL": 1
  },
  "vault": {
    "[CREDIT_CARD_1]": "4532 0151 1283 0366",
    "[US_SSN_1]": "412-55-9821",
    "[EMAIL_1]": "[email protected]"
  }
}
2. Rehydrate LLM Output (POST /v1/rehydrate)
curl -X POST https://scrubguard-api.scrubguard.workers.dev/v1/rehydrate \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Processed refund for [EMAIL_1] ending in [CREDIT_CARD_1].",
    "vault": {
      "[CREDIT_CARD_1]": "4532 0151 1283 0366",
      "[EMAIL_1]": "[email protected]"
    }
  }'

Node.js / Edge SDK (ScrubGuardClient)

import { ScrubGuardClient } from 'scrubguard-mcp'; // npm install scrubguard-mcp

const guard = new ScrubGuardClient({
  apiKey: process.env.SCRUBGUARD_API_KEY, // Optional: uses hosted Pro Edge API (100k req/mo)
});

// 1. Scrub user prompt
const { output: safePrompt, vault } = await guard.scrub(
  'Email [email protected] with key AKIAIOSFODNN7EXAMPLE'
);

// 2. Send `safePrompt` to OpenAI / Anthropic...
const llmResponse = `Sent confirmation to ${safePrompt.match(/\[EMAIL_\d+\]/)[0]}.`;

// 3. Restore original values
const { output: finalReply } = await guard.rehydrate(llmResponse, vault);

Model Context Protocol (MCP) Server for Claude Desktop & Cursor

ScrubGuard runs locally by default with no network calls. Add it to your claude_desktop_config.json or .cursor/mcp.json:

{
  "mcpServers": {
    "scrubguard": {
      "command": "npx",
      "args": ["-y", "scrubguard-mcp"]
    }
  }
}

To use the optional hosted Pro API, or to run from a local clone:

{
  "mcpServers": {
    "scrubguard": {
      "command": "node",
      "args": ["/path/to/scrubguard/mcp/index.js"],
      "env": {
        "SCRUBGUARD_API_KEY": "sg_live_optional_pro_key"
      }
    }
  }
}

Exposes three MCP tools to your AI assistant:

  • scrub_text: Scrub or reversibly tokenize PII & secrets in text.
  • rehydrate_text: Restore [TOKEN_1] placeholders using the vault map.
  • scrub_json: Recursively sanitize nested JSON objects and logs.

Support & Contact

Questions, bug reports, or higher volume plans: [email protected]

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.