strac-mcp-dlp について
strac-mcp-dlpは、テキストやローカルファイル内の機密データを検出・マスキングしたいAIエージェント開発者向けのオープンソースMCPサーバーです。リクエストをStrac DLP APIに転送し、検出とマスキングをAPI側で行います。
主な機能
- 01テキスト内の機密データをマスキング
- 02テキストを変更せず機密データを検出
- 03OCRと分類器によるローカルファイルのスキャン
- 04マスキング済みファイルのコピーを作成
- 05認可されたStrac Vaultトークンの復元
活用シーン
- 01テキストがプロンプトに入る前に機密値を除去
- 02テキストを送る前に機密データを確認
- 03ローカルのPDFや画像をスキャン
- 04元ファイルを保ったままマスキング済みコピーを作成
MCP 対応
MCPサーバーは、テキストとファイルの検出・マスキング、トークン復元を行う5つのツールを提供します。APIキーを使ってHTTPSでStrac DLP APIに接続し、処理はローカルではなくStrac側で実行されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx strac-mcp-dlpSTRAC_API_KEYシークレットStrac API key. Request one at https://www.strac.io/mcp-integrations. Keys are prefixed sk_live_ (production) or sk_test_ (sandbox).STRAC_API_BASEOverride the Strac API base URL. Defaults to https://api.live.tokenidvault.com for sk_live_ keys and https://api.test.tokenidvault.com for sk_test_ keys.STRAC_API_TIMEOUTRequest timeout in seconds. Defaults to 60.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | はい | |
| redact_field_mode | enum | いいえ | REDACTED | BLANK | MASK_SEVEN_X | TOKEN_LINK_PLAINTEXT |
| include_matched_text | boolean | いいえ |
詳細
Strac MCP DLP — AI エージェント向け PII/PHI/PCI とシークレットのマスキング(MCP)
オープンソースのModel Context Protocolサーバーです。Claude、Cursor、VS Code、自作のエージェントなど、あらゆる AI エージェントで、機密データがモデルに届く前に検出して削除できます。
エージェントからこのサーバーを利用すると、redact_text は次の内容を
Please onboard the user with SSN 123-45-6789 and email [email protected]
次のように変換します。
Please onboard the user with SSN [REDACTED] and email [REDACTED]
さらに、検出された項目の構造化リストも返します。画像、PDF、スキャン文書でも同じように動作します。
これはStrac DLP APIを利用する薄いクライアントです。API キーはご自身で用意してください。検出とマスキングはすべて Strac のサーバー側で行われます。
その理由
エージェントはすでに受信トレイ、チケット管理システム、CRM、データベース、ファイルストアに接続されています。MCP ツールを呼び出すたびに、SSN、カード番号、患者記録、AWS キーなどがプロンプトに取り込まれる可能性があります。そしてそこから、モデルプロバイダーのログ、ベクトルストア、Slack の要約、サポートチケットへと広がるおそれがあります。
モデルがデータを見た後にフィルタリングしても手遅れです。このサーバーは、モデルに届く前にチェックを行います。まず検出してマスキングし、その後、機密情報を含まないテキストを使ってエージェントが推論できるようにします。
このサーバーは Strac への入り口のひとつです
渡された文字列をマスキングするのは、Strac が行うことのほんの一部です。Strac の製品価値は幅広い保護にあります。機密データがすでに存在する SaaS アプリやクラウドアプリに Strac を接続すれば、誰かがプロンプトに貼り付けるのを待つのではなく、ポリシーに基づいて監査証跡を残しながら、継続的にデータを検出、分類、マスキング、修正します。
Slack、Google Workspace、Microsoft 365、Salesforce、Zendesk、Box、Dropbox、Jira、Confluence、GitHub、Notion、OneDrive、SharePoint、Snowflake、Databricks、BigQuery、Postgres、MongoDB、AWS、Azure、GCP、ブラウザー、エンドポイントに対応。60 以上のインテグレーションをエージェントレスで利用でき、コードを書く必要はありません。
MCP 経由でこれらのシステムにアクセスする場合、この機能が特に重要になります。エージェント(Claude Code、Claude Desktop、Cursor、GitHub Copilot、OpenAI Codex)が MCP コネクター経由で Salesforce のレコードや Drive のファイルを取得すると、Strac はエージェントが受け取る前に、インラインで機密データをマスキングします。これは、エージェントにマスキングを依頼することと、依頼の有無にかかわらず確実にマスキングを適用することの違いです。
strac.io/mcp-integrations がその製品です。このリポジトリは、開発者向けの一部です。同じ検出エンジンをあらゆる MCP クライアントから利用でき、文字列やファイルをご自身でサニタイズできます。
エージェントによるすべての MCP 呼び出し(呼び出されたツール、読み込まれたファイル、プロンプトの背後にあるユーザー ID)を記録し、検査します。
60 秒で始める
1. インストール
pip install strac-mcp-dlp
2. API キーを申請
キーを申請するか、[email protected] までメールでお問い合わせください。
キーには sk_live_(本番環境)または sk_test_(サンドボックス)のプレフィックスが付きます。サーバーは対応するエンドポイントを自動的に選択します。
3. MCP クライアントに追加
Claude Desktop — macOS では ~/Library/Application Support/Claude/claude_desktop_config.json、Windows では %APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"strac-dlp": {
"command": "strac-mcp-dlp",
"env": {
"STRAC_API_KEY": "sk_live_your_key_here"
}
}
}
}
Claude Code:
claude mcp add strac-dlp --env STRAC_API_KEY=sk_live_your_key_here -- strac-mcp-dlp
Cursor — プロジェクト内の .cursor/mcp.json またはグローバル設定の ~/.cursor/mcp.json に、Claude Desktop と同じブロックを使用します。
4. クライアントを再起動して、何かのマスキングを依頼
チケットに貼り付ける前に、これを Strac でマスキングしてください:「顧客 Jane Doe、SSN 123-45-6789、カード番号 4111 1111 1111 1111。」
uv があれば、インストールせずに利用できます。
{
"mcpServers": {
"strac-dlp": {
"command": "uvx",
"args": ["strac-mcp-dlp"],
"env": { "STRAC_API_KEY": "sk_live_your_key_here" }
}
}
}
すぐにコピーして使える設定ファイルは examples/ をご覧ください。
ツール
-
redact_text
- テキストのブロックから PII、PHI、PCI、シークレットをマスキングし、サニタイズされた文字列と検出された内容を返します
- 入力:
text(string):マスキングするテキストredact_field_mode(string、任意):REDACTED(デフォルト)、BLANK、MASK_SEVEN_X、またはTOKEN_LINK_PLAINTEXTinclude_matched_text(boolean、任意):検出された生の機密値も返します。デフォルトではオフです
- 信頼できないテキストやユーザー提供のテキストをプロンプト、ログ行、チケット、または下流システムに渡す前に呼び出します
redact_text(text="SSN 123-45-6789")→"SSN [REDACTED]"
-
detect_sensitive_data
- テキストを変更せずに、含まれている機密データの種類を報告します
- 入力:
text(string):スキャンするテキストinclude_matched_text(boolean、任意):検出された生の値も返します。デフォルトではオフです
- テキストをそのまま次に渡しても安全かどうか判断する際に使用します
detect_sensitive_data(text="call me at [email protected]")→EMAIL
-
detect_file
- Strac OCR と分類器を使用して、ローカルファイル(画像、PDF、スキャン、設定ファイル、ソースファイル)をスキャンします
- 入力:
path(string):スキャンするファイルのパスinclude_matched_text(boolean、任意):検出された生の値も返します。デフォルトではオフです
- ファイルは変更されません
detect_file(path="./w2.pdf")→TAX_ID_NUMBER, NAME, ADDRESS
-
redact_file
- ローカルファイルのマスキング済みコピーをディスクに書き込みます
- 入力:
path(string):マスキングするファイルのパスoutput_path(string、任意):コピーの書き込み先です。デフォルトでは、元のファイルと同じ場所に.redactedの接尾辞を付けて保存します。元のファイルを指定した場合は拒否されますoverwrite(boolean、任意):既存の保存先を置き換えることを許可します。デフォルトではオフです
- 元のファイルは変更されません
redact_file(path="./w2.pdf")→./w2.redacted.pdf
-
detokenize
- 権限のある呼び出し元について、Strac のボールトトークン(
tkn_…)を元の値に解決します - 入力:
token_ids(string[]):解決するトークン識別子。1 回の呼び出しにつき最大 10 件です
- ライブモードでは、IP 許可リストに登録されたサーバー間キーが必要です
detokenize(token_ids=["tkn_abc"])→"111-22-3333"
- 権限のある呼び出し元について、Strac のボールトトークン(
マスキングスタイル
redact_text は redact_field_mode を受け取ります:
| モード | 結果 |
|---|---|
REDACTED(デフォルト) | [REDACTED] |
MASK_SEVEN_X | XXXXXXX |
BLANK | 完全に削除 |
TOKEN_LINK_PLAINTEXT | <sensitive_data: https://…/detokenize/tkn_…> — Strac のボールト内の値へのリンクです。権限のある人間は引き続き値を取得できます |
情報を漏らさないマスキング
デフォルトでは、これらのツールは検出した値ではなく、種類と位置を返します:
{
"redacted_text": "Please onboard the user with SSN [REDACTED]",
"detection_count": 1,
"data_element_types": ["TAX_ID_NUMBER"],
"detections": [{ "type": "TAX_ID_NUMBER", "begin_index": 33, "end_index": 44, "length": 11 }]
}
検出したテキストをマスキング済みのテキストと一緒に返すと、モデルに、たった今削除したデータそのものを渡すことになります。呼び出し元が生の値を本当に必要とする場合は、include_matched_text=true を渡してください。
検出対象
Strac には、10 カテゴリにわたる 191 個の組み込みデータ要素のほか、正規表現または独自にトレーニングしたモデルで定義できるカスタム要素が含まれています。
| カテゴリ | 要素数 | 例 |
|---|---|---|
| 識別情報 | 126 | SSN/TIN、パスポート、約 60 か国の運転免許証と国民 ID(Aadhaar、PAN、PESEL、BSN、Fiscal Code、IRD など)、さらに NPI と DEA 登録番号 |
| シークレット | 30 | AWS アクセスキーおよびシークレットキー、GitHub と GitLab のトークン、Slack トークン、GCP 認証情報、Azure ストレージキーおよびサービスプリンシパルキー、秘密鍵、JDBC と MongoDB の接続文字列、シードフレーズ |
| 金融口座 | 10 | カード番号と末尾の数字、CVV、有効期限、銀行口座番号とルーティング番号、IBAN、SWIFT |
| 広告識別子 | 7 | Apple IDFA と IDFV、Google GAID、Roku、Amazon Fire OS、Huawei OAID |
| 連絡先 | 6 | 名前、住所、メールアドレス、電話番号、生年月日、年齢 |
| デバイス追跡 | 5 | IP アドレス、MAC アドレス、IMEI、Web ページ URL、日時 |
| 資産 | 3 | ソースコード、VIN、車両のナンバープレート |
| ドキュメントのプロパティ | 2 | 請求書、パスワード保護されたドキュメント |
| コンテンツモデレーション | 1 | 不快なコンテンツ |
| 知的財産 | 1 | 化学/分子構造 |
各要素の個別名はこちらをご覧ください:Strac Catalog of Sensitive Data Elements。
テキストに加え、OCR を介して PDF、JPEG、PNG、DOCX、XLSX、スクリーンショット、.msg メールファイルも検出対象になります。これらが detect_file と redact_file で処理されるファイル形式です。
注意点として、これらの MCP ツールが返す type 値は、応答したエンドポイントによって異なり、同じ要素でも異なる語彙が使われます。米国の社会保障番号は、redact_text では TAX_ID_NUMBER として返され、detect_sensitive_data では SOCIAL_SECURITY_NUMBER として返されます。後者はさらに、reported_element_types の下に SSN も報告します。どちらの語彙も正規化せず、返されたまま提示するため、こちらで情報を作り出すことはありません。検出される要素は、アカウントで有効になっている設定によって異なります。上記の完全なカタログは、ポリシー、修復、監査を管理する、接続済みアプリ全体で実行されるものです。
設定
| 変数 | 必須 | デフォルト |
|---|---|---|
STRAC_API_KEY | はい | — |
STRAC_API_BASE | いいえ | sk_live_ キーの場合は https://api.live.tokenidvault.com、sk_test_ キーの場合は https://api.test.tokenidvault.com |
STRAC_API_TIMEOUT | いいえ | 60 秒 |
キーが設定されていない場合、すべてのツールは次を返します:Set STRAC_API_KEY — request one at https://www.strac.io/mcp-integrations。
サーバーはデフォルトで stdio を使用します。strac-mcp-dlp --transport streamable-http を実行すると、代わりに HTTP でサービスを提供します。
仕組み
MCP クライアントはこのサーバーをローカルで起動します。サーバーは各ツール呼び出しを、X-Api-Key を付けて HTTPS 経由で Strac API に転送し、結果を返します。お使いのマシン上で分類や編集が行われることはなく、このリポジトリには検出モデルも含まれていません。
データ要素の定義、カスタムポリシー、修復ルール、監査証跡はこのリポジトリではなく Strac アカウントに保存されます。そのため、これら 5 つのツールで使用するキーは、接続済みのすべてのアプリにも適用されます。
MCP client ──stdio──▶ strac-mcp-dlp ──HTTPS──▶ Strac DLP API
(Claude, Cursor, (this repo, (classifiers, OCR,
your agent) ~600 lines) vault, policies, audit)
API から引き継がれる制限:インラインコンテンツは 4 MB、ドキュメントのアップロードは 10 MB、トークン化解除の呼び出しあたり 10 トークンです。
開発
git clone https://github.com/strac-io/strac-mcp-dlp
cd strac-mcp-dlp
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/python -m pytest
テストスイートは respx で Strac API をモックするため、キーなしで実行できます。サーバーを手動で試すには、次を実行します。
STRAC_API_KEY=sk_test_… .venv/bin/python -m strac_mcp_dlp
または、MCP Inspector を接続します。
STRAC_API_KEY=sk_test_… npx @modelcontextprotocol/inspector strac-mcp-dlp
FAQ
Strac アカウントは必要ですか?
はい。これは Strac DLP API を利用する薄いクライアントであり、すべての呼び出しに認証が必要です。匿名モードはありません。strac.io/mcp-integrations でキーをリクエストするか、[email protected] までメールでお問い合わせください。
データは自分のマシン上にとどまりますか?
いいえ。このツールに渡したテキストやファイルは、分類のために HTTPS 経由で Strac API に送信されます。ローカルで分類されることはありません。このリポジトリには検出モデルも、分類器も、ボールトも含まれていません。detect_file は 4 MB 未満のファイルをインラインで送信し、保存しません。より大きなファイルと、redact_file に渡されたファイルはすべて、Strac のドキュメントボールトにアップロードされます。
どの MCP クライアントで動作しますか?
stdio に対応するクライアントであれば、どれでも使用できます。Claude Desktop、Claude Code、Cursor、VS Code などが該当します。サブプロセスではなくサービスとして実行する必要がある場合は、--transport streamable-http を使用できます。
シークレットも検出できますか、それとも PII のみですか?
どちらも検出できます。個人情報、健康情報、支払い情報に加えて、Strac は AWS のアクセスキーとシークレットキー、GitHub と GitLab のトークン、Slack のトークン、GCP の認証情報、Azure のストレージキーとサービスプリンシパルキー、秘密鍵、JDBC と MongoDB の接続文字列を分類します。完全なカタログをご覧ください。
redact_text は検出した値を返さないのですか?
返すと、マスキングを元に戻してしまうからです。ツールがマスキング済みの文字列とともに検出結果として "123-45-6789" を返した場合、モデルには取り除いたばかりのデータがそのまま渡ってしまいます。デフォルトでは種類と位置が返されます。呼び出し元が元の値を本当に必要とする場合は、include_matched_text=true を渡してください。
redact_file は元のファイルを変更しますか?
いいえ。コピーを作成し、(シンボリックリンク経由の場合も含めて)元のファイルを指す output_path は拒否します。また、overwrite=true を渡さない限り、既存のファイルを置き換えることはありません。
Strac API が予期しない応答を返した場合はどうなりますか?
ツールはエラーになります。検証できなかったスキャンを問題なしとして報告することはありません。不正な形式または解析できない応答を受け取った場合、「機密データは見つかりませんでした」と返すのではなく、エラーを発生させます。サイレントな見逃しは、DLP ツールにあってはならない失敗だからです。
Strac プラットフォームとはどう違いますか?
このリポジトリは、エージェントが必要に応じて呼び出すツールです。プラットフォームは SaaS、クラウド、データベースのコネクター全体にわたって動作し、エージェントが要求するかどうかにかかわらずポリシーを適用します。エージェントにデータが渡る前にインラインでマスキングを行い、修復と監査証跡も提供します。strac.io/mcp-integrationsをご覧ください。
リンク
- Strac MCP integrations — 完全な MCP DLP ゲートウェイ、コネクター、ポリシー、監査
- Strac catalog of sensitive data elements — 各データ要素の名称を網羅
- Strac API reference
- MCP DLP: protecting data across Model Context Protocol
- Strac integrations — SaaS およびクラウドのコネクター一覧
セキュリティ
API キーをコミットしないでください。sk_live_ キーはサーバー側の認証情報です。ソース管理ではなく、MCP クライアントの env ブロックまたはシークレットマネージャーに保管してください。脆弱性を報告する場合は、[email protected] までメールでご連絡ください。
ライセンス
MIT — LICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。

