MCP客户端沙盒监控工具

MCP客户端沙盒环境用于监控MCP服务器行为并通过拦截所有请求来检测恶意服务器。

  • by niclimcy
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 niclimcy/mcp-client-sandbox

使用说明

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 <test_name_1> [<test_name_2> ...]

示例:存储库包含一个名为 chain_attack_test。它需要获取git子模块并构建两个基于Node.js的示例MCP服务器。按照以下步骤在本地运行它。

  1. 获取并初始化子模块:
# from the repo root
git submodule update --init --recursive
  1. 构建测试使用的恶意MCP服务器:
cd examples/malicious_git_chain_attack
npm ci
npm run build
cd -
  1. 构建测试使用的易受攻击的MCP服务器:
cd examples/vulnerable_git_mcp_server
npm ci
npm run build
cd -
  1. 创建一个 .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
  1. 运行示例测试 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