使用说明
CloakLLM MCP服务器
MCP服务器,将CloakLLM的Python SDK打包为Claude Desktop和其他MCP兼容客户端的工具。
重要提示:MCP不会保护您的初始提示。 MCP工具被称为 LLM --提示首先发送给LLM提供者,然后LLM决定调用工具。这意味着原始提示(包括任何PII)在CloakLLM可以对其进行清理之前到达提供者。MCP服务器对于清理LLM处理的数据非常有用 在...期间 对话(文档、文件、工具输出),但 不能 阻止您的提示到达提供商。
为了在提示离开您的基础架构之前对其进行保护,请使用 SDK中间件 相反:
- python
enable_openai(client)或cloakllm.enable()(升)- JavaScript:
cloakllm.enable(client)
工具
| 工具 | 说明 |
|---|---|
sanitize |
检测并隐藏PII,返回经过净化的文本+令牌映射ID+实体详细信息。通过 mode: "redact" 用于不可逆的PII删除(不返回token_map_id)。 |
desanitize |
使用令牌映射ID还原原始值 |
analyze |
在不隐藏的情况下检测PII(纯分析) |
安装
cd cloakllm-mcp
pip install -e .
Claude桌面配置
添加到您的 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"
}
多圈: 通过
token_map_id从以前sanitize在对话中重复使用相同令牌映射的响应。相同的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"}
]
}
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
CLOAKLLM_LOG_DIR |
./cloakllm_audit |
审核日志目录 |
CLOAKLLM_AUDIT_ENABLED |
true |
启用/禁用审核日志记录 |
CLOAKLLM_SPACY_MODEL |
en_core_web_sm |
NER的spaCy模型 |
CLOAKLLM_LLM_DETECTION |
false |
启用基于LLM的检测 |
CLOAKLLM_LLM_MODEL |
llama3.2 |
LLM检测的Ollama模型 |
CLOAKLLM_OLLAMA_URL |
http://localhost:11434 |
奥拉马终点 |
测试
# Test with MCP inspector
python -m mcp dev server.py
# Or run directly
python server.py
另见
- CloakLLM中心 --项目概述、架构和链接
- CloakLLM Python SDK --带有spaCy NER+OpenAI/LiteLLM中间件的Python库
- CloakLLM JS SDK --使用OpenAI+Vercel AI中间件的JavaScript库
许可证
麻省理工学院
