项目简介

Container-MCP 是一个基于 Model Context Protocol (MCP) 的后端服务器实现,旨在为大型语言模型(LLM)提供安全可靠的工具执行环境。它利用容器化技术和多层安全机制,允许 LLM 安全地执行代码、访问文件和进行网络操作,扩展 LLM 的能力边界。

主要功能点

  • 多层安全防护:采用容器隔离、AppArmor 策略、Firejail 沙箱等多重技术,确保工具执行环境的安全性,防止恶意代码影响宿主系统。
  • MCP 协议实现:遵循 MCP 协议标准,支持工具的发现和执行,方便 LLM 客户端集成和调用。
  • 领域管理器:内置 Bash、Python、文件和 Web 等多种管理器,分别处理不同类型的工具执行请求,满足多样化的 LLM 应用场景。
  • 灵活配置:通过环境变量进行服务器和各个管理器功能的配置,易于定制和扩展。
  • 丰富的工具集:预置了系统操作(命令执行、Python 代码执行、环境变量获取)、文件操作(读写、列表、删除、移动)和 Web 操作(搜索、抓取、浏览)等常用工具。

安装步骤

  1. 环境准备:确保您的 Linux 系统已安装 Podman 或 Docker、Python 3.12+、Firejail 和 AppArmor 等依赖组件。
  2. 克隆仓库
    git clone https://github.com/54rt1n/container-mcp.git
    cd container-mcp
  3. 快速启动 (All-in-One):执行以下脚本一键完成初始化、构建容器、环境设置和运行容器:
    chmod +x bin/00-all-in-one.sh
    ./bin/00-all-in-one.sh
  4. 分步安装:您也可以参考 'README.md' 中的步骤,分别执行 'bin' 目录下的初始化、构建容器、环境设置和运行容器等脚本。

服务器配置

Container-MCP 服务器通过环境变量进行配置,您可以在 'config/custom.env' 文件中自定义配置。

主要配置项包括

  • MCP 服务器配置
    • 'MCP_HOST': 服务器监听地址,默认为 '127.0.0.1'。
    • 'MCP_PORT': 服务器监听端口,默认为 '8000'。
    • 'DEBUG': 是否开启 Debug 模式,默认为 'false'。
    • 'LOG_LEVEL': 日志级别,默认为 'INFO',可选 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'。
  • Bash 管理器配置
    • 'BASH_ALLOWED_COMMANDS': 允许执行的 Bash 命令列表,逗号分隔,默认为空,请根据实际需求配置安全命令。
    • 'BASH_TIMEOUT_DEFAULT': Bash 命令执行默认超时时间,单位秒,默认为 '30'。
    • 'BASH_TIMEOUT_MAX': Bash 命令执行最大超时时间,单位秒,默认为 '120'。
  • Python 管理器配置
    • 'PYTHON_MEMORY_LIMIT': Python 代码执行内存限制,单位 MB,默认为 '256'。
    • 'PYTHON_TIMEOUT_DEFAULT': Python 代码执行默认超时时间,单位秒,默认为 '30'。
    • 'PYTHON_TIMEOUT_MAX': Python 代码执行最大超时时间,单位秒,默认为 '120'。
  • 文件管理器配置
    • 'FILE_MAX_SIZE_MB': 允许操作的最大文件大小,单位 MB,默认为 '10'。
    • 'FILE_ALLOWED_EXTENSIONS': 允许操作的文件扩展名列表,逗号分隔,默认为 'txt,md,csv,json,py'。
  • Web 管理器配置
    • 'WEB_TIMEOUT_DEFAULT': Web 操作默认超时时间,单位秒,默认为 '30'。
    • 'WEB_ALLOWED_DOMAINS': 允许访问的域名列表,逗号分隔,'' 表示允许所有域名,默认为 ''。

配置示例 ('config/custom.env')

MCP_PORT=9000
DEBUG=true
BASH_ALLOWED_COMMANDS=ls,cat,echo,pwd
PYTHON_MEMORY_LIMIT=512
FILE_ALLOWED_EXTENSIONS=txt,md
WEB_ALLOWED_DOMAINS=example.com,google.com

启动服务器

服务器启动命令取决于您选择的安装方式。如果您使用 'bin/00-all-in-one.sh' 或 'bin/04-run-container.sh' 脚本,服务器容器将自动在后台运行。

MCP 客户端连接配置

MCP 客户端需要配置服务器的地址才能建立连接。默认情况下,Container-MCP 服务器运行在 'http://localhost:8000'。 您需要根据实际部署情况,将客户端连接地址指向您的 Container-MCP 服务器地址和端口。

基本使用方法

  1. 使用 MCP 客户端连接服务器:例如,使用 'README.md' 中提供的 Python 客户端示例连接到 'http://localhost:8000'。
  2. 发现可用工具:调用客户端的 'get_tools()' 方法,获取服务器提供的工具列表。
  3. 执行工具:使用客户端的 'execute_tool()' 方法,指定工具名称和参数,调用服务器上的工具执行,例如执行 'system_run_python' 工具运行 Python 代码。
  4. 处理返回结果:解析工具执行返回的 JSON 格式结果,获取工具执行的输出或状态信息。

请参考 'README.md' 和示例代码了解更详细的使用方法和工具参数。

信息

分类

AI与计算