Container-MCP

Container-MCP

site icon
2025.03.25 4
Python安全执行环境沙箱工具开发效率
Container-MCP 是一个基于容器的模型上下文协议(MCP)实现,旨在为大型语言模型提供安全的工具执行环境。它通过多层次的隔离和安全措施,确保在沙箱环境中安全地执行代码、运行命令、访问文件和进行网络操作。
View on GitHub

Overview

基本能力

产品定位

Container-MCP 是一个安全、容器化的工具执行平台,专为大型语言模型设计,提供安全的代码执行、文件操作和网络访问能力。

核心功能

  • 多层次的隔离和安全措施:包括容器隔离(Podman/Docker)、AppArmor 配置文件、Firejail 沙箱、资源限制(CPU、内存、执行时间)等。
  • MCP 协议实现:支持标准化的工具发现和执行、资源管理和异步执行。
  • 领域特定的管理器
  • BashManager:安全的命令执行。
  • PythonManager:沙箱化的 Python 代码执行。
  • FileManager:安全的文件操作。
  • WebManager:安全的网页浏览和抓取。
  • 可配置的环境:通过环境变量进行广泛配置,支持自定义环境和开发/生产模式。

适用场景

  • 安全执行代码:在隔离环境中运行 Python 或 Bash 代码。
  • 文件操作:安全地读写、移动、删除文件。
  • 网络操作:安全的网页搜索、抓取和浏览。
  • 开发与测试:为开发者和测试人员提供安全的沙箱环境。

工具列表

  1. 系统操作
  2. system_run_command:在沙箱中执行 Bash 命令。
  3. system_run_python:在沙箱中执行 Python 代码。
  4. system_env_var:获取环境变量值。
  5. 文件操作
  6. file_read:安全读取文件内容。
  7. file_write:安全写入文件内容。
  8. file_list:安全列出目录内容。
  9. file_delete:安全删除文件。
  10. file_move:安全移动或重命名文件。
  11. 网络操作
  12. web_search:使用搜索引擎查找信息。
  13. web_scrape:抓取特定 URL 的内容。
  14. web_browse:使用 Playwright 交互式浏览网页。

常见问题解答

  • 如何配置环境变量?:通过 volume/config/custom.env 文件设置环境变量。
  • 如何运行测试?:使用 pytest 命令运行单元测试或集成测试。
  • 如何启动开发服务器?:运行 python -m cmcp.main --test-mode

使用教程

使用依赖

  1. Linux 系统:需安装 Podman 或 Docker。
  2. Python 3.12+:确保系统已安装 Python 3.12 或更高版本。
  3. Firejail:安装命令: bash apt install firejail # Debian/Ubuntu dnf install firejail # Fedora/CentOS
  4. AppArmor:安装命令: bash apt install apparmor apparmor-utils # Debian/Ubuntu dnf install apparmor apparmor-utils # Fedora/CentOS

安装教程

  1. 克隆仓库bash git clone https://github.com/container-mcp/container-mcp.git cd container-mcp
  2. 运行一键安装脚本bash chmod +x bin/00-all-in-one.sh ./bin/00-all-in-one.sh
  3. 或分步安装bash ./bin/01-init.sh ./bin/02-build-container.sh ./bin/03-setup-environment.sh ./bin/04-run-container.sh ./bin/05-run-tests.sh # 可选

调试方式

  1. 启动容器bash ./bin/04-run-container.sh
  2. 连接 MCP 客户端
  3. 使用 MCP 客户端连接到 http://127.0.0.1:8000/sse(默认端口为 8000)。
  4. 执行工具
  5. 使用 system_run_commandsystem_run_python 测试沙箱环境。
  6. 使用 file_readfile_write 测试文件操作。
  7. 使用 web_searchweb_scrape 测试网络操作。

许可证

该项目遵循 Apache-2.0 开源许可条款,请参阅 Apache-2.0 了解完整条款。