ScrubGuard について
ScrubGuardは、機密テキストやJSONを扱う開発者とAIワークフロー向けのPII・シークレット除去ツールです。チェックサム検証で通常の数字の誤検出を抑え、元に戻せるトークン化に対応します。
主な機能
- 01PIIとシークレットの検出・除去
- 02カード、IBAN、SSNの検証
- 03可逆トークン化と復元
- 04ネストしたJSONの再帰的なサニタイズ
- 05バックトラッキングを抑えた線形時間正規表現
活用シーン
- 01LLMへのプロンプト送信前に機密情報を除去
- 02ログ内の認証情報や個人データの整理
- 03LLMの応答に含まれるトークンの復元
MCP 対応
ローカルMCPサーバーは、テキストの除去、トークンの復元、JSONのサニタイズを行うscrub_text、rehydrate_text、scrub_jsonツールをAIクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 4 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| mode | enum | いいえ | tokenize([EMAIL_1] + 可逆ボールト)、redact、または masktokenize | redact | mask |
| text | string | はい | サニタイズする生テキストまたはプロンプト |
| types | array | いいえ | 検出器タイプのオプションの許可リスト |
詳細
ScrubGuard - 決定論的な PII・シークレットのスクラブと、可逆な LLM トークナイザー
サブミリ秒、依存関係ゼロで PII とシークレットを編集し、数学的なチェックサム検証(Luhn クレジットカード、ISO 7064 Mod-97 IBAN、SSA の米国 SSN ルール)と可逆な LLM トークナイズを実現します。
OpenAI、Anthropic、またはログにプロンプトを送信する前に機密データを除去し、LLM の応答内にある [EMAIL_1] / [CREDIT_CARD_1] プレースホルダーを自動的に元に戻します。
- ライブ API とプレイグラウンド: 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 秘密鍵をスクラブします。 - 可逆な LLM トークナイズ: PII を一貫したプレースホルダー(
[EMAIL_1]、[US_SSN_1])に置き換え、vaultマップを返します。これにより、rehydrateTextまたはPOST /v1/rehydrateを使って LLM の出力を復元できます。 - 詳細な JSON サニタイザー: JSON スキーマを壊さずに、最大 32 階層まで文字列と機密キー(
password、secret、api_key、ssn)を再帰的にスクラブします。 - 線形時間の正規表現エンジン: 互いに素な文字クラスと上限付き反復により、壊滅的なバックトラッキング(ReDoS)を防ぎます。
クイックスタート(ホスト型エッジ API)
1. 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"
}'
レスポンス:
{
"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. LLM の出力を元に戻す(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 用 Model Context Protocol(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 アシスタントに以下の 3 つの MCP ツールを公開します。
scrub_text:テキスト内の PII とシークレットをスクラブするか、可逆的にトークナイズします。rehydrate_text:ボルトマップを使用して[TOKEN_1]プレースホルダーを復元します。scrub_json:ネストされた JSON オブジェクトとログを再帰的にサニタイズします。
サポートとお問い合わせ
ご質問、バグ報告、大量利用プランについては、[email protected] までお問い合わせください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。