Docker MCP 服务是一款强大的模型上下文协议服务器,它可在 Docker 容器中执行代码,并将执行结果返回给 Claude 等语言模型(LLM)。该服务具备隔离的代码执行、多语言支持以及与多种包管理工具集成等多种功能,为用户提供高效、稳定的代码执行环境。
docker --version 命令验证)。git clone https://github.com/your - repository.git
python -m venv venv
source venv/bin/activate # 在 Linux/Mac 上
venv\Scripts\activate # 在 Windows 上
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。privileged 或 nonPrivileged:设置容器的权限模式。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]
# 创建一个 Node.js 容器并安装依赖项
create_container -i node:16 --privileged npm install express axios
# 执行脚本
execute_command [-c CONTAINER_ID] node script.js
服务自动检测并使用适合的包管理工具:
对于无法从镜像名称推断包管理器的情况,系统会尝试检测可用的包管理工具。
通过 fastmcp 库支持与 Claude 等语言模型的集成,实现更高级的功能扩展。
⚠️ 重要提示
- 运行 Docker 命令可能需要管理员权限。
- 请注意容器对 CPU 和内存的占用,避免过度使用系统资源。
- 确保处理所有可能的异常情况,如网络中断或镜像未找到。
欢迎参与项目开发!请参考项目的贡献指南以获取更多信息。