Shield MCP 防护中间件是一款用于增强 Model Context Protocol (MCP) 服务器安全性和监控能力的工具。无需修改官方 SDK,即可提供保护和监控 MCP 工具调用的功能,遵循 MCP 文档中的最佳实践,并能在不暴露自身的情况下与 MCP 开发交互。
Shield MCP 是用于增强 MCP 服务器安全性和监控能力的中间件。以下是一个简单示例,展示如何使用它来保护 MCP 工具:
from shieldmcp import ShieldMCP
# 初始化ShieldMCP
shield = ShieldMCP()
# 使用ShieldMCP装饰器保护MCP工具
@shield.protect
def sensitive_tool():
# 工具逻辑
pass
# 启动服务
if __name__ == "__main__":
shield.start()
# 克隆仓库
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
from shieldmcp import ShieldMCP
# 初始化ShieldMCP
shield = ShieldMCP()
# 使用ShieldMCP装饰器保护MCP工具
@shield.protect
def sensitive_tool():
# 工具逻辑
pass
# 启动服务
if __name__ == "__main__":
shield.start()
用于保护 MCP 工具的方法或函数,支持配置访问控制和速率限制。
from shieldmcp import ShieldMCP
shield = ShieldMCP(
allowed_users=["user1", "user2"],
rate_limit=10 # 每分钟最多10次调用
)
@shield.protect
def my_tool():
pass
记录所有敏感操作的日志,支持结构化输出。
# 配置审计日志
shield.config_logging(
log_file="audit.log",
log_level=logging.INFO
)
管理 MCP 工具的访问权限,支持基于用户、IP 和时间等多种策略。
# 添加允许用户
shield.add_allowed_user("user1")
shield.add_allowed_user("user2")
# 移除不允许用户
shield.remove_allowed_user("user3")
净化 MCP 工具输出的结果,防止敏感信息泄露。
from shieldmcp.sanitizer import TextSanitizer
sanitizer = TextSanitizer(
patterns=[r"^\d{11}$"], # 匹配电话号码
replacement="PHONE_NUMBER"
)
clean_text = sanitizer.sanitize("你的电话是 12345678901")
防止高频调用攻击,保护 MCP 服务。
# 配置速率限制
shield.config_rate_limit(
rate=10, # 每分钟最多10次
burst=2 # 突发允许2次
)
python
>= 3.8pytest
测试框架# 克隆仓库
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/
本项目采用 MIT 许可证。
属性 | 详情 |
---|---|
模型类型 | 用于增强 Model Context Protocol (MCP) 服务器安全性和监控能力的中间件 |
训练数据 | 无 |
⚠️ 重要提示
请确保你的 Python 版本为 3.8 或更高,以保证本中间件的正常运行。
💡 使用建议
在使用工具访问控制时,定期审核和更新白名单,以确保系统的安全性。同时,对所有文本输出进行净化处理,明确定义需要隐藏的敏感模式。