article
README
🚀 MCP安全护盾
MCP安全护盾是一款中间件,它能够增强Model Context Protocol (MCP) 服务器的安全性与监控能力,且无需修改官方SDK。此工具包提供了保护和监控MCP工具调用的实用工具,遵循MCP文档中提及的最佳实践,可在不暴露自身的情况下与MCP开发进行交互。
🚀 快速开始
要使用Shield MCP,首先需要安装库:
pip install shieldmcp
然后按照以下步骤配置和使用:
- 初始化ShieldMCP实例:
from shieldmcp import ShieldMCP
shield = ShieldMCP()
- 配置访问控制:
shield.set_allowed_tools(["tool1", "tool2"])
- 启用结果清理功能:
shield.enable_output_cleaning(patterns=[r"\b信用卡号\b"], max_length=500)
- 使用ShieldMCP处理请求:
response = shield.process_request(request_data)
✨ 主要特性
- 工具访问控制:基于白名单的MCP工具访问控制
- 结果清理:可配置的结果输出清理功能
- 结构化日志记录:使用structlog的全面审计日志记录
- 速率限制:令牌桶算法实现的速率限制
- 错误处理:标准化错误处理和格式化
- MCP Inspector兼容:与MCP Inspector工具无缝协作
📦 安装指南
from shieldmcp import ShieldMCP
📚 详细文档
需求
系统需求
- Python 3.8 或更高版本
- pip(Python 包安装程序)
- virtualenv(开发推荐)
组件
装饰器 (decorators.py)
提供用于保护MCP端点的装饰器:
from shieldmcp.decorators import shield_mcp_endpoint
@shield_mcp_endpoint
def protected_endpoint(data):
# 处理请求
return response
日志记录 (logging.py)
集成结构化日志记录到你的应用中:
from shieldmcp.logging import setup_logging
setup_logging("info")
logger.info("处理开始")
最佳实践
工具访问控制
- 始终定义允许工具的白名单。
- 定期审查和更新白名单。
结果清理
- 清理所有文本输出。
- 定义敏感数据模式。
- 设置合理的长度限制。
日志记录
- 在可用时包含用户和会话ID。
- 记录成功和失败的操作。
- 使用结构化日志以备更好地分析。
速率限制
- 根据工具复杂性设置适当的限制。
- 考虑突发大小以提升用户体验。
- 监控速率限制触发情况。
开发
设置开发环境
# 克隆仓库
git clone https://github.com/shieldmcp/shieldmcp.git
cd shieldmcp
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # 或 `venv\Scripts\activate` 在 Windows 上
# 安装开发依赖项
pip install -r requirements.txt
运行测试
pytest tests/
路线图
计划功能
- 支持Clerk MCP 和 Github MCP。
- 扩展文档。
- TypeScript 支持。
致谢
- Model Context Protocol 提供协议规范。
- structlog 用于结构化日志记录。
微信扫一扫