mcpField
S
ScrubGuard

ScrubGuard

本地服务
scrubguard-api.scrubguard.workers.dev安全

关于 ScrubGuard

ScrubGuard 是面向处理敏感文本和 JSON 的开发者及 AI 工作流的 PII 与密钥清理工具。它支持可逆占位符,并通过校验和规则减少对普通数字的误判。

主要功能

  1. 01PII 与密钥检测及清理
  2. 02校验信用卡、IBAN 和 SSN
  3. 03可逆占位符与数据还原
  4. 04递归清理嵌套 JSON
  5. 05限制回溯的线性时间正则

适用场景

  1. 01发送提示词给 LLM 前移除敏感信息
  2. 02清理日志中的凭据与个人数据
  3. 03恢复 LLM 回复中的占位符

MCP 相关

本地 MCP 服务向 AI 客户端提供 scrub_text、rehydrate_text 和 scrub_json 三种工具,用于清理文本、还原占位符及处理 JSON。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"scrubguard-dev-scrubguard": {
"command": "npx",
"args": [
"-y",
"scrubguard-mcp"
],
"env": {
"SCRUBGUARD_API_KEY": "<SCRUBGUARD_API_KEY>"
}
}
}
}
启动命令npx -y scrubguard-mcp
需要配置的环境变量
SCRUBGUARD_API_KEY密钥Optional Pro key for the hosted API. Leave unset to scrub locally with no network calls.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmscrubguard-mcp1.0.0

工具

3

收录的工具列表 · 更新于 4 天前

参数类型必填说明
modeenum否tokenize([EMAIL_1] + 可逆保管库)、redact 或 masktokenize | redact | mask
textstring是待清理的原始文本或提示词
typesarray否检测器类型的可选白名单

详细介绍

ScrubGuard - 确定性 PII 与密钥擦除工具 + 可逆大模型分词器

亚毫秒级、零依赖的 PII 与密钥脱敏,并提供数学校验和验证(Luhn 信用卡校验、ISO 7064 Mod-97 IBAN 校验、SSA 美国 SSN 规则)和可逆大模型分词。

在将提示词发送给 OpenAI、Anthropic 或日志之前,剥除敏感数据,并自动在大模型的响应中还原 [EMAIL_1] / [CREDIT_CARD_1] 占位符。


功能

  • 数学校验和验证: 使用 Luhn(信用卡)、ISO 7064 Mod-97(IBAN)以及 SSA 区域号/组号/序列号验证(美国 SSN),减少将订单 ID 和随机数字误判为敏感信息的情况。
  • 密钥与 API 密钥检测: 擦除泄漏的 OpenAI (sk-proj-...)、Anthropic (sk-ant-...)、Stripe (sk_live_...、sk_test_...、whsec_...)、AWS (AKIA...)、GitHub PAT (ghp_...、github_pat_...)、Slack、Google API、JWT 和 PEM 私钥。
  • 可逆大模型分词: 将 PII 替换为一致的占位符([EMAIL_1]、[US_SSN_1]),并返回 vault 映射,以便通过 rehydrateText 或 POST /v1/rehydrate 还原大模型输出。
  • 深度 JSON 清理器: 递归擦除字符串和敏感键(password、secret、api_key、ssn),最多深入 32 层,且不会破坏 JSON 架构。
  • 线性时间正则表达式引擎: 使用互斥字符类和有界重复,避免灾难性回溯(ReDoS)。

快速开始(托管边缘 API)

1. 在将提示词发送给大模型之前,先进行擦除与分词(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"
  }'

响应:

{
  "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. 还原大模型输出(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);

Claude Desktop 与 Cursor 的模型上下文协议(MCP)服务

ScrubGuard 默认在本地运行,不会发起网络请求。将其添加到 claude_desktop_config.json 或 .cursor/mcp.json:

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

若要使用可选的托管 Pro API,或从本地克隆运行:

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

向 AI 助手提供三个 MCP 工具:

  • scrub_text:擦除文本中的 PII 与密钥,或对其进行可逆分词。
  • rehydrate_text:使用 vault 映射还原 [TOKEN_1] 占位符。
  • scrub_json:递归清理嵌套 JSON 对象和日志。

支持与联系

如有疑问、错误报告或更高用量的方案需求,请联系:[email protected]

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。