npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@privacyscrubber/mcp-server

v1.7.0

Published

CISO-Approved Zero-Trust PII & Secrets Redaction MCP Server for Cursor, Windsurf, and Claude Desktop. Prevent API leaks and comply with HIPAA/SOC 2 locally.

Readme

@privacyscrubber/mcp-server

NPM Version License: MIT smithery badge Security: 100% Local Parity: 100% Core Match

CISO-Approved Zero-Trust PII & Secrets Redaction MCP Server for Cursor, Windsurf, and Claude Desktop. Locally scrubs PII, secrets, credentials, and custom regex rules from files and text contexts before they reach remote LLM providers to prevent API leaks and ensure HIPAA/SOC 2 compliance at the developer endpoint.


🔒 Zero-Trust Data Flow

All sensitive parameters, identifiers, and variables are intercepted locally inside your machine's RAM. They are replaced by tokens (e.g. [EMAIL_1]) before being sent to the AI. Once the AI responds, the tokens are safely swapped back to original values in your local context.

[Raw Input / Files] ──> [MCP sanitize_text] ──> [Masked Tokens] ──> [LLM API]
                               │                                       │
                        (In-Memory Map)                             (Result)
                               │                                       │
[Original Output] <─── [MCP reveal_text] <─────────────────────────────┘

🚀 Installation

1. Install via Smithery

To automatically configure and run with your preferred client, install using Smithery:

npx -y @smithery/cli install @privacyscrubber/mcp-server --write-to-clients

2. Instant Run with NPX

Run the server directly without local installation:

npx -y @privacyscrubber/mcp-server

⚙️ Client Integrations

Claude Desktop

Add this to your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "privacyscrubber": {
      "command": "npx",
      "args": ["-y", "@privacyscrubber/mcp-server"],
      "env": {
        "PRIVACYSCRUBBER_KEY": "YOUR_OPTIONAL_PRO_LICENSE_KEY"
      }
    }
  }
}

Cursor / Windsurf

  1. Navigate to Settings -> Features -> MCP.
  2. Add new MCP server:
    • Name: privacyscrubber
    • Type: command
    • Command: npx -y @privacyscrubber/mcp-server
  3. Optional: Set PRIVACYSCRUBBER_KEY as an environment variable in your system shell.

🛠️ Provided Tools & JSON-RPC Specifications

1. sanitize_text

Redacts PII, secrets, API keys, and credentials from a text block and populates the volatile local replacement mapping.

  • Arguments:
    • text (string, required): The raw content or logs to sanitize.
    • profile (string, optional): Gated industry detection profile (e.g., 'General', 'Dev', 'Medical', 'Legal', 'Compliance'). Defaults to 'General'.
  • JSON-RPC Call Example:
    {
      "method": "tools/call",
      "params": {
        "name": "sanitize_text",
        "arguments": {
          "text": "Contact me at dev-key-1234 or [email protected]",
          "profile": "General"
        }
      }
    }
  • Response Example:
    {
      "content": [
        {
          "type": "text",
          "text": "Contact me at [SECRET_1] or [EMAIL_1]"
        }
      ]
    }

2. reveal_text

Detokenizes the AI response back to the original values locally.

  • Arguments:
    • text (string, required): The response from the LLM containing tokenized placeholders.
  • JSON-RPC Call Example:
    {
      "method": "tools/call",
      "params": {
        "name": "reveal_text",
        "arguments": {
          "text": "Please reach out to [EMAIL_1] regarding the update."
        }
      }
    }
  • Response Example:
    {
      "content": [
        {
          "type": "text",
          "text": "Please reach out to [email protected] regarding the update."
        }
      ]
    }

3. sanitize_file

Reads a local file, extracts text, sanitizes it, and returns the redacted template for LLM analysis.

  • Supported Formats: Plain text (source code, logs, CSV, JSON, markdown) and Microsoft Word (.docx) documents.
  • Arguments:
    • filePath (string, required): Absolute file path to read and sanitize.
    • profile (string, optional): The industry detection profile.

🌐 Browser Extension & Web Client

Looking for real-time protection directly inside your web browser?

📄 License & Commercial Upgrade

By default, the server runs under the Free Tier (restricted to 50,000 characters per request and the basic General PII profile). To unlock advanced engineering, medical, legal, and financial PII profiles, as well as team-wide custom rules, you can purchase a commercial license.

Feature Comparison

| Feature | Free Tier | PRO Tier | TEAMS Tier | | :--- | :--- | :--- | :--- | | Volatile Tokenization | ✅ Yes | ✅ Yes | ✅ Yes | | Standard PII Masking | ✅ Yes | ✅ Yes | ✅ Yes | | Max Character Length | 50,000 chars | ♾️ Unlimited | ♾️ Unlimited | | Industry Profiles | General Only | 22+ Profiles | 22+ Profiles | | Custom Regex Rules | ❌ Locked | ♾️ Unlimited | ♾️ Unlimited | | Team Rules Sync (GPO) | ❌ No | ❌ No | ✅ Yes (Shared Link) | | Licensing Cost | $0 | $110 Lifetime | $99/mo Flat Rate |

👉 Acquire a PRO / TEAMS License Key at privacyscrubber.com/pricing


4. check_status

Returns a visual dashboard showing your current tier, session request count, active profiles, and upgrade instructions. Use it at any time to check your license status or get setup help.

  • Arguments: (none required)
  • JSON-RPC Call Example:
    {
      "method": "tools/call",
      "params": { "name": "check_status", "arguments": {} }
    }
  • Response Example (Free Tier):
    ╔══════════════════════════════════════════════════╗
    ║       PrivacyScrubber MCP Server v1.6.6          ║
    ╠══════════════════════════════════════════════════╣
    ║  🔓 Tier: FREE                                   ║
    ║  📊 Session requests: 5                          ║
    ║  📁 Input size limit: 50,000 characters per request║
    ╠══════════════════════════════════════════════════╣
    ║  🏷️  Profiles: General only — PRO unlocks 22 more  ║
    ║  📋 Custom rules: 🔒 Locked — requires PRO       ║
    ╠══════════════════════════════════════════════════╣
    ║  💳 Upgrade to PRO — $110 Lifetime               ║
    ║     https://privacyscrubber.com/pricing          ║
    ╠══════════════════════════════════════════════════╣
    ║  After purchase, add your key to MCP config:     ║
    ║  "PRIVACYSCRUBBER_KEY": "<your-key-here>"        ║
    ║  Full setup guide:                               ║
    ║  https://privacyscrubber.com/features/mcp/       ║
    ╚══════════════════════════════════════════════════╝

🔐 After Purchase: Activate PRO in Your MCP Client

After purchasing a PRO license at privacyscrubber.com/pricing, you will receive a license key. Add it to your MCP client config as an environment variable: PRIVACYSCRUBBER_KEY.

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "privacyscrubber": {
      "command": "npx",
      "args": ["-y", "@privacyscrubber/mcp-server"],
      "env": {
        "PRIVACYSCRUBBER_KEY": "YOUR_LICENSE_KEY_HERE"
      }
    }
  }
}

Restart Claude Desktop after saving.

Cursor

  1. Go to Settings → Features → MCP Servers.
  2. Find privacyscrubber and click Edit.
  3. Add the environment variable: PRIVACYSCRUBBER_KEY=YOUR_LICENSE_KEY_HERE.
  4. Restart Cursor.

Alternatively, export it system-wide so all tools pick it up:

# macOS / Linux — add to ~/.zshrc or ~/.bashrc
export PRIVACYSCRUBBER_KEY="YOUR_LICENSE_KEY_HERE"

Windsurf

Edit ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "privacyscrubber": {
      "command": "npx",
      "args": ["-y", "@privacyscrubber/mcp-server"],
      "env": {
        "PRIVACYSCRUBBER_KEY": "YOUR_LICENSE_KEY_HERE"
      }
    }
  }
}

Verify Activation

After adding the key, ask your AI agent to call check_status:

Use the check_status tool from PrivacyScrubber MCP

The dashboard should show Tier: PRO and all profiles unlocked.