Securedact MCP について
SecuRedact MCPは、AIワークフロー向けのローカル優先のプライバシーエンジン兼オープンソースMCPサーバーです。機密データを検出し、ポリシーに沿ってローカルでマスキングした後、承認前に出力を検証します。
主な機能
- 01ローカルでの機密データ検出
- 02ポリシーに基づくマスキング
- 03残存データの検証
- 04保護対象ファイルの読み取り
- 05安全なコピーの作成
- 06一度限りの復元セッション
活用シーン
- 01外部AI利用前のテキスト浄化
- 02機密情報の確認またはブロック
- 03浄化済みテキストとしてローカルファイルを読み取り
MCP 対応
テキストの準備、分析、マスキング、復元、安全なコピーの作成、安全なファイル読み取りを行うツールを提供します。ホストがツールを呼び出し、承認済みの浄化テキストのみを渡す必要があります。MCPモードがプロンプトを自動で傍受することはありません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | はい | |
| policy | string | いいえ | |
| language | string | いいえ | |
| response_mode | string | いいえ |
詳細
SecuRedact MCP
SecuRedact は、AI エージェントと AI ワークフロー向けのローカルファーストなプライバシーおよびセキュリティレイヤーです。個人データ/PII、GDPR の対象となる情報、認証情報、API キー、トークン、シークレット、機密ファイルなどの機密データを検出して保護し、データがモデル、ツール、ファイル、外部の送信先に届く前に処理します。
SecuRedact MCP は、Apache-2.0 オープンソースの MCP サーバーであり、再利用可能な Python プライバシーエンジンです。機密テキストを検出し、バージョン管理されたポリシーを適用してローカルで編集し、残存する出力を検証してから、サニタイズ済みのコンテンツを承認済みとしてマークします。
MCP モードでは、すべてのプロンプトが自動的に傍受されるわけではありません。ホストはツールを呼び出し、
status == "ok"の場合に限りsanitized_textのみを送信する必要があります。設定ミスのある、または悪意のある MCP ホストは、通常の MCP ワークフローを回避できます。プロバイダー固有の強制フックは、別個の統合アセットです。サポート対象のプロバイダーがプロンプトのライフサイクル境界でそのようなフックを呼び出すと、通常のモデル処理の前に同じ決定論的な判定を適用できます。SecuRedact Enforced を参照してください。
SecuRedact を選ぶ理由
AI エージェントは、ファイルを読み取り、ツールを呼び出し、外部モデルにプロンプトを送信する機会が増えています。データを事前に確認する仕組みがなければ、PII、認証情報、機密文書がさらされます。SecuRedact は、AI ワークフロー向けのプライバシーおよびセキュリティ制御です。
- ローカルファースト — 検出、編集、ポリシー評価はすべて、お使いのマシン上で実行されます。デフォルトではネットワークリスナーはなく、テレメトリーもプロバイダーへの呼び出しもありません。
- PII/GDPR 検出 — 氏名、メールアドレス、IBAN、識別子、特別カテゴリーのデータを検出し、仮名化または編集します。
- シークレットと認証情報の保護 — API キー、トークン、パスワードを検出し、環境外への送信を阻止します。
- ファイルシステムの保護 — パストラバーサルやシンボリックリンクによる逸脱を防ぎ、
.envなどの保護対象パスへのアクセスを阻止します。 - AI エージェントのプライバシーファイアウォール — Claude Code と Gemini CLI の強制フックは、プロンプト、モデル呼び出し、またはツールの操作が進む前に、同じローカル判定を実行します。
- ネットワーク/送信トラフィックの把握 — ポリシーで承認を必須にしたり、外部送信をブロックしたりできるよう、送信されるツール呼び出しを分類します(内部/外部/不明)。
SecuRedact は機密データの露出を減らすのに役立ちますが、コンプライアンスを保証するものでも、すべての漏えいを防ぐと主張するものでもありません。制限事項 を参照してください。
HIPAA セーフハーバー(0.5.0)
SecuRedact 0.5.0 では、45 CFR 164.514(b)(2) のテキスト処理向けに、HIPAA セーフハーバーの機械的な匿名化支援機能が追加されました。既存の決定論的な検出スタックを基盤とし、18 カテゴリーのセーフハーバーマッピング、米国固有の識別子(エリア/グループ/シリアル番号の検証を含む SSN、米国の ZIP/ZIP+4、医療保険プランの受益者番号、口座番号、89 歳を超える年齢、VIN 形式の車両識別子、ファクス)に加え、カテゴリー A(氏名)向けの任意の検証済み Flair の PERSON 専用ゲートを追加します。
engine.hipaa_safe_harbor(text) または HIPAA_SAFE_HARBOR_POLICY ポリシーを使用してください。これは機械的な支援機能であり、コンプライアンス認証ではありません。実際の認識要件(164.514(b)(2)(ii))を満たすことはできず、専門家による判定(164.514(b)(1))の代わりにもなりません。docs/hipaa-safe-harbor-profile.md と docs/hipaa-safe-harbor-gap-analysis.md を参照してください。
クイックスタート
PyPI からインストールし、ガイド付きセットアップを実行します(Windows)。
py -3.12 -m pip install "securedact-mcp[ml]"
securedact-mcp setup
Linux/macOS:
python3.12 -m pip install "securedact-mcp[ml]"
securedact-mcp setup
数秒でテキストを保護します(決定論的処理のみのデモ、モデル不要)。
import os
os.environ["SECUREDACT_REQUIRE_FLAIR"] = "0" # deterministic detectors only
from securedact_core import RedactionRequest, SecuredactEngine
engine = SecuredactEngine.from_environment()
result = engine.prepare(
RedactionRequest(
text="Contact [email protected], IBAN NL91ABNA0417164300",
policy="strict_external_ai",
)
)
print(result.status) # "ok"
print(result.sanitized_text) # "Contact [EMAIL_1], IBAN [IBAN_1]"
再現可能な合成セキュリティデモ:docs/distribution/security-demo.md。
安全なデフォルトのワークフロー
通常の外部 AI 向けの準備には、prepare_for_external_ai を使用します。
{
"text": "Contact [email protected]",
"policy": "strict_external_ai",
"language": "auto",
"response_mode": "minimal"
}
承認された応答:
{
"schema_version": "1",
"status": "ok",
"sanitized_text": "Contact [EMAIL_1]",
"counts": {"email": 1},
"policy": "strict_external_ai",
"policy_version": 1,
"policy_digest": "...",
"reason_codes": []
}
review_required と blocked の応答には、承認済みの
sanitized_text が含まれることはありません。最小限の応答には、restore_capable が明示的に選択されていない限り、元のテキスト、エンティティの生の値、
マッピング、例外本文、スタックトレース、モデルパス、復元ハンドルは含まれません。
アーキテクチャと信頼境界
flowchart LR
H["MCP host"] --> M["Securedact MCP"]
M --> D["deterministic detectors"]
M --> C["contextual detectors"]
D --> P["policy engine"]
C --> P
P --> R["redactor"]
R --> V["residual validator"]
V --> O["approved sanitized output"]
O --> W["host-controlled downstream workflow"]
H -. "host may bypass MCP" .-> W
このサーバーには、プロバイダークライアント、OpenAI 互換プロキシ、リバースプロキシ、 ウェブサイト、デスクトップチャットボット、プロバイダーの認証情報、プロバイダー固有の転送機能はありません。 ADR 0001 と 脅威モデルを参照してください。
ツール
| ツール | 想定される用途 | 機密情報を含む応答の動作 |
|---|---|---|
prepare_for_external_ai | 推奨される完全な安全ワークフロー | デフォルトでは最小限 |
analyze_text | より低レベルのローカル分析/レビュー | 最小限。review ではオフセットを返し、生の値は有効化されたデバッグモードでのみ返します |
redact_text | より低レベルの互換性操作 | デフォルトでは最小限。明示的な legacy モードは機密性が高く、非推奨です |
restore_text | ローカルの不透明なセッションを使用 | デフォルトでは一度だけ使用可能。直接マッピングには、明示的な信頼済みレガシーモードが必要です |
create_safe_copy | 承認された .txt/.md コンテンツを設定済みルート内に書き込み | マッピングや絶対パスは返しません |
securedact_read_file | ローカルファイルを安全に読み取り、サニタイズ済みテキストのみを返す | 読み取り前に保護対象パスをブロックし、トラバーサル/シンボリックリンク/バイナリを拒否します。デフォルトは minimal です |
応答モードは minimal、review、debug、restore_capable です。デバッグは、プロセスの起動時に
SECUREDACT_ENABLE_DEBUG_RESPONSES=1 が設定されていない限り無効です。MCP リクエストからデバッグを有効にすることはできません。メモリ内の
復元セッションでは、暗号学的に安全なランダムハンドル、容量制限、
有効期限、同時実行制御、一度限りの使用を採用しています。プロセスの終了時に
すべてのセッションが破棄されます。
MCP ツール、応答のプライバシー、復元セッションを参照してください。
インストール
Python >=3.12,<3.13 がサポートされています。
PyPI から通常の方法でインストールする場合:
py -3.12 -m pip install "securedact-mcp[ml]"
securedact-mcp setup
Linux または macOS では、python3.12 -m pip install "securedact-mcp[ml]" を使用してください。
python がすでにサポート対象の 3.12 環境を選択している場合は、
python -m pip install "securedact-mcp[ml]" も適切です。
setup は、パッケージ、Python、ML 依存関係を確認し、ローカルのモデル状態を調べ、
既存の同意に基づくモデルインストーラーを提示し、既存の
オフライン検証ツールを実行します。また、該当するホストが検出された場合は、パッケージに含まれる Claude Code と Gemini CLI の
統合機能を提示します。プロバイダー公式の
プラグイン/拡張機能コマンドを使用し、再実行しても安全です。プロバイダーの
モデル API を呼び出したり、プロバイダーの信頼を自動的に受け入れたり、ユーザーがモデルのセットアップを明示的に選択して既存のアップストリームのプロンプトに同意したりしない限り、コンテキストモデルをダウンロードしたりすることはありません。
上級者向け、または無人運用向けに、手動のモデルコマンドも引き続き使用できます。
securedact-mcp install
securedact-mcp models verify
securedact-mcp
最後のコマンドは、ローカルの stdio サーバーを起動します。標準出力は
MCP プロトコルメッセージ専用です。securedact-mcp setup --non-interactive は、アップストリームへの同意を示唆したり、新しいプロバイダーを設定したりせずに状態を報告します。対象を絞った対話型のプロバイダー設定には、
--host claude、--host gemini、または --host all を使用してください。
開発者向け/ソースからのインストール
レビュー済みのソースチェックアウトから作業する場合は、代わりに次を実行します。
git clone https://github.com/GigantesHJI/securedact-mcp.git
cd securedact-mcp
python -m pip install ".[ml]"
securedact-mcp setup
リポジトリにもホイールにもモデルチェックポイントは含まれておらず、起動時にダウンロードされることもありません。Securedact はこれらのモデルの重みを再配布していません。上流のモデルの重みにはそれぞれ独自のライセンスが適用され、Apache-2.0 によって再ライセンスされることはありません。モデルのインストールとサードパーティライセンスを参照してください。
決定論的な機能のみを使ったローカル開発を行う場合は、明示的に選択する必要があります。
$env:SECUREDACT_REQUIRE_FLAIR = "0"
securedact-mcp
本番環境では、デフォルトでコンテキスト機能が必須となり、設定済みモデルが見つからない、読み込み中、破損している、または利用できない場合は、フェイルクローズします。
ホスト向けパッケージ
Codex、Cursor、Windsurf 用のテスト済み設定アセットと安全なワークフローの手順は、integrations/ にあります。自動化された MCP クライアントのハーネスでは、サーバーの起動、ツールの一覧表示、呼び出し、最小限のレスポンス形式、標準出力の整合性、シャットダウンを検証します。ただし、実際のホストがあらゆるプロンプトに対してツールを呼び出すことを保証するものではありません。互換性の検証結果を参照してください。
このリポジトリは Gemini CLI 拡張機能のルートでもあります。gemini extensions install https://github.com/GigantesHJI/securedact-mcp を実行すると、フックをインストールできます。この方法でインストールするには、gemini-cli-extension トピックと、ルートマニフェストを含むタグツリーを持つリリースが必要です。pip install "securedact-mcp[ml]" を実行せず、ローカルモデルも用意しない場合、インストールされたフックは何も強制しません。SecuRedact Enforcedを参照してください。
ポリシーと Python API
組み込みポリシーには、default、strict_external_ai、gdpr、identifiers_only、review_all_contextual が含まれており、互換性ポリシーも引き続き利用できます。ローカル組織ポリシーファイルは、管理されたポリシーディレクトリからのみ読み込まれ、厳格な宣言型スキーマに従います。また、フェイルクローズの不変条件を無効にすることはできません。不明、重複、過大、形式不正、またはシンボリックリンクのポリシーは、フェイルクローズします。
from securedact_core import RedactionRequest, SecuredactEngine
engine = SecuredactEngine.from_environment()
result = engine.prepare(
RedactionRequest(
text="Contact [email protected]",
policy="strict_external_ai",
)
)
from_environment() は、コンテキストモデルの要件を維持します。単体で決定論的な開発を行う場合は、SECUREDACT_REQUIRE_FLAIR=0 が必要です。アプリケーションでは、テスト済みの検出器実装を注入することもできます。公開 APIとポリシーを参照してください。
再現可能な開発
コミット済みの uv.lock は、Python 3.12 用のランタイム、ML、開発、ベンチマーク、およびセキュリティの各エクストラを解決します。
uv sync --frozen --extra dev --extra benchmark
uv run python scripts\verify.py
テスト、課題、スクリーンショット、フィクスチャ、プルリクエストには、実在する個人情報、プライベートな文書、認証情報、顧客のログ、モデルの重みを決して使用しないでください。CONTRIBUTING.mdを参照してください。
評価とパフォーマンス
uv run python -m securedact_eval quality --mode deterministic --gate `
--thresholds benchmarks\thresholds.json `
--baseline benchmarks\baselines\quality-deterministic.json
uv run python -m securedact_eval performance --mode deterministic
バージョン管理された合成コーパスでは、完全一致および緩和一致のスパン適合率、再現率、F1、偽陽性率と偽陰性率、エンティティ/言語/ドメイン/分割ごとの結果、アクション/カテゴリの精度、およびブートストラップによる再現率の区間を報告します。真陰性は文書レベルの負例であり、トークンレベルの安全性を示すものではありません。GDPR 関連スイートは検出の評価であり、法令遵守の認証ではありません。実際の Flair および GPU のベンチマークには、明示的に設定されたローカルモデルが必要であり、通常の CI には含まれません。ベンチマークを参照してください。 ベンチマークフレームワークでは、ローカルデータの各ティアと大規模プロファイルについて説明しています。移行計画では、今後の切り出し範囲を定義しています。GitHub がリポジトリのステップを実行する前に失敗した場合は、CI トラブルシューティングの判断ツリーを参照してください。ローカルでの成功は、必須の GitHub チェックの代わりにはなりません。
セキュリティと制限事項
- アプリケーションコードでは、プロンプト、検出結果、マッピング、復元ハンドル、シークレット、モデル入力、復元された出力をログに記録しません。
- 決定論的検出と文脈検出では、新規のもの、曖昧なもの、または敵対的な情報開示を見逃す場合があります。照応関係の特定や、あらゆる難読化への耐性は保証していません。
- レビュー用オフセットを使うと、信頼できるローカルクライアントが元の入力から値を再構築できます。レビューの応答はローカルに保管してください。
- ホストの動作と下流プロバイダーの動作は、信頼境界の対象外です。
- ファイルに記載されたリポジトリのセキュリティ設定についても、管理者による確認が必要です。
脆弱性はSECURITY.mdを使用して非公開で報告してください。脆弱性の詳細や実際のデータを公開イシューに記載しないでください。
ライセンス
オリジナルのリポジトリのソースとドキュメントは、 Apache License 2.0の下でライセンスされています。著作権表示は NOTICEに記載されています。サードパーティの依存関係とモデルの重みには、それぞれのライセンスが適用されます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。