Shieldmcp

Shieldmcp

🚀 MCP安全护盾

MCP安全护盾是一款中间件,它能够增强Model Context Protocol (MCP) 服务器的安全性与监控能力,且无需修改官方SDK。此工具包提供了保护和监控MCP工具调用的实用工具,遵循MCP文档中提及的最佳实践,可在不暴露自身的情况下与MCP开发进行交互。

🚀 快速开始

要使用Shield MCP,首先需要安装库:

pip install shieldmcp

然后按照以下步骤配置和使用:

  1. 初始化ShieldMCP实例:
from shieldmcp import ShieldMCP

shield = ShieldMCP()
  1. 配置访问控制:
shield.set_allowed_tools(["tool1", "tool2"])
  1. 启用结果清理功能:
shield.enable_output_cleaning(patterns=[r"\b信用卡号\b"], max_length=500)
  1. 使用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 支持。

致谢

  • 0 关注
  • 0 收藏,11 浏览
  • system 提出于 2025-09-30 02:06

相似服务问题