这是一个容器化的任务执行平台(MCP),能为用户打造安全、隔离且可扩展的任务运行环境。平台借助 Docker 容器技术实现任务隔离与资源控制,还通过服务器发送事件(SSE)协议实时更新任务执行状态。
当 MCP 服务启动后,可通过任何 MCP 客户端连接到该服务。默认情况下,服务运行在 http://localhost:8000
或配置文件中指定的地址。
注意: 在配置 MCP 客户端时,必须将目标地址设置为 http://127.0.0.1:
(其中
为默认的 8000 端口或其他配置的端口)。路径 /sse
是用于服务器发送事件通信所必需的。
git clone https://github.com/yourusername/container-mcp.git
cd container-mcp
curl -fsSL https://get.docker.com | bash -s docker
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
./bin/02-build-container.sh
./bin/03-setup-environment.sh
./bin/04-run-container.sh
./bin/01-init.sh
./bin/02-build-container.sh
./bin/03-setup-environment.sh
./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
sudo apt-get install python3 python3-pip
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文件。
感谢您使用 Container-MCP!如需帮助或反馈问题,请随时联系我们。