🚀 MCP Conceal
MCP Conceal 是一個 MCP 代理,它可以在數據到達 Claude、ChatGPT 或 Gemini 等外部 AI 提供商之前,對個人身份信息(PII)進行偽匿名化處理。該工具通過偽匿名化而非簡單的信息刪除,保留了 AI 分析所需的語義和數據關係。例如,john.smith@acme.com 會被轉換為 mike.wilson@techcorp.com,在保護敏感信息的同時保持了數據結構。
🚀 快速開始
前提條件
安裝用於基於大語言模型(LLM)的 PII 檢測的 Ollama:
- 安裝 Ollama:ollama.ai
- 拉取模型:
ollama pull llama3.2:3b
- 驗證安裝:
curl http://localhost:11434/api/version
基本用法
創建一個最小化的 mcp-server-conceal.toml 配置文件:
[detection]
mode = "regex_llm"
[llm]
model = "llama3.2:3b"
endpoint = "http://localhost:11434"
所有可用的配置選項請參考配置部分。
作為代理運行:
mcp-server-conceal \
--target-command python3 \
--target-args "my-mcp-server.py" \
--config mcp-server-conceal.toml
✨ 主要特性
- 偽匿名化處理:在保護敏感信息的同時,保留 AI 分析所需的語義和數據關係。
- 多種檢測模式:支持基於正則表達式、大語言模型或兩者結合的 PII 檢測模式,可根據性能要求和數據複雜度進行選擇。
- 一致映射:確保相同的真實 PII 始終映射到相同的虛假數據,便於數據的一致性和可追溯性。
- 可配置性:提供豐富的配置選項,包括檢測閾值、數據生成區域、映射數據庫路徑等。
📦 安裝指南
下載預構建二進制文件
-
訪問 發佈頁面
-
下載適合你平臺的二進制文件:
| 平臺 | 二進制文件 |
|------|------|
| Linux x64 | mcp-server-conceal-linux-amd64 |
| macOS Intel | mcp-server-conceal-macos-amd64 |
| macOS Apple Silicon | mcp-server-conceal-macos-aarch64 |
| Windows x64 | mcp-server-conceal-windows-amd64.exe |
-
賦予執行權限:chmod +x mcp-server-conceal-* (Linux/macOS)
-
添加到系統路徑:
- Linux/macOS:
mv mcp-server-conceal-* /usr/local/bin/mcp-server-conceal
- Windows:將文件移動到系統路徑中的目錄,或者將當前目錄添加到系統路徑。
從源代碼構建
git clone https://github.com/gbrigandi/mcp-server-conceal
cd mcp-server-conceal
cargo build --release
二進制文件位置:target/release/mcp-server-conceal
💻 使用示例
基礎用法
mcp-server-conceal \
--target-command python3 \
--target-args "my-mcp-server.py" \
--config mcp-server-conceal.toml
高級用法
Claude 桌面集成
配置 Claude 桌面以代理 MCP 服務器:
{
"mcpServers": {
"database": {
"command": "mcp-server-conceal",
"args": [
"--target-command", "python3",
"--target-args", "database-server.py --host localhost",
"--config", "/path/to/mcp-server-conceal.toml"
],
"env": {
"DATABASE_URL": "postgresql://localhost/mydb"
}
}
}
}
自定義 LLM 提示
為特定領域自定義檢測提示:
模板位置:
- Linux:
~/.local/share/mcp-server-conceal/prompts/
- macOS:
~/Library/Application Support/com.mcp-server-conceal.mcp-server-conceal/prompts/
- Windows:
%LOCALAPPDATA%\\com\\mcp-server-conceal\\mcp-server-conceal\\data\\prompts\\
使用方法:
- 運行一次 MCP Conceal 以在提示目錄中自動生成
default.md:mcp-server-conceal --target-command echo --target-args "test" --config mcp-server-conceal.toml
- 複製模板:
cp default.md healthcare.md
- 編輯模板以匹配特定領域的 PII 模式
- 配置使用自定義模板:
prompt_template = "healthcare"
傳遞環境變量
將環境變量傳遞給目標進程:
mcp-server-conceal \
--target-command node \
--target-args "server.js" \
--target-cwd "/path/to/server" \
--target-env "DATABASE_URL=postgresql://localhost/mydb" \
--target-env "API_KEY=secret123" \
--config mcp-server-conceal.toml
📚 詳細文檔
配置
完整的配置參考如下:
[detection]
mode = "regex_llm"
enabled = true
confidence_threshold = 0.8
[detection.patterns]
email = "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b"
phone = "\\b(?:\\+?1[-\\.\\s]?)?(?:\\(?[0-9]{3}\\)?[-\\.\\s]?)?[0-9]{3}[-\\.\\s]?[0-9]{4}\\b"
ssn = "\\b\\d{3}-\\d{2}-\\d{4}\\b"
credit_card = "\\b\\d{4}[-\\s]?\\d{4}[-\\s]?\\d{4}[-\\s]?\\d{4}\\b"
ip_address = "\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b"
url = "https?://[^\\s/$.?#].[^\\s]*"
[faker]
locale = "en_US"
seed = 12345
consistency = true
[mapping]
database_path = "mappings.db"
retention_days = 90
[llm]
model = "llama3.2:3b"
endpoint = "http://localhost:11434"
timeout_seconds = 180
prompt_template = "default"
[llm_cache]
enabled = true
database_path = "llm_cache.db"
max_text_length = 2000
配置指南
檢測設置:
confidence_threshold:較低的值(0.6)可以捕獲更多的 PII,但會增加誤報率;較高的值(0.9)更精確,但可能會遺漏一些 PII。
mode:根據你的延遲和準確性要求選擇(見下面的檢測模式)
Faker 設置:
locale:使用 "en_US" 生成美國姓名/地址,"en_GB" 生成英國姓名/地址等,影響生成的虛假數據的真實性。
seed:在部署過程中保持一致,以確保相同的真實數據映射到相同的虛假數據。
consistency:始終設置為 true 以維護數據關係。
映射設置:
retention_days:在數據一致性和存儲之間進行平衡。較短的保留期(30 天)可以減少存儲,但可能會導致重複數據的匿名化不一致。
database_path:在生產環境中使用絕對路徑,以避免數據庫位置問題。
檢測模式
根據你的性能要求和數據複雜度選擇檢測策略:
RegexLlm(默認)
適用於生產環境 - 結合了速度和準確性:
- 階段 1:快速的正則表達式捕獲常見模式(電子郵件、電話、社保號碼)
- 階段 2:大語言模型分析剩餘文本以檢測複雜的 PII
- 適用場景:需要全面檢測且性能合理的情況
- 性能:每個請求約 100 - 500 毫秒,具體取決於文本大小
- 配置:
mode = "regex_llm"
僅使用正則表達式
適用於高吞吐量、對延遲敏感的應用程序:
- 僅使用模式匹配 - 不進行 AI 分析
- 適用場景:你有明確的 PII 模式,並且需要小於 10 毫秒的響應時間
- 權衡:可能會遺漏一些上下文相關的 PII,如 "my account number is ABC123"
- 配置:
mode = "regex"
僅使用大語言模型
適用於複雜、非結構化數據:
- 基於 AI 的檢測可以捕獲細微的 PII 模式
- 適用場景:準確性比速度更重要的情況
- 性能:每個請求約 200 - 1000 毫秒
- 配置:
mode = "llm"
🔧 技術細節
MCP Conceal 的工作流程如下:
sequenceDiagram
participant C as AI 客戶端 (Claude)
participant P as MCP Conceal
participant S as 你的 MCP 服務器
C->>P: 請求
P->>S: 請求
S->>P: 包含 PII 的響應
P->>P: PII 檢測
P->>P: 偽匿名化
P->>P: 一致映射
P->>C: 清理後的響應
它通過偽匿名化而非簡單的信息刪除,保留了 AI 分析所需的語義和數據關係。例如,john.smith@acme.com 會被轉換為 mike.wilson@techcorp.com,在保護敏感信息的同時保持了數據結構。
📄 許可證
本項目採用 MIT 許可證,詳情請參閱 LICENSE 文件。