项目简介

本项目是一个基于Model Context Protocol (MCP) 实现的服务器,旨在为大型语言模型(LLM)的调用提供全面的安全和合规性保障。它作为一个"预处理/后处理防火墙",能够在LLM调用前后对内容进行检测、分类、脱敏、策略执行和输出安全检查,并支持幻觉检测和审计日志记录。

主要功能点

  • 实时数据脱敏: 自动识别并脱敏多云凭据、OAuth/JWT令牌、加密密钥、个人身份信息(PII,含信用卡和SSN验证)以及内部基础设施信息。
  • 合规政策引擎: 基于地理区域、调用方身份等灵活配置策略,支持“阻止”、“脱敏”、“仅限内部”等多种处理动作,确保数据驻留和出口管制合规。
  • 透明代理模式: 无需修改现有LLM应用程序代码,仅需更改API基地址,即可自动为OpenAI、Claude、Gemini等LLM调用提供安全防护。
  • 输出安全检测: 内置超过50种危险命令模式识别,有效防止LLM生成可能导致系统破坏、数据删除或滥用云资源的恶意指令。
  • 幻觉检测: 可选的后处理层,通过4阶段验证流程,分析LLM响应以检测并标记潜在的幻觉和虚假声明。
  • 不可变审计日志: 记录所有操作的详细审计追踪,支持SIEM(如Splunk, Elasticsearch)集成,便于合规审计。
  • 可逆脱敏: 对PII等非机密数据进行可逆脱敏,确保LLM处理后的内容可以安全地恢复到原始形式,而绝密信息则始终保持脱敏状态。

安装步骤

本平台提供自动化安装脚本,可在Linux服务器上快速部署(Ubuntu 20.04+ 或 RHEL 8+)。

  1. 下载安装脚本:
    wget https://raw.githubusercontent.com/sunkencity999/redaction-compliance-MCP/main/install.sh
  2. 赋予执行权限并运行:
    chmod +x install.sh
    sudo ./install.sh

安装脚本将自动安装所有依赖(Python 3.11, Redis, NGINX)、生成加密密钥、配置SIEM集成、设置Nginx反向代理和HTTPS(可选Let's Encrypt)、创建systemd服务以实现开机自启,并安装Python客户端SDK。

服务器配置 (面向MCP客户端)

MCP客户端需要配置与本MCP服务器通信的方式。本服务器提供RESTful API(通过HTTP/HTTPS)和基于Stdio的JSON-RPC适配器两种主要通信方式。

如果您的MCP客户端需要通过启动子进程的方式与MCP服务器建立连接(常见于Agent运行时),请参考以下配置示例(JSON格式):

{
  "server_name": "AI交互内容安全与合规平台",
  "command": "python",
  "args": [
    "path/to/mcp_redaction/stdio_adapter.py"
  ],
  "description": "通过标准输入输出(Stdio)进行JSON-RPC通信的MCP内容安全与合规服务器适配器。",
  "config_notes": "若需配置Stdio适配器调用的底层REST API地址,可通过设置环境变量 MCP_REDACTION_BASE 实现,例如: MCP_REDACTION_BASE=https://your-mcp-server.com"
}

参数说明:

  • 'server_name': 服务器的显示名称。
  • 'command': 用于启动MCP服务器适配器的命令。此处为Python解释器。
  • 'args': 传递给'command'的参数列表。'path/to/mcp_redaction/stdio_adapter.py'应替换为实际的'stdio_adapter.py'文件路径。
  • 'description': 对服务器功能的简要描述。
  • 'config_notes': 额外说明,提示用户如何通过环境变量配置Stdio适配器将请求转发到的REST API服务的地址(默认是 'http://127.0.0.1:8019')。

如果您的MCP客户端直接通过HTTP/HTTPS连接一个已运行的MCP服务器实例,则客户端通常只需要配置服务器的URL和相关的认证信息:

{
  "server_name": "AI交互内容安全与合规平台",
  "server_url": "https://your-mcp-server.com",
  "caller_id": "your-client-application",
  "region": "us",
  "environment": "prod",
  "authentication_details": "(例如:API密钥、Bearer令牌等)",
  "description": "通过HTTP/HTTPS直接连接的MCP内容安全与合规服务器。"
}

参数说明:

  • 'server_url': MCP服务器的HTTP/HTTPS地址。安装脚本默认在 'https://mcp.yourcompany.com'(Nginx配置后)或 'http://127.0.0.1:8019'(直接运行FastAPI)。
  • 'caller_id': 客户端的唯一标识符,用于服务器端的策略匹配和审计。
  • 'region', 'environment': 客户端所在区域和环境,用于策略匹配。
  • 'authentication_details': 根据您的部署和安全要求,提供相应的认证信息。

基本使用方法 (Python SDK)

一旦MCP服务器部署并运行,您可以利用提供的Python SDK在您的LLM应用中轻松集成安全防护。

# 假设您已通过 pip install mcp-redaction-client 安装了SDK

from mcp_client import MCPClient, MCPConfig
import openai # 示例:使用OpenAI API

# 1. 配置MCP客户端
# 您可以从环境变量加载配置,或直接传入参数
mcp_config = MCPConfig.from_env() 
# 例如,在 .env 文件中设置:
# MCP_SERVER_URL=https://mcp.yourcompany.com
# MCP_CALLER=my-llm-app
# MCP_REGION=us
# MCP_ENV=prod

mcp = MCPClient(mcp_config)

# 2. 保护LLM调用
user_input = "我的AWS密钥是AKIAIOSFODNN7EXAMPLE,请帮我调试。"

# 使用方便的 safe_llm_call 方法,它会自动完成:
# - 前置脱敏:将敏感内容(如AWS密钥)替换为占位符发送给LLM
# - LLM调用:调用您指定的LLM函数
# - 后置去脱敏:根据需要恢复非敏感信息(如PII)
response = mcp.safe_llm_call(
    user_input,
    lambda sanitized_text: openai.ChatCompletion.create(
        model="gpt-4",
        messages=[{"role": "user", "content": sanitized_text}]
    ).choices[0].message.content
)

print("经过安全处理的LLM响应:", response)
# 此时,如果LLM响应中包含了之前脱敏的PII,它们会被恢复。
# 但敏感的秘密(如AWS密钥)将仍然保持脱敏状态或作为占位符,确保不泄露。

# 3. 透明代理模式(无需修改LLM调用代码)
# 如果MCP服务器配置为透明代理模式,您只需修改LLM客户端的API基础URL:
# export OPENAI_API_BASE=https://mcp.yourcompany.com/v1
# 然后您的OpenAI调用代码即可保持不变,MCP服务器会在后台自动处理安全防护。
# import openai
# openai.api_base = os.getenv("OPENAI_API_BASE")
# response = openai.ChatCompletion.create(
#     model="gpt-4",
#     messages=[{"role": "user", "content": "我的AWS密钥是AKIA..."}]
# )
# print("通过透明代理获得的LLM响应:", response)

信息

分类

AI与计算