README
🚀 容器化任务平台文档
这是一个容器化的任务执行平台(MCP),能为用户打造安全、隔离且可扩展的任务运行环境。平台借助 Docker 容器技术实现任务隔离与资源控制,还通过服务器发送事件(SSE)协议实时更新任务执行状态。
🚀 快速开始
当 MCP 服务启动后,可通过任何 MCP 客户端连接到该服务。默认情况下,服务运行在 http://localhost:8000 或配置文件中指定的地址。
注意: 在配置 MCP 客户端时,必须将目标地址设置为 http://127.0.0.1:<port>/sse(其中 <port> 为默认的 8000 端口或其他配置的端口)。路径 /sse 是用于服务器发送事件通信所必需的。
✨ 主要特性
- 任务隔离:每个任务都在独立的 Docker 容器中运行,确保任务之间互不影响。
- 资源限制:支持对 CPU、内存和磁盘空间进行硬性限制,防止资源滥用。
- 任务监控:提供实时的任务执行状态更新,并允许用户终止异常任务。
- 多租户支持:通过配置可以实现不同用户的资源隔离和权限控制。
📦 安装指南
快速安装
- 克隆项目仓库:
git clone https://github.com/yourusername/container-mcp.git cd container-mcp - 下载并安装 Docker:
- 在 Linux 系统上,使用官方脚本安装:
curl -fsSL https://get.docker.com | bash -s docker - 在 Windows 或 macOS 上,访问Docker 官网下载并安装。
- 在 Linux 系统上,使用官方脚本安装:
- 启动并加入 DockerGroupName 组(仅限 Linux):
sudo groupadd docker sudo usermod -aG docker $USER newgrp docker - 构建项目容器:
./bin/02-build-container.sh - 配置运行环境:
./bin/03-setup-environment.sh - 启动 MCP 服务:
./bin/04-run-container.sh
详细安装步骤
- 初始化项目:
./bin/01-init.sh - 构建容器镜像:
./bin/02-build-container.sh - 配置运行环境:
./bin/03-setup-environment.sh - 启动 MCP 服务:
./bin/04-run-container.sh - 运行测试(可选):
./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
开发指南
环境准备
- 安装 Python 3.8 或更高版本:
- 在 Linux 上使用包管理器安装:
sudo apt-get install python3 python3-pip - 在 Windows 和 macOS 上,访问Python 官网下载并安装。
- 在 Linux 上使用包管理器安装:
- 安装项目依赖:
pip install -r requirements.txt
代码结构
项目的代码主要包含以下几个部分:
container_mcp/: 包含容器化任务的核心实现。mcp_client/: 提供与 MCP 服务交互的客户端接口。tasks/: 存放可执行的任务脚本或二进制文件。
开发流程
- 克隆项目仓库:
git clone https://github.com/yourusername/container-mcp.git cd container-mcp - 安装依赖:
pip install -r requirements.txt - 启动开发服务器:
python -m mcp.start_development_server
📄 许可证
本项目遵循MIT 许可证,具体许可内容请参阅LICENSE.md文件。
作者信息
- 开发者:Your Name
- 联系邮箱:your.email@example.com
- GitHub 仓库:Container-MCP
感谢您使用 Container-MCP!如需帮助或反馈问题,请随时联系我们。
Scan to join WeChat group