MCP客户端沙盒
沙盒环境,用于监控MCP服务器行为,并通过拦截MCP客户端中的所有请求来检测恶意服务器。
安装
此项目使用 uv 作为包管理器。
uv sync用法
交互模式
1.配置MCP服务器
创建 servers.json 从 servers.example.json.格式中的环境变量 ${ENV_VAR} 将替换为当前环境中的值。
2.设置环境变量
创建 .env 从 .env.example.为您的人工智能提供商和中引用的任何环境变量定义API密钥 servers.json.
3.启动监控服务
uv run main.py测试模式
使用MCP客户端运行测试 --test 旗帜。您可以传递一个或多个测试名称(以空格分隔)。测试文件位于 tests/ 目录,并按名称引用(加载器附加 .json).
快速使用:
uv run src/main.py --test [ ...]示例:存储库包含一个名为 chain_attack_test。它需要获取git子模块并构建两个基于Node.js的示例MCP服务器。按照以下步骤在本地运行它。
- 获取并初始化子模块:
# from the repo root
git submodule update --init --recursive- 构建测试使用的恶意MCP服务器:
cd examples/malicious_git_chain_attack
npm ci
npm run build
cd -- 构建测试使用的易受攻击的MCP服务器:
cd examples/vulnerable_git_mcp_server
npm ci
npm run build
cd -- 创建一个
.env在repo根目录中(您可以从以下位置复制.env.example)并设置所需的环境变量。示例.env条目:
# API key for provider
GOOGLE_API_KEY=AIza****
# Absolute path to andbox environment used by this test
SANDBOX_PATH=/absolute/path/to/mcp-client-monitoring/sandbox- 运行示例测试
chain_attack_test:
uv run src/main.py --test chain_attack_test运行多个测试:
uv run src/main.py --test chain_attack_test another_test_name故障排除和提示
- 如果节点构建失败,请运行
npm ci然后npm run build在失败示例文件夹中,检查构建输出。 - 如果您收到有关缺少子模块或缺少示例服务器文件的错误,请重新运行:
git submodule update --init --recursive查看日志
打印监控会话期间收集的所有日志:
uv run src/view_logs.py