CloakLLM MCP Server
CloakLLM MCPサーバー
CloakLLMのPython SDKをClaude Desktopやその他のMCP互換クライアント向けのツールとしてラップするMCPサーバーです。
重要: MCPは最初のプロンプトを保護しません。 MCPツールはLLMによって呼び出されます。プロンプトはまずLLMプロバイダーに送信され、その後LLMがツールを呼び出すかどうかを決定します。つまり、生のプロンプト(PIIを含む)はCloakLLMがサニタイズする前にプロバイダーに到達します。このMCPサーバーは、会話の最中にLLMが処理するデータ(ドキュメント、ファイル、ツールの出力など)をサニタイズするのには役立ちますが、プロンプトがプロバイダーに到達することを防ぐことはできません。
インフラストラクチャからプロンプトが出る前に保護するには、代わりにSDKミドルウェアを使用してください:
Python:
enable_openai(client)またはcloakllm.enable()(LiteLLM)JavaScript:
cloakllm.enable(client)
ツール
ツール | 説明 |
| PIIを検出・秘匿化し、サニタイズされたテキスト + トークンマップID + entity_detailsを返します。不可逆的なPII削除(token_map_idは返されません)を行うには |
| トークンマップIDを使用して元の値を復元します |
| 秘匿化せずにPIIを検出します(純粋な分析) |
Related MCP server: Presidio MCP Server
インストール
cd cloakllm-mcp
pip install -e .Claude Desktopの設定
claude_desktop_config.json に以下を追加します:
{
"mcpServers": {
"cloakllm": {
"command": "python",
"args": ["/path/to/cloakllm-mcp/server.py"],
"env": {
"CLOAKLLM_LOG_DIR": "./cloakllm_audit",
"CLOAKLLM_LLM_DETECTION": "false"
}
}
}
}または uvx を使用する場合:
{
"mcpServers": {
"cloakllm": {
"command": "uvx",
"args": ["mcp", "run", "/path/to/cloakllm-mcp/server.py"]
}
}
}使用例
LLMに送信する前にテキストをサニタイズする
ツール呼び出し: sanitize
{
"text": "Email john@acme.com about the meeting with Sarah Johnson at 742 Evergreen Terrace",
"model": "claude-sonnet-4-20250514",
"token_map_id": "optional-id-for-multi-turn"
}マルチターン: 前回の
sanitizeレスポンスからtoken_map_idを渡すことで、会話のターン間で同じトークンマップを再利用できます。同じPIIは常に同じトークンにマッピングされます。
レスポンス:
{
"sanitized": "Email [EMAIL_0] about the meeting with [PERSON_0] at 742 Evergreen Terrace",
"token_map_id": "a1b2c3d4-...",
"entity_count": 2,
"categories": {"EMAIL": 1, "PERSON": 1},
"entity_details": [
{"category": "EMAIL", "start": 6, "end": 19, "length": 13, "confidence": 0.95, "source": "regex", "token": "[EMAIL_0]"},
{"category": "PERSON", "start": 42, "end": 56, "length": 14, "confidence": 0.85, "source": "spacy", "token": "[PERSON_0]"}
]
}元の値を復元する
ツール呼び出し: desanitize
{
"text": "I've drafted an email to [EMAIL_0] regarding [PERSON_0]'s request.",
"token_map_id": "a1b2c3d4-..."
}レスポンス:
{
"restored": "I've drafted an email to john@acme.com regarding Sarah Johnson's request."
}テキストのPIIを分析する(秘匿化なし)
ツール呼び出し: analyze
{
"text": "Contact john@acme.com, SSN 123-45-6789"
}レスポンス:
{
"entity_count": 2,
"entities": [
{"text": "john@acme.com", "category": "EMAIL", "start": 8, "end": 21, "confidence": 0.95, "source": "regex"},
{"text": "123-45-6789", "category": "SSN", "start": 27, "end": 38, "confidence": 0.95, "source": "regex"}
]
}環境変数
変数 | デフォルト | 説明 |
|
| 監査ログディレクトリ |
|
| 監査ログの有効/無効 |
|
| NER用spaCyモデル |
|
| LLMベースの検出を有効化 |
|
| LLM検出用Ollamaモデル |
|
| Ollamaエンドポイント |
テスト
# Test with MCP inspector
python -m mcp dev server.py
# Or run directly
python server.py参照
CloakLLM Hub — プロジェクトの概要、アーキテクチャ、リンク
CloakLLM Python SDK — spaCy NER + OpenAI / LiteLLMミドルウェアを備えたPythonライブラリ
CloakLLM JS SDK — OpenAI + Vercel AIミドルウェアを備えたJavaScriptライブラリ
ライセンス
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Scan prompts for injection attacks, redact PII, and audit LLM SDK usage from any MCP client
Detect and redact PII and secrets before text reaches an LLM, with reversible placeholders.
Detect and redact PII and secrets (API keys, tokens) in text, HTML or PDF before it reaches an LLM.
Security & DLP proxy for MCP: tool-poisoning scans, PII redaction on tool args/results. Beta.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides prompt injection detection, PII/secrets redaction, and an audit trail for AI agents via MCP tools.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables PII detection and anonymization using Microsoft Presidio with tools, resources, and prompts via MCP.MIT
- AlicenseAqualityBmaintenanceLocal pseudonymisation MCP server that detects PII in text, replaces it with opaque tokens before sending to cloud LLMs, and restores tokens afterward.2163 npm2MIT
- AlicenseNot gradedqualityDmaintenanceProvides MCP tools for prompt injection detection and content sanitization, safeguarding LLM pipelines. Also enables Japanese PII scanning and masking for secure data handling.MIT