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: Agent Guardrail MCP
インストール
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
Security & DLP proxy for MCP: tool-poisoning scans, PII redaction on tool args/results. Beta.
Connect MCP clients to 2,000+ AI models without managing provider API keys.
Stateless PII redaction over MCP/REST. Free ≤1000 words or $0.01/call; file upload supported.
Redact PII from text before it reaches a model. Nothing stored, no third-party AI.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP proxy that pseudo-anonymizes PII before data reaches external AI providers like Claude, ChatGPT, or Gemini.18MIT
- AlicenseAqualityDmaintenanceProvides prompt injection detection, PII/secrets redaction, and an audit trail for AI agents via MCP tools.4MIT
- AlicenseNot gradedqualityCmaintenanceEnables PII detection and anonymization using Microsoft Presidio with tools, resources, and prompts via MCP.MIT
- AlicenseAqualityAmaintenanceLocal pseudonymisation MCP server that detects PII in text, replaces it with opaque tokens before sending to cloud LLMs, and restores tokens afterward.2106 npm2MIT