文档脱敏服务器

一个本地化、容器化的MCP服务器,使用本地LLM(通过Ollama)对文档进行脱敏处理,移除或转换PII信息后再发送至公共LLM服务。

  • by yannickgiguere-dfs
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 yannickgiguere-dfs/doc-sanitizer-mcp

使用说明

Doc Sanitizer MCP服务器

一种本地容器化的MCP(模型上下文协议)服务器,在将内容发送到公共LLM服务之前,使用本地LLM(通过Ollama)通过删除或转换PII来对文档进行消毒。

特性

  • 文档支持:Word(.docx)、PDF、Excel(.xlsx/.xls)、CSV、纯文本、电子邮件(.eml)
  • PII检测:姓名、电子邮件、电话号码、公司、地址、财务数据、身份证
  • 灵活的行动:删除、发明合成数据或保留部分信息
  • 配置文件管理:通过CLI创建和管理多个净化配置文件
  • MCP集成:与Claude Desktop、Claude.ai和Claude Code配合使用
  • 隐私第一:所有处理都在本地进行,没有发送到外部服务

快速开始

先决条件

  • Docker和Docker Compose
  • Ollama(通过Docker自动安装)

安装

git clone https://github.com/yourusername/doc-sanitizer-mcp.git
cd doc-sanitizer-mcp
./setup.sh

配置

编辑 .env 要自定义设置,请执行以下操作:

# Change LLM model (no rebuild required)
OLLAMA_MODEL=phi4:14b

# Alternative models:
# OLLAMA_MODEL=qwen2.5:7b    # Faster, less RAM
# OLLAMA_MODEL=llama3.2:3b   # Fastest, minimal RAM

要切换型号,请执行以下操作:

# Pull new model
docker exec doc-sanitizer-ollama ollama pull qwen2.5:7b

# Update .env
sed -i '' 's/OLLAMA_MODEL=.*/OLLAMA_MODEL=qwen2.5:7b/' .env

# Restart
docker compose restart doc-sanitizer

Claude桌面集成

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "doc-sanitizer": {
      "url": "http://localhost:8000/sse"
    }
  }
}

用法

Via Claude(MCP工具)

配置后,您可以询问Claude:

  • “列出可用的净化配置文件”
  • “显示默认配置文件设置”
  • “使用高隐私配置文件对此文档进行消毒”

通过CLI

# List profiles
doc-sanitizer profiles list

# Create a new profile
doc-sanitizer profiles create high_privacy

# Edit profile settings
doc-sanitizer profiles edit high_privacy --set person_name=delete --set company=delete

# Sanitize a document
doc-sanitizer sanitize document.docx --profile high_privacy

配置文件管理

配置文件定义了如何处理每种PII类型:

PII类型 可用操作
person_name 删除、发明、保留_部分
email 删除、保留_部分
phone 删除、发明、保留_部分
company 保持_零件,发明
address 删除、发明
financial 删除、发明
id_numbers 删除、发明
date_of_birth 删除、发明

配置文件在容器重启时保持不变(存储在 ~/.doc-sanitizer/).

文档

许可证

MIT许可证-请参阅 许可证 了解详情。