privacyscrubber-mcp について
PrivacyScrubberは、AIリクエストが端末外へ送られる前に個人情報や認証情報、シークレットをマスクするローカルMCPサーバーです。メモリ内の対応表を使って値を復元できます。
主な機能
- 01テキストとファイルのローカル処理
- 02個人情報・シークレット・認証情報のマスキング
- 03カスタム正規表現ルール
- 04メモリ内の復元可能なトークン対応表
- 05クライアントの自動インストールと設定
活用シーン
- 01AI IDEへ送るプロンプト内のシークレットのマスキング
- 02LLMにコンテキストを渡す前のファイル処理
- 03応答テキスト内の元の値の復元
MCP 対応
MCPサーバーは、機密情報をローカルでマスクしてトークン値を復元する `sanitize_text` と `reveal_text` ツールを提供します。stdioで通信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
23掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | はい | 監査する生のテキスト、コード、プロンプト、またはログ。 |
| format | enum | いいえ | 出力形式:'detailed'(デフォルト、Markdown)、'summary'、または 'json'。detailed | summary | json |
| profile | string | いいえ | 使用する検出プロファイル(例:'General'、'Dev'、'Medical'、'Finance'、'Legal')。デフォルトは 'General' です。 |
詳細
@privacyscrubber/mcp-server
Cursor、Windsurf、Claude Desktop 向けの、CISO 承認済みゼロトラスト型 PII・シークレット削除 MCP サーバーです。 リモート LLM プロバイダーに送信される前に、ファイルやテキストのコンテキストから PII、シークレット、認証情報、カスタム正規表現ルールに一致する内容をローカルで除去し、API 漏えいを防止して、開発者のエンドポイントで HIPAA/SOC 2 への準拠を確保します。
ゼロトラストのオープンソースを応援してください: PrivacyScrubber がモデルへの漏えいから API キー、ソースコード、開発者の認証情報を守っている場合は、**GitHub でこのリポジトリにスターを付ける**か、
gh repo star moxno/privacyscrubber-mcpを実行してください。 直接商用ライセンスと本番環境向けインフラストラクチャ:
バックエンドマイクロサービス、ETL パイプライン、または LangChain/LlamaIndex エージェント内でゼロトラストの PII マスキングを自動化したいとお考えですか?
- Developer SDK(月額一律 $299 または年額 $2,990): 内部バックエンドノード数無制限、ネットワークへのデータ送信なし、メモリ内レイテンシー <1ms。Developer SDK に登録 | 技術仕様
- TEAMS(月額一律 $99): 暗号化された P2P セッション引き継ぎ機能により、ドメイン全体でチームのシート数が無制限です。TEAMS プランを導入
- PRO(月額 $15 または買い切り $110): 30 種類すべての業種別プロファイルで、1 シートあたりのスループットが無制限です。PRO ライセンスを取得
🔒 ゼロトラストのデータフロー
機密性の高いすべてのパラメーター、識別子、変数は、お使いのマシンの RAM 内でローカルに傍受されます。AI に送信される前に、トークン(例:[EMAIL_1])に置き換えられます。AI の応答後、ローカルコンテキスト内でトークンが元の値に安全に置き換えられます。
[Raw Input / Files] ──> [MCP sanitize_text] ──> [Masked Tokens] ──> [LLM API]
│ │
(In-Memory Map) (Result)
│ │
[Original Output] <─── [MCP reveal_text] <─────────────────────────────┘
🚀 インストール
1. ワンクリックの汎用自動インストーラー(推奨)
お使いのマシンにインストール済みの AI IDE を自動検出し、既存のツールを破損させることなく PrivacyScrubber を安全に設定します。
# Auto-detect and configure all installed clients (Cursor, Claude Desktop, Claude Code, Windsurf, VS Code, Cline, Zed):
npx -y @privacyscrubber/mcp-server install --all
# Or target specific environments directly:
npx -y @privacyscrubber/mcp-server install --claude-code
npx -y @privacyscrubber/mcp-server install --vscode
npx -y @privacyscrubber/mcp-server install --zed
npx -y @privacyscrubber/mcp-server install --cursor
npx -y @privacyscrubber/mcp-server install --claude
2. Smithery 経由でインストール
お好みのクライアントで自動設定して実行するには、Smithery を使ってインストールします。
npx -y @smithery/cli install @privacyscrubber/mcp-server --write-to-clients
3. NPX ですぐに実行
ローカルにインストールせずに、サーバーを直接実行します。
npx -y @privacyscrubber/mcp-server
4. UVX ですぐに実行(Python/PyPI)
Python エージェントのワークフロー(CrewAI、LangChain、AutoGen、LlamaIndex)内でサーバーを直接実行します。
uvx privacyscrubber-mcp
または pip 経由:
pip install privacyscrubber-mcp
privacyscrubber-mcp
5. Node.js/TypeScript プログラム向け SDK(軽量な Presidio 代替)
MCP サーバーではなく、バックエンドマイクロサービス、Next.js アプリ、または RAG ベクトルパイプラインで、メモリ内のゼロトラスト PII サニタイズを直接行いたい場合は、依存関係ゼロの公式 SDK をご利用ください。
npm install @privacyscrubber/sdk
import OpenAI from 'openai';
import { wrapOpenAI } from '@privacyscrubber/sdk';
// Transparently masks PII before sending to LLM and rehydrates responses:
const openai = wrapOpenAI(new OpenAI({ apiKey: process.env.OPENAI_API_KEY }));
// Outbound prompt is sanitized in local RAM before leaving your machine:
// "Schedule a call with [NAME_1] at [EMAIL_1] regarding API key [AWS_KEY_1]."
const completion = await openai.chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: 'Schedule a call with Alice Smith at [email protected] with AKIAIOSFODNN7EXAMPLE.' }]
});
// Incoming LLM answer is automatically rehydrated with "Alice Smith ([email protected])":
console.log(completion.choices[0].message.content);
⚡ Microsoft Presidio ではなく @privacyscrubber/sdk を選ぶ理由
Microsoft Presidio は Python の標準的な選択肢ですが、Node.js/TypeScript スタックに導入するには、重量級の Python マイクロサービス、Docker コンテナ、500MB 以上の spaCy NLP モデルが必要となり、レイテンシーは 35~120ms に達します。@privacyscrubber/sdk は 依存関係ゼロで、100%プロセス内で動作します。
| 機能/指標 | @privacyscrubber/sdk | Microsoft Presidio | AWS Comprehend/Google Cloud DLP |
|---|---|---|---|
| ランタイムと依存関係 | 依存関係なし(約150KB) | Python + Docker + spaCy(約500MB) | 重量級のクラウド SDK |
| 実行レイテンシー | RAM 内で 1 ミリ秒未満(<1ms) | HTTP/gRPC の往復で 35~120ms | 外部クラウドとの往復で 180~400ms |
| Docker/サイドカーの要否 | 不要(純粋なプロセス内 Node/WASM) | Docker コンテナが必須 | VPC エンドポイントと IAM の設定が必要 |
| ネットワークへのデータ送信 | 0 バイト(100%エアギャップ) | ローカル内部ネットワークへのホップ | 暗号化されていないペイロード全体をクラウドに送信 |
| データ損失と可逆性 | 損失なし(restore() により RAM 内で復元可能) | トークン保管庫の手動設定が必要 | マスキング/ハッシュ化は不可逆 |
| OpenAI/LangChain のワンライナー | 組み込み(wrapOpenAI、wrapAiStream) | 複雑なカスタムパイプラインの接続が必要 | カスタムプロキシアーキテクチャが必要 |
| DevOps シークレットの傍受 | 組み込み(AWS、JWT、DB URI、GitHub PAT) | カスタム正規表現の認識器が必要 | クラウド固有の分類器 |
| ストリーミングの再構成 | 組み込み(wrapAiStream、TransformStream) | バッファリング/チャンク分割による失敗 | リアルタイムストリームでは非対応 |
👉 NPM で @privacyscrubber/sdk を見る | 完全なドキュメント、Express ミドルウェア、LangChain 変換機能、25 種類のコンプライアンスプロファイルを掲載しています。
🤖 AI オーケストレーターのレシピ:LangChain、LlamaIndex、CrewAI、AutoGPT
単一ユーザー向けの IDE プロンプトではなく、自律型エージェント、RAG ベクトルパイプライン、またはバックエンドサービスを構築している場合は、@privacyscrubber/sdk を使用してメモリ内でデータをサニタイズしてください。
1. LangChain.js(LCEL と RAG ドキュメントの取り込み)
import { ChatOpenAI } from '@langchain/openai';
import { createLangChainTransform, createDocumentTransformer } from '@privacyscrubber/sdk';
// A. RAG Pre-Ingestion: sanitize documents before embedding into vector stores
const docTransformer = createDocumentTransformer({
profile: 'General',
sensitiveMetadataKeys: ['account_owner', 'submitter_email'],
attachTelemetry: true
});
const sanitizedDocs = await docTransformer.transformDocuments(rawDocs);
// B. LCEL Runtime Chains: sanitize prompts and restore responses in local RAM
const transform = createLangChainTransform({ defaultProfile: 'Dev' });
const { scrubbedText, tokenMap } = transform.preprocess(
"Deploying database with user admin and pwd postgresql://user:[email protected]:5432/prod"
);
const model = new ChatOpenAI({ model: 'gpt-4o' });
const response = await model.invoke(scrubbedText);
const finalOutput = transform.postprocess(response.content, tokenMap);
2. LlamaIndex.TS と汎用ベクトル DB の取り込み(Chroma、Pinecone、Qdrant)
import { createVectorIngestionGuard, createLlamaIndexTransform } from '@privacyscrubber/sdk';
// Initialize in-memory Vector Ingestion Guard (<1ms per batch, zero network egress)
const guard = createVectorIngestionGuard({
profile: 'Finance',
sensitiveMetadataKeys: ['contractor_email', 'billing_contact']
});
// A. Sanitize Chroma columnar batches ({ ids, documents, metadatas })
const cleanChroma = guard.sanitizeRecords(chromaBatch);
// B. Sanitize Pinecone / Qdrant record arrays ({ id, text/payload, metadata })
const cleanRecords = guard.sanitizeRecords(pineconeRecords);
// C. Align search query tokens with sanitized vector space before embedding
const { query: alignedQuery } = guard.sanitizeQuery("Search user [email protected] records");
// D. Transparent Vector Store Proxy: auto-sanitizes on write, re-hydrates on query
const guardedStore = guard.wrapVectorStore(nativeVectorStore);
すぐに実行できる完全なレシピは、npm パッケージ内の
@privacyscrubber/sdk/examples/に含まれています(またはnpx @privacyscrubber/sdkを実行してください)。
3. CrewAI とマルチエージェントスウォーム(サイドカーモード/Python 相互運用)
# Run lightweight zero-dependency local daemon (<1ms in-memory, 0 external network calls):
npx @privacyscrubber/sdk sidecar --port 3100
# In your Python CrewAI / AutoGen Agent tools:
import requests
def sanitize_agent_input(prompt: str) -> tuple[str, dict]:
res = requests.post("http://127.0.0.1:3100/sanitize", json={"text": prompt, "profile": "Dev"}).json()
return res["scrubbedText"], res["tokenMap"]
def restore_agent_output(ai_response: str, token_map: dict) -> str:
res = requests.post("http://127.0.0.1:3100/restore", json={"text": ai_response, "tokenMap": token_map}).json()
return res["restoredText"]
4. AutoGPT/複数ターンの自律型エージェント
import { PrivacyScrubberEngine, createGuardedTools } from '@privacyscrubber/sdk';
const engine = new PrivacyScrubberEngine({ defaultProfile: 'Dev' });
// Equips agent with tools that intercept commands, file reads, and git diffs before model exposure:
const guardedTools = createGuardedTools(engine);
エンタープライズおよび本番環境向けライセンス:
- セルフサービス型開発者 SDK(月額一律 299 ドル、または年額 2,990 ドル): 内部バックエンドノード、マイクロサービス、RAG パイプラインを無制限に利用できます。開発者 SDK に登録 | 開発者 SDK の仕様
- PrivacyScrubber TEAMS(月額一律 99 ドル): チームメンバー数無制限、ポリシーの一元適用、暗号化されたセッションの引き継ぎ。TEAMS プランを導入
- エンタープライズ向けエアギャップライセンス: オンプレミスでのソースコード配布、ネットワーク接続なしでのカスタムモデル。エンタープライズ窓口にお問い合わせ
🛡️ アーキテクチャとセキュリティの詳細(ゼロトラストとクラウド DLP の比較)
AI IDE(Cursor、Claude Desktop、Windsurf)がモデルプロバイダーに接続すると、開発者の認証情報、データベース接続文字列、社内顧客の PII は、プロンプトの流出による継続的なリスクにさらされます。@privacyscrubber/mcp-server は、変更不可能な次の 4 つのアーキテクチャ上の保証を提供します。
- stdio によるエアギャップ通信:
MCP サーバーは、IDE が起動したローカルの標準入出力(
stdio)子プロセスとのみ通信します。外部からの接続を待ち受けるポートは一切開かず、リモートネットワークリクエストも一切開始しません。 - 揮発性 RAM のみを使用するトークンマップ:
合成トークン(
[AWS_KEY_1]、[EMAIL_1])と元の平文との対応表は、一時的なノードメモリ内だけに保持され、IDE セッションが終了した時点で消去されます。 - ローカル ZTDS™ インメモリエンジンとクラウドプロキシのオーバーヘッド:
200~400 ミリ秒の遅延を追加し、暗号化されていないコードを第三者に送信するクラウド DLP ゲートウェイ(Nightfall、Skyflow)とは異なり、
@privacyscrubber/mcp-serverはデータを外部に送信せず、ローカルで 2 ミリ秒未満で動作します。 - 恒久的な標準規格と学術的検証:
- IETF 仕様: draft-sibiryakov-ztds-protocol-01 — 改訂 01 · 2026-09-23 · 13 ページ
- CERN/Zenodo Foundation: DOI 10.5281/zenodo.22058770
- Center for Open Science(OSF): DOI 10.17605/OSF.IO/5BYJF
- 特許出願中: 米国および国際特許を出願中(パリ条約/PCT 優先権)
⚙️ クライアントとの連携
Claude Desktop
Claude Desktop の設定ファイルに以下を追加してください。
- 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
プロジェクトの .cursor/mcp.json(ワークスペース)または ~/.cursor/mcp.json(グローバル)に追加してください。
{
"mcpServers": {
"privacyscrubber": {
"command": "npx",
"args": ["-y", "@privacyscrubber/mcp-server"],
"env": {
"PRIVACYSCRUBBER_KEY": "YOUR_PRO_OR_TEAMS_LICENSE_KEY"
}
}
}
}
または Cursor の GUI から: Settings(Cmd/Ctrl + ,)を開き、Features → MCP → + Add New MCP Tool の順に選択します。
- 名前:
privacyscrubber - 種類:
command - コマンド:
npx -y @privacyscrubber/mcp-server
Windsurf(Codeium)
~/.codeium/windsurf/mcp_config.json に追加します。
{
"mcpServers": {
"privacyscrubber": {
"command": "npx",
"args": ["-y", "@privacyscrubber/mcp-server"],
"env": {
"PRIVACYSCRUBBER_KEY": "YOUR_PRO_OR_TEAMS_LICENSE_KEY"
}
}
}
}
Windsurf GUI から追加する場合: Settings → MCP Settings を開き、新しいコマンドサーバー npx -y @privacyscrubber/mcp-server を追加します。
サポートされているすべてのクライアント向けの、コピーしてすぐ使える JSON テンプレートは
examples/configs/で入手できます。
Cline / Roo Code
cline_mcp_settings.json に追加します:
{
"mcpServers": {
"privacyscrubber": {
"command": "npx",
"args": ["-y", "@privacyscrubber/mcp-server"],
"env": {
"PRIVACYSCRUBBER_KEY": "YOUR_OPTIONAL_PRO_LICENSE_KEY"
}
}
}
}
Claude Code CLI
ターミナルから直接追加します:
claude mcp add privacyscrubber -- npx -y @privacyscrubber/mcp-server
VS Code Native MCP(.vscode/mcp.json)
VS Code Native MCP の公式サポートを利用するには、プロジェクトの .vscode/mcp.json を設定します:
{
"servers": {
"privacyscrubber": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@privacyscrubber/mcp-server"],
"env": {
"PRIVACYSCRUBBER_KEY": "YOUR_OPTIONAL_PRO_LICENSE_KEY"
}
}
}
}
Zed IDE(settings.json)
Zed の設定(~/.config/zed/settings.json または %APPDATA%\Zed\settings.json)に追加します:
{
"context_servers": {
"privacyscrubber": {
"command": "npx",
"args": ["-y", "@privacyscrubber/mcp-server"],
"env": {
"PRIVACYSCRUBBER_KEY": "YOUR_OPTIONAL_PRO_LICENSE_KEY"
}
}
}
}
🛠️ 提供されるツールと JSON-RPC 仕様
1. sanitize_text
テキストブロックから個人情報、秘密情報、API キー、認証情報をマスキングし、揮発性のローカル置換マッピングに登録します。
- 引数:
text(文字列、必須):サニタイズする生のコンテンツまたはログです。profile(文字列、任意):業界検出プロファイルを指定します(例:'General'、'Dev'、'Medical'、'Legal'、'Compliance')。デフォルトは 'General' です。
- JSON-RPC 呼び出し例:
{ "method": "tools/call", "params": { "name": "sanitize_text", "arguments": { "text": "Contact me at dev-key-1234 or [email protected]", "profile": "General" } } } - 応答例:
{ "content": [ { "type": "text", "text": "Contact me at [SECRET_1] or [EMAIL_1]" } ] }
2. reveal_text
AI の応答に含まれるトークンを、ローカルで元の値に戻します。
- 引数:
text(文字列、必須):トークン化されたプレースホルダーを含む LLM からの応答です。
- JSON-RPC 呼び出し例:
{ "method": "tools/call", "params": { "name": "reveal_text", "arguments": { "text": "Please reach out to [EMAIL_1] regarding the update." } } } - 応答例:
{ "content": [ { "type": "text", "text": "Please reach out to [email protected] regarding the update." } ] }
3. sanitize_file
ローカルファイルを読み込み、テキストを抽出してサニタイズし、LLM による分析用にマスキング済みテンプレートを返します。
- **対応形式:**プレーンテキスト(ソースコード、ログ、CSV、JSON、Markdown)および Microsoft Word(
.docx)文書。 - 引数:
filePath(文字列、必須):読み込んでサニタイズするファイルの絶対パスです。profile(文字列、任意):業界検出プロファイルです。
4. guard_exec(コマンド実行ファイアウォール)
ターミナルコマンドを分離された子プロセスで安全に実行し、AI エージェントに渡す前に、標準出力/標準エラーに含まれる個人情報、データベース認証情報、API キーをローカル RAM 内でマスキングします。標準エラー出力には CISO 監査レシートが含まれます。
- 引数:
command(文字列、必須):実行するシェルコマンドです(例:cat .env、docker logs web、git diff)。cwd(文字列、任意):作業ディレクトリです。profile(文字列、任意):検出プロファイルです(デフォルトはDev)。timeout_ms(数値、任意):タイムアウト(ミリ秒)です(デフォルトは15000)。
5. guard_read_file(認証情報マスキングファイルリーダー)
ファイル(.env、設定ファイル、ソースコード、データベースダンプ)を読み込み、パスワード、JWT、個人情報をすべて揮発性メモリ内でトークン化して、AI による推論用に安全なマスキング済みコンテンツを返します。
- 引数:
file_path(文字列、必須):ファイルへのパスです。profile(文字列、任意):検出プロファイルです(デフォルトはDev)。max_lines(数値、任意):大きなファイルに対する行数上限です(デフォルトは500)。
6. guard_git_diff(コミット前の差分サニタイズ)
ステージ済み(--cached)または未ステージのリポジトリ差分を検査し、AI によるコードレビューやコミットメッセージの生成前に、新たに含まれたシークレットや PII をローカルの RAM 上でマスキングします。
- 引数:
staged(ブール値、任意):trueの場合、ステージ済みの変更(git diff --cached)を検査します。デフォルトはfalseです。cwd(文字列、任意):作業ディレクトリです。profile(文字列、任意):検出プロファイルです(デフォルトはDev)。
7. guard_apply_patch(安全なパッチ適用)
AI が生成したコードやテキスト内のトークンプレースホルダー([API_KEY_1]、[SECRET_1])を、ローカルの RAM セッションマップを参照して元に戻します。.bak バックアップを作成し、元の平文をディスクに直接書き込みます。リモート LLM が実際のシークレットを見ることはありません。
- 引数:
file_path(文字列、必須):対象ファイルのパスです。content(文字列、必須):ディスク上で復元するトークンを含むコンテンツです。create_backup(ブール値、任意):書き込み前に既存ファイルをバックアップします(デフォルトはtrue)。
8. create_agent_rules(ワンクリックのエージェントルール注入)
CISO グレードのゼロトラスト指示を .cursorrules、.windsurfrules、CLAUDE.md、.github/copilot-instructions.md、または .clinerules に自動的に作成します。
- 引数:
agent_types(配列、任意):["all"]、["cursor"]、["windsurf"]、["claude_code"]、["copilot"]、["cline"]。デフォルトは["all"]です。workspace_dir(文字列、任意):ワークスペースディレクトリです。
9. check_status
現在のティア、セッションリクエスト数、有効なプロファイル、アップグレード手順を示す視覚的なダッシュボードを返します。ライセンスの状態を確認したり、セットアップのサポートを受けたりするには、いつでも使用できます。
- 引数: (必須の引数はありません)
- JSON-RPC 呼び出し例:
{ "method": "tools/call", "params": { "name": "check_status", "arguments": {} } } - 応答例(無料ティア):
╔══════════════════════════════════════════════════╗ ║ PrivacyScrubber MCP Server v2.4.4 ║ ╠══════════════════════════════════════════════════╣ ║ 🔓 Tier: FREE ║ ║ 📊 Session requests: 5 ║ ║ 📁 Input size limit: 15,000 characters/request ║ ╠══════════════════════════════════════════════════╣ ║ 🏷️ Profiles: General only — PRO unlocks 30 more ║ ║ 📋 Custom rules: 🔒 Locked — requires PRO ║ ╠══════════════════════════════════════════════════╣ ║ 💳 Upgrade to PRO — $110 Lifetime ║ ║ https://privacyscrubber.com/pricing?utm_source=npm&utm_medium=readme&utm_campaign=mcp_server ║ ╠══════════════════════════════════════════════════╣ ║ After purchase, add your key to MCP config: ║ ║ "PRIVACYSCRUBBER_KEY": "<your-key-here>" ║ ║ Full setup guide: ║ ║ https://privacyscrubber.com/pii-mcp/?utm_source=npm&utm_medium=readme&utm_campaign=mcp_server ║ ╚══════════════════════════════════════════════════╝
10. generate_procurement_memo(CISO および DPO 向け調達ハブ)
CISO、DPO、法務部門の承認に向けて、組織内のビジネスケース、規制リスクの内訳、調達メモを作成します。データ侵害の罰金およびクラウド DLP のデータ送信料金と比較した ROI を決定論的に算出します。
- 引数:
targetTier(string、任意):対象プラン("teams":月額 $99、または"sdk":月額 $299)。デフォルトは"teams"です。teamSize(number、任意):開発者/アナリストの想定シート数(デフォルトは10)。primaryFramework(string、任意):主要なコンプライアンスフレームワーク("gdpr"、"hipaa"、"soc2"、または"pci_dss")。デフォルトは"gdpr"です。
- JSON-RPC 呼び出し例:
{ "method": "tools/call", "params": { "name": "generate_procurement_memo", "arguments": { "targetTier": "teams", "teamSize": 15, "primaryFramework": "gdpr" } } } - 出力: 社内 RFC、Confluence ウィキ、または企業向け購入申請書にすぐに挿入できる、書式設定済みのエンタープライズ調達メモを出力します。
🛡️ スタンドアロン CLI:ps-guard
PrivacyScrubber には、Unix パイプ、pre-commit、エージェント型ワークフロー向けの ps-guard が含まれています。
# Run on-demand via scoped npx (zero external lookup):
cat .env | npx -y -p @privacyscrubber/mcp-server ps-guard --profile dev
# Or install globally for direct command access:
npm install -g @privacyscrubber/mcp-server
# Pipe any output through RAM redaction
cat .env | ps-guard --profile dev
# Execute commands through the ZTDS safety wrapper
ps-guard -- npm test
# Review git diff with secrets redacted
ps-guard --diff --staged
# Generate rules for all AI IDEs (.cursorrules, .windsurfrules, CLAUDE.md, copilot, cline)
ps-guard --rules
🌐 ブラウザー拡張機能と Web クライアント
Web ブラウザー内でリアルタイムに直接保護する方法をお探しですか?
- Chrome 拡張機能: PrivacyScrubber Chrome 拡張機能 を入手すると、ChatGPT、Claude、Gemini 内のプロンプトをリアルタイムで直接サニタイズできます。
- Web サンドボックス: PrivacyScrubber ホームページで、サーバーを介さないブラウザーサニタイズツールをご利用ください。
📄 ライセンスと商用アップグレード
デフォルトでは、サーバーは Free Tier で動作します(1 リクエストあたり 15,000 文字まで、基本の General PII プロファイルに制限)。30 種類の専門分野向けエンジニアリング、医療、法務、金融の PII プロファイルと、チーム全体で使用できるカスタムルールを利用するには、商用ライセンスを購入できます。
商用プランと機能の比較
| 機能 | Community Free | PRO Tier | TEAMS Tier | Developer SDK |
|---|---|---|---|---|
| 実行アーキテクチャ | ローカル Stdio RAM | ローカル Stdio RAM | ローカル Stdio RAM | プロセス内 Node/WASM |
| 揮発性トークン化 | はい(RAM のみ) | はい(RAM のみ) | はい(RAM のみ) | はい(RAM のみ) |
| 標準 PII マスキング | はい | はい | はい | はい |
| 最大文字処理量 | 1 回の呼び出しにつき 15,000 文字 | 無制限 | 無制限 | 無制限 |
| 30 種類の業界プロファイル | General のみ(5,000 文字の試用) | 30 種類すべてのプロファイル | 30 種類すべてのプロファイル | 30 種類すべてのプロファイル |
| カスタム正規表現ルール | ロック済み | 無制限 | 無制限 | 無制限 |
| チームルールの同期(GPO) | いいえ | いいえ | はい(共有リンク) | はい(設定可能) |
| マイクロサービス/RAG エクスポート | いいえ | いいえ | いいえ | はい(@privacyscrubber/sdk) |
| サブプロセッサーの責任 | 0(クライアント側) | 0(クライアント側) | 0(クライアント側) | 0(プロセス内 Node/WASM) |
| ライセンス費用 | $0 | 月額 $15 または買い切り $110 | 月額定額 $99 | 月額 $299 または年額 $2,990 |
| 直接有効化 | デフォルトで付属 | PRO を購入 | TEAMS を導入 | SDK を申し込む |
👉 privacyscrubber.com/pricing で商用ライセンスキーを購入
🔐 購入後:MCP クライアントで PRO を有効化する
privacyscrubber.com/pricing で PRO ライセンスを購入すると、ライセンスキーが届きます。環境変数 PRIVACYSCRUBBER_KEY として、MCP クライアントの設定に追加してください。
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)を編集します。
{
"mcpServers": {
"privacyscrubber": {
"command": "npx",
"args": ["-y", "@privacyscrubber/mcp-server"],
"env": {
"PRIVACYSCRUBBER_KEY": "YOUR_LICENSE_KEY_HERE"
}
}
}
}
保存後、Claude Desktop を再起動してください。
Cursor
- Settings → Features → MCP Servers に移動します。
privacyscrubberを見つけて、Edit をクリックします。- 環境変数
PRIVACYSCRUBBER_KEY=YOUR_LICENSE_KEY_HEREを追加します。 - Cursor を再起動します。
または、システム全体でエクスポートして、すべてのツールで利用できるようにします。
# macOS / Linux — add to ~/.zshrc or ~/.bashrc
export PRIVACYSCRUBBER_KEY="YOUR_LICENSE_KEY_HERE"
Windsurf
~/.codeium/windsurf/mcp_config.json を編集します。
{
"mcpServers": {
"privacyscrubber": {
"command": "npx",
"args": ["-y", "@privacyscrubber/mcp-server"],
"env": {
"PRIVACYSCRUBBER_KEY": "YOUR_LICENSE_KEY_HERE"
}
}
}
}
有効化を確認する
キーを追加したら、AI エージェントに check_status を呼び出すよう依頼します。
Use the check_status tool from PrivacyScrubber MCP
🔗 エコシステムと本番環境のアーキテクチャガイド
- 🌐 Web アプリ:https://privacyscrubber.com
- 📦 Node.js / TypeScript SDK:@privacyscrubber/sdk (npm)
- 🧩 Chrome 拡張機能:Chrome ウェブストア
- 🛡️ RAG とベクトルデータベース:ベクトル DB への取り込み前に PII をサニタイズする(Pinecone、Chroma、Qdrant)
- 🤖 LangChain と LlamaIndex:AI エージェントのパイプライン向けインメモリ PII ミドルウェア
- ⚡ AWS Comprehend の代替手段:データの外部送信やクラウドのオーバーヘッドなしでインメモリ編集
📚 学術的基盤と規制遵守の検証
PrivacyScrubber と Zero-Trust Data Sanitization(ZTDS)プロトコルは、公開済みの科学、臨床、法律に関する論文に裏付けられています。
| リポジトリ/アーカイブ | DOI/識別子 | 主な対象分野 | 規制・コンプライアンスの対象範囲 |
|---|---|---|---|
| IETF 仕様 | draft-sibiryakov-ztds-protocol | 最先端 AI へのデータ取り込みに関する ZTDS プロトコル(インターネットドラフト) | グローバルな AI プライバシー、データを外部送信しないアーキテクチャ |
| Zenodo / CERN | 10.5281/zenodo.22058770 | Zero-Trust Data Sanitization(ZTDS)プロトコルの基盤 | 国境を越える AI プライバシー、ISO 27001 A.8.11 |
| OSF(Center for Open Science) | 10.17605/OSF.IO/5BYJF | 実測レイテンシーベンチマークとメモリプロファイリング(RAM で 2 ミリ秒未満) | パフォーマンスとクラウド DLP プロキシの比較 |
| SSRN / Elsevier | SSRN ID: 7335581 | エンタープライズ向け生成 AI ガバナンス | EU AI Act、UK GDPR、米国州法のプライバシー規制 |
| medRxiv(Cold Spring Harbor) | MEDRXIV/2026/361661 | 多施設共同臨床試験における匿名化 | HIPAA Safe Harbor Section 164.514(b) |
| Law Archive / OSF | LawArchive ID: 4wc86 | AI ワークフローにおける弁護士・依頼者間秘匿特権の保持 | ABA Model Rules と法曹倫理 |
研究・監査で PrivacyScrubber を引用する
@software{sibiryakov2026privacyscrubber,
author = {Sibiryakov, Ilya},
title = {PrivacyScrubber: Zero-Trust Data Sanitization (ZTDS) Engine & MCP Server},
year = {2026},
publisher = {Zenodo},
doi = {10.5281/zenodo.22058770},
url = {https://github.com/moxno/privacyscrubber-mcp}
}
📄 ライセンス
MIT © Ilya Sibiryakov(BrandMeWeb)
⚖️ 知的財産および特許に関する開示
このパッケージに実装されているゼロトラスト・データサニタイズ(ZTDS)アーキテクチャ、メモリ内の決定論的トークン化、暗号化セッションの引き継ぎ、およびstdio実行方式は、Ilya Sibiryakov(BrandMeWeb)の独自技術であり、特許出願中のステータスで保護されています。
- 法的ステータス: 米国および国際特許出願中
- 優先権の枠組み: パリ条約第4条および米国法典第35編第119条に基づく優先権(有効な12か月の期間内)
- 特許ステータス: 米国および国際特許出願中(優先権確保済み)
- 正式名称: 人工知能ワークフローにおけるクライアント側ゼロトラスト・データサニタイズおよび暗号化セッション引き継ぎのためのシステムおよび方法
- 特許開示ハブ: privacyscrubber.com/patents/(弁護士との秘密保持契約に基づく正式な確認)。
🌐 Internet Engineering Task Force(IETF)仕様
- 仕様名: フロンティア人工知能の取り込みに向けたゼロトラスト・データサニタイズ(ZTDS)プロトコル
- 文書カテゴリ: IETFインターネットドラフト(個人提出)
- IETF Datatracker: https://datatracker.ietf.org/doc/draft-sibiryakov-ztds-protocol/
- アーカイブのプレーンテキスト: https://www.ietf.org/archive/id/draft-sibiryakov-ztds-protocol-01.txt
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。