返回 MCP 目录
public公开dns本地运行

container-mcp

Container-MCP是一个基于容器的安全工具执行平台,为大型语言模型提供隔离环境运行代码、命令和网络操作,实现MCP协议的安全实现。

article

README

🚀 容器化任务平台文档

这是一个容器化的任务执行平台(MCP),能为用户打造安全、隔离且可扩展的任务运行环境。平台借助 Docker 容器技术实现任务隔离与资源控制,还通过服务器发送事件(SSE)协议实时更新任务执行状态。

🚀 快速开始

当 MCP 服务启动后,可通过任何 MCP 客户端连接到该服务。默认情况下,服务运行在 http://localhost:8000 或配置文件中指定的地址。

注意: 在配置 MCP 客户端时,必须将目标地址设置为 http://127.0.0.1:<port>/sse(其中 <port> 为默认的 8000 端口或其他配置的端口)。路径 /sse 是用于服务器发送事件通信所必需的。

✨ 主要特性

  • 任务隔离:每个任务都在独立的 Docker 容器中运行,确保任务之间互不影响。
  • 资源限制:支持对 CPU、内存和磁盘空间进行硬性限制,防止资源滥用。
  • 任务监控:提供实时的任务执行状态更新,并允许用户终止异常任务。
  • 多租户支持:通过配置可以实现不同用户的资源隔离和权限控制。

📦 安装指南

快速安装

  1. 克隆项目仓库:
    git clone https://github.com/yourusername/container-mcp.git
    cd container-mcp
    
  2. 下载并安装 Docker:
    • 在 Linux 系统上,使用官方脚本安装:
      curl -fsSL https://get.docker.com | bash -s docker
      
    • 在 Windows 或 macOS 上,访问Docker 官网下载并安装。
  3. 启动并加入 DockerGroupName 组(仅限 Linux):
    sudo groupadd docker
    sudo usermod -aG docker $USER
    newgrp docker
    
  4. 构建项目容器:
    ./bin/02-build-container.sh
    
  5. 配置运行环境:
    ./bin/03-setup-environment.sh
    
  6. 启动 MCP 服务:
    ./bin/04-run-container.sh
    

详细安装步骤

  1. 初始化项目:
    ./bin/01-init.sh
    
  2. 构建容器镜像:
    ./bin/02-build-container.sh
    
  3. 配置运行环境:
    ./bin/03-setup-environment.sh
    
  4. 启动 MCP 服务:
    ./bin/04-run-container.sh
    
  5. 运行测试(可选):
    ./bin/05-run-tests.sh
    

💻 使用示例

基础用法

from mcp.client.sse import sse_client
from mcp import ClientSession
import asyncio

async def main():
    # 连接到MCP服务
    sse_url = "http://127.0.0.1:8000/sse"  # 或其他配置的端口
    
    # 初始化SSE客户端连接
    async with sse_client(sse_url) as client:
        # 创建MCP会话
        session = ClientSession(client)
        
        # 获取任务执行状态更新
        while True:
            update = await session.receive_update()
            print(f"接收到更新:{update}")

asyncio.run(main())

📚 详细文档

配置指南

MCP 支持通过环境变量进行配置,以下是常用配置项:

| 属性 | 详情 | |------|------| | MCP_HOST | MCP 服务监听的主机地址,默认值为 localhost | | MCP_PORT | MCP 服务监听的端口号,默认值为 8000 | | DOCKER_REGISTRY | 默认的容器镜像仓库,默认值为 dockerhub | | MAX_CPU | 每个任务的最大 CPU 核心数,默认值为 2 | | MAX_MEMORY | 每个任务的最大内存使用量,默认值为 4G | | MAX_STORAGE | 每个任务的最大磁盘空间,默认值为 10G | | TASK_ISOLATION | 是否启用任务隔离,默认值为 true |

示例配置

在运行 MCP 服务前,可以通过设置环境变量来调整其行为:

# 启用调试模式并指定镜像仓库
export MCP_DEBUG=true
export DOCKER_REGISTRY=private-registry:8080
./bin/04-run-container.sh

开发指南

环境准备

  1. 安装 Python 3.8 或更高版本:
    • 在 Linux 上使用包管理器安装:
      sudo apt-get install python3 python3-pip
      
    • 在 Windows 和 macOS 上,访问Python 官网下载并安装。
  2. 安装项目依赖:
    pip install -r requirements.txt
    

代码结构

项目的代码主要包含以下几个部分:

  • container_mcp/: 包含容器化任务的核心实现。
  • mcp_client/: 提供与 MCP 服务交互的客户端接口。
  • tasks/: 存放可执行的任务脚本或二进制文件。

开发流程

  1. 克隆项目仓库:
    git clone https://github.com/yourusername/container-mcp.git
    cd container-mcp
    
  2. 安装依赖:
    pip install -r requirements.txt
    
  3. 启动开发服务器:
    python -m mcp.start_development_server
    

📄 许可证

本项目遵循MIT 许可证,具体许可内容请参阅LICENSE.md文件。

作者信息

  • 开发者:Your Name
  • 联系邮箱:your.email@example.com
  • GitHub 仓库Container-MCP

感谢您使用 Container-MCP!如需帮助或反馈问题,请随时联系我们。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端