Docker_mcp

Docker_mcp

🚀 Docker MCP 服务

Docker MCP 服务是一款强大的模型上下文协议服务器,它可在 Docker 容器中执行代码,并将执行结果返回给 Claude 等语言模型(LLM)。该服务具备隔离的代码执行、多语言支持以及与多种包管理工具集成等多种功能,为用户提供高效、稳定的代码执行环境。

✨ 主要特性

  • 隔离的代码执行:借助 Docker 容器,保障代码在独立环境中运行。
  • 多语言支持:支持 Python、Node.js 等多种编程语言。
  • 复杂脚本支持:能够处理复杂的脚本和任务。
  • 包管理:内置对 pip、npm、apt - get 和 apk 的支持,可自动检测并使用合适的包管理工具。
  • 容器管理:提供创建、监控和清理 Docker 容器的功能。
  • 健壮的错误处理:具备超时检测和恢复机制,确保任务可靠执行。
  • 彩色输出:通过终端颜色编码提升用户体验。

📦 安装指南

安装需求

  • Python 版本要求:必须安装 Python 3.6 或更高版本。
  • Docker 安装:请确保 Docker 已正确安装并运行(可通过 docker --version 命令验证)。
  • fastmcp 库:需要安装 fastmcp 库以支持与 LLM 的集成。

安装步骤

  1. 克隆代码仓库:
    git clone https://github.com/your - repository.git
    
  2. 创建虚拟环境并激活:
    python -m venv venv
    source venv/bin/activate  # 在 Linux/Mac 上
    venv\Scripts\activate     # 在 Windows 上
    
  3. 安装依赖项:
    pip install -r requirements.txt
    

💻 使用示例

运行服务器

启动 MCP 服务:

python src/docker_mcp.py

访问 http://localhost:8090 打开 MCP 绑定的控制台。

工具集

列出容器

查看所有运行中的 Docker 容器:

list_containers [--all]
  • --all:显示所有容器,包括已停止的容器。

创建新容器

创建并启动一个新的 Docker 容器:

create_container [-i IMAGE] [-- privileged|nonPrivileged] [COMMAND]
  • IMAGE:指定镜像,默认为 python:3.8 - slim
  • privilegednonPrivileged:设置容器的权限模式。
  • COMMAND:指定要执行的命令。

执行命令

在现有容器中执行命令:

execute_command [-c CONTAINER_ID] [-t COMMAND]
  • CONTAINER_ID:指定目标容器的 ID。
  • COMMAND:要执行的具体命令。

删除容器

删除指定的 Docker 容器:

remove_container [-c CONTAINER_ID] [--volumes]
  • CONTAINER_ID:指定要删除的容器 ID。
  • --volumes:同时删除与容器关联的卷。

基本工作流程

# 列出所有容器
list_containers
# 创建一个 Python 容器并执行命令
create_container -i python:3.8 - slim -c "echo 'Hello, Docker!'" --nonPrivileged
# 执行完成后,删除容器
remove_container [-c CONTAINER_ID]

Python 数据分析示例

# 创建一个 Node.js 容器并安装依赖项
create_container -i node:16 --privileged npm install express axios
# 执行脚本
execute_command [-c CONTAINER_ID] node script.js

📚 详细文档

包管理器支持

服务自动检测并使用适合的包管理工具:

  • Python:使用 pip。
  • Node.js:使用 npm。
  • Debian/Ubuntu:使用 apt - get。
  • Alpine:使用 apk。

对于无法从镜像名称推断包管理器的情况,系统会尝试检测可用的包管理工具。

与 LLM 的集成

通过 fastmcp 库支持与 Claude 等语言模型的集成,实现更高级的功能扩展。

⚠️ 注意事项

⚠️ 重要提示

  • 运行 Docker 命令可能需要管理员权限。
  • 请注意容器对 CPU 和内存的占用,避免过度使用系统资源。
  • 确保处理所有可能的异常情况,如网络中断或镜像未找到。

🤝 贡献指南

欢迎参与项目开发!请参考项目的贡献指南以获取更多信息。

  • 0 关注
  • 0 收藏,22 浏览
  • system 提出于 2025-10-01 21:24

相似服务问题

相关AI产品