Mcp Server Conceal

Mcp Server Conceal

🚀 MCP Conceal

MCP Conceal 是一个 MCP 代理,它可以在数据到达 Claude、ChatGPT 或 Gemini 等外部 AI 提供商之前,对个人身份信息(PII)进行伪匿名化处理。该工具通过伪匿名化而非简单的信息删除,保留了 AI 分析所需的语义和数据关系。例如,john.smith@acme.com 会被转换为 mike.wilson@techcorp.com,在保护敏感信息的同时保持了数据结构。

🚀 快速开始

前提条件

安装用于基于大语言模型(LLM)的 PII 检测的 Ollama:

  1. 安装 Ollama:ollama.ai
  2. 拉取模型:ollama pull llama3.2:3b
  3. 验证安装: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 始终映射到相同的虚假数据,便于数据的一致性和可追溯性。
  • 可配置性:提供丰富的配置选项,包括检测阈值、数据生成区域、映射数据库路径等。

📦 安装指南

下载预构建二进制文件

  1. 访问 发布页面

  2. 下载适合你平台的二进制文件: | 平台 | 二进制文件 | |------|------| | 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 |

  3. 赋予执行权限:chmod +x mcp-server-conceal-* (Linux/macOS)

  4. 添加到系统路径:

    • Linux/macOSmv 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\\

使用方法

  1. 运行一次 MCP Conceal 以在提示目录中自动生成 default.md
    mcp-server-conceal --target-command echo --target-args "test" --config mcp-server-conceal.toml
    
  2. 复制模板:cp default.md healthcare.md
  3. 编辑模板以匹配特定领域的 PII 模式
  4. 配置使用自定义模板: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"                # 检测策略:regex, llm, regex_llm
enabled = true
confidence_threshold = 0.8        # 检测置信度阈值 (0.0-1.0)

[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"                  # 用于生成逼真虚假 PII 数据的区域设置
seed = 12345                      # 种子确保重启时匿名化的一致性
consistency = true                # 相同的真实 PII 始终映射到相同的虚假数据

[mapping]
database_path = "mappings.db"     # 存储真实到虚假映射的 SQLite 数据库
retention_days = 90               # N 天后删除旧的映射

[llm]
model = "llama3.2:3b"             # 用于 PII 检测的 Ollama 模型
endpoint = "http://localhost:11434"
timeout_seconds = 180
prompt_template = "default"       # PII 检测提示的模板

[llm_cache]
enabled = true                    # 缓存 LLM 检测结果以提高性能
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 文件。

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-30 09:57

相似服务问题