MCP服务器重置
Python MCP服务器,用于编辑、分析和取消编辑文本中的敏感数据,使用 微软Presidio.生成可逆索引占位符,如 [EMAIL_ADDRESS_1], [PERSON_2].
先决条件
设置
# Clone the repository
git clone
cd mcp-server-redaction
# Create virtual environment and install dependencies
uv venv
uv sync
# Install the spaCy language model
uv pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_lg-3.8.0/en_core_web_lg-3.8.0-py3-none-any.whl运行服务器
与MCP检查员(开发)一起
uv run mcp dev run_dev.py这将在浏览器中打开MCP检查器,您可以在其中交互式测试所有工具。这 run_dev.py 需要包装器,因为 mcp dev 直接加载文件(而不是作为包)。
作为stdio服务器
uv run mcp-server-redaction克劳德桌面/克劳德代码集成
claude mcp add redaction -- uv --directory /absolute/path/to/mcp-server-redaction run mcp-server-redaction这适用于Claude Desktop和Claude Code。替换 /absolute/path/to/mcp-server-redaction 与这个项目的实际路径。
工具
redact
从文本中编辑敏感数据,用索引占位符替换实体。
{"text": "Contact john@example.com", "entity_types": ["EMAIL_ADDRESS"]}返回编辑后的文本,a session_id 用于以后的未编辑和发现的实体计数。
unredact
使用以前的会话ID将编辑后的文本还原为原始文本 redact 电话。
{"redacted_text": "Contact [EMAIL_ADDRESS_1]", "session_id": "uuid-from-redact"}analyze
在不修改文本的情况下分析文本中的敏感数据。返回带有部分掩码的检测到的实体。
{"text": "Contact john@example.com"}configure
在运行时添加自定义模式或列出活动实体类型。
{
"custom_patterns": [
{"name": "INTERNAL_ID", "pattern": "ID-\\d{6}", "score": 0.9}
]
}redact_file
修改文件中的敏感数据。使用以下命令写入新文件 _redacted 后缀。
支持的格式: .txt, .csv, .log, .md, .pdf, .xlsx, .docx, .doc
{"file_path": "/path/to/document.pdf", "use_placeholders": true}use_placeholders(默认值true):使用[ENTITY_TYPE_N]占位符(可逆通过unredact_file).use_placeholders: false:对于PDF,应用黑框编辑(不可逆)。.doc文件转换为.docx通过LibreOffice。
unredact_file
使用来自的会话ID将以前编辑的文件还原为原始文件 redact_file.
{"file_path": "/path/to/document_redacted.pdf", "session_id": "uuid-from-redact_file"}仅适用于用以下方式编辑的文件 use_placeholders: true.
支持的实体类型
内置(Presidio): 个人、电子邮件地址、电话号码、信用卡、US_SSN、网址、IP地址等。
秘密: API_KEY(OpenAI、GitHub、GitLab、Stripe)、AWS_ACCESS_KEY、CONNECTION_STRING(PostgreSQL、MySQL、MongoDB)。
财务: 伊班,美国之旅。
医疗: ICD10_代码、医疗记录编号、药物名称。
运行测试
# Install dev dependencies
uv sync --group dev
# Run all tests
uv run pytest tests/ -v