EU PII Redaction について
EU PII Redaction は、LLM ワークフローで欧州の個人データを保護するツールです。Python、LangChain、MCP に対応し、複数の識別情報を検出して、ファイルのマスキングとローカルでの復元を行います。
主な機能
- 01氏名や国民識別番号の検出
- 02IBAN、カード、VAT番号の検証
- 03人物ごとに同じプレースホルダーを使用
- 04テキストのマスキングと復元
- 05ファイル処理とマッピング保存
活用シーン
- 01プロンプト送信前の個人データ削除
- 02内容を会話に出さずファイルをマスキング
- 03生成された返信内の値を元に戻す
MCP 対応
MCP サーバーは、テキストのマスキング、ファイルのマスキング、ファイルの復元ツールを公開します。ファイルはサーバー自身が読み書きし、件数などのみを返します。復元はオフラインで行えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| mode | enum | いいえ | "label" は [TYPE_n] プレースホルダーに、"mask" はアスタリスクに置き換えます。label | mask |
| text | string | はい | マスキングするテキスト。 |
| types | any | いいえ | これらの種類のみを対象にします。既定ではすべての種類が対象です。 |
詳細
eu-pii-redact
欧州の個人データがLLMのプロンプトやログに含まれないようにし、回答で元に戻します。 EU PII Redaction API用のPythonクライアント、LangChain連携、MCP サーバーです。 サインアップせずにライブで試す · クイックスタート · プライバシーとデータ処理
Hi, my name is Karina Dahl. I was charged twice for order 88412.
Please refund to DK50 0040 0440 1162 43 or call me on +45 32 12 34 56.
Karina
は次のようになります
Hi, my name is [PERSON_1]. I was charged twice for order 88412.
Please refund to [IBAN_1] or call me on [PHONE_1].
[PERSON_1]
- 名前は大文字ではなく、根拠に基づいて検出します。敬称、挨拶、役職、
Name:ラベル、署名、または欧州の14万件の名前から取得したファーストネームです。「Best Practices」や「Court of Justice」はそのままです。 - EU/EEA 21か国の国民ID番号。チェックディジットと生年月日で検証します (personnummer、HETU、DNI/NIE、codice fiscale、NIR、PESEL、BSN、CPRなど)。
- IBAN(mod-97)、カード番号(Luhn)、EU VAT番号、メールアドレス、電話番号(+プレフィックス付き)、IPアドレス。
- 同一人物への言及には同じプレースホルダーを使います。注文番号や請求書番号は変更されません。
APIの利用プランが設定されたRapidAPIキーが必要です。
無料プランでは、月に500件のリクエストを利用できます。
RAPIDAPI_KEYとして設定してください。
Python
pip install eu-pii-redact
from eu_pii_redact import Redactor
with Redactor() as r: # reads RAPIDAPI_KEY
redaction = r.redact(ticket)
reply = ask_llm(redaction.text) # the model only sees placeholders
print(redaction.restore(reply)) # real values back in the answer
redaction.entitiesには、検出内容ごとに、種類、元のテキスト内でのオフセット、プレースホルダーが記載されます(国民IDにはcountryとschemeも含まれます)。50,000文字を超えるテキストは、プレースホルダーの一貫性を保ちながら分割して送信されます。r.redact(text, types=["EMAIL", "IBAN"], mode="mask")はアスタリスクでマスクします。
LangChain
pip install "eu-pii-redact[langchain]"
from eu_pii_redact.langchain import protect, PIIRedactionTransformer
safe_llm = protect(llm) # any model or chain that takes a string
safe_llm.invoke("Draft a reply to Karina Dahl about her refund to DK50 0040 0440 1162 43")
# the model sees [PERSON_1] and [IBAN_1]; the returned message has the real values again
docs = PIIRedactionTransformer().transform_documents(docs) # e.g. before indexing for RAG
MCP サーバー
AI アシスタントがテキスト、さらに重要なことに、ファイルの中身を読み取らずにファイルを秘匿化できます。
redact_fileはファイル自体を読み書きし、件数のみを報告するため、個人データが会話に含まれることはありません。restore_fileは値をローカルで元に戻します。
| ツール | 機能 |
|---|---|
redact_text | テキストを秘匿化します。秘匿化済みテキストとエンティティを返します(元の値は含みません) |
redact_file | UTF-8ファイルを新しいファイルに秘匿化します。復元用マッピングを書き込みます(所有者のみのアクセス権限) |
restore_file | マッピングを使って、オフラインでファイル内の値を元に戻します |
Claude Desktop(ワンクリック): 最新リリースからeu-pii-redact-0.1.0.mcpbをダウンロードして開き、求められたらRapidAPIキーを貼り付けます。バンドルのソースはmcpb/にあります。
Claude Code
claude mcp add eu-pii-redact -e RAPIDAPI_KEY=your-key -- uvx eu-pii-redact
Claude Desktop/Cursor/その他のホスト(mcpServers設定)
{
"mcpServers": {
"eu-pii-redact": {
"command": "uvx",
"args": ["eu-pii-redact"],
"env": { "RAPIDAPI_KEY": "your-key" }
}
}
}
Postman
EU PII Redactionワークスペースから公開コレクションをフォークするか、postman/eu-pii-redact.postman_collection.jsonをインポートし、コレクション変数rapidapi_keyを設定して送信してください。
サンプルレスポンスと組み込みテストを含む4件のリクエストがあります。
制限事項
ルールベースのため高速(50,000文字で約0.1秒)で予測可能です。 現時点では住所には対応していません。電話番号には国際プレフィックスが必要です。また、手がかりのない名前で、姓が英単語(「Will Smith」など)の場合は、意図的に検出されません。コンプライアンスを保証するものではなく、強力な第一層としてご利用ください。
ライセンス
このクライアントパッケージはMITライセンスです。API自体はホスト型サービスです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。