项目简介
本项目是一个基于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+)。
- 下载安装脚本:
wget https://raw.githubusercontent.com/sunkencity999/redaction-compliance-MCP/main/install.sh - 赋予执行权限并运行:
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与计算