关于 ScrubGuard
ScrubGuard 是面向处理敏感文本和 JSON 的开发者及 AI 工作流的 PII 与密钥清理工具。它支持可逆占位符,并通过校验和规则减少对普通数字的误判。
主要功能
- 01PII 与密钥检测及清理
- 02校验信用卡、IBAN 和 SSN
- 03可逆占位符与数据还原
- 04递归清理嵌套 JSON
- 05限制回溯的线性时间正则
适用场景
- 01发送提示词给 LLM 前移除敏感信息
- 02清理日志中的凭据与个人数据
- 03恢复 LLM 回复中的占位符
MCP 相关
本地 MCP 服务向 AI 客户端提供 scrub_text、rehydrate_text 和 scrub_json 三种工具,用于清理文本、还原占位符及处理 JSON。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 4 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| mode | enum | 否 | tokenize([EMAIL_1] + 可逆保管库)、redact 或 masktokenize | redact | mask |
| text | string | 是 | 待清理的原始文本或提示词 |
| types | array | 否 | 检测器类型的可选白名单 |
详细介绍
ScrubGuard - 确定性 PII 与密钥擦除工具 + 可逆大模型分词器
亚毫秒级、零依赖的 PII 与密钥脱敏,并提供数学校验和验证(Luhn 信用卡校验、ISO 7064 Mod-97 IBAN 校验、SSA 美国 SSN 规则)和可逆大模型分词。
在将提示词发送给 OpenAI、Anthropic 或日志之前,剥除敏感数据,并自动在大模型的响应中还原 [EMAIL_1] / [CREDIT_CARD_1] 占位符。
- 在线 API 与 Playground: https://scrubguard-api.scrubguard.workers.dev
- GitHub 仓库: https://github.com/scrubguard-dev/scrubguard
- 支持: [email protected]
功能
- 数学校验和验证: 使用 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
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。