Docker MCP 服务器
强大的模型上下文协议 (MCP) 服务器,在隔离的 Docker 容器中执行代码并将结果返回给 Claude 等语言模型。
特征
隔离代码执行:在与主系统分离的 Docker 容器中运行代码
多语言支持:使用 Docker 镜像以任何语言执行代码
复杂脚本支持:运行简单命令和完整的多行脚本
软件包管理:使用 pip、npm、apt-get 或 apk 安装依赖项
容器管理:轻松创建、列出和清理 Docker 容器
强大的错误处理:优雅的超时管理和回退机制
彩色输出:清晰、彩色编码的控制台反馈
Related MCP server: MCP Development Server
要求
Python 3.9+
Docker 安装并运行
fastmcp 库
安装
克隆此存储库:
git clone https://github.com/yourusername/docker_mcp_server.git cd docker_mcp_server创建虚拟环境:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate安装所需的软件包:
pip install -r requirements.txt
用法
运行 MCP 检查器
要测试和探索服务器的功能:
MCP Inspector 界面将在您的浏览器中打开,网址为http://localhost:5173 。
可用工具
Docker MCP 服务器提供以下工具:
1. 列出容器
列出所有 Docker 容器及其详细信息:
参数:
show_all:(可选)是否显示所有容器(包括已停止的容器)(默认值:True)
2.创建容器
创建并启动具有可选依赖项的 Docker 容器:
参数:
image:要使用的 Docker 镜像(例如“python:3.9-slim”、“node:16”)container_name:容器的唯一名称dependencies:(可选)要安装的软件包的空格分隔列表(例如,“numpy pandas”,“express lodash”)
3.添加依赖项
在现有的 Docker 容器中安装其他软件包:
参数:
container_name:目标容器的名称dependencies:要安装的软件包的空格分隔列表
4.执行代码
在正在运行的 Docker 容器内执行命令:
参数:
container_name:目标容器的名称command:容器内执行的命令
5.执行Python脚本
在正在运行的 Docker 容器内执行多行 Python 脚本:
参数:
container_name:目标容器的名称script_content:完整的 Python 脚本内容script_args:传递给脚本的可选参数
6.清理容器
停止并删除 Docker 容器:
参数:
container_name:要清理的容器的名称
示例
基本工作流程示例
Python数据分析示例
Node.js 示例
包管理器支持
Docker MCP 服务器会自动检测并使用适当的包管理器:
Python 容器:使用
pipNode.js 容器:使用
npmDebian/Ubuntu 容器:使用
apt-getAlpine 容器:使用
apk
对于从图像名称中无法明显看出包管理器的容器,服务器会尝试检测可用的包管理器。
与 Claude 及其他法学硕士课程的整合
此 MCP 服务器可以与 Claude 以及其他支持模型上下文协议 (MCP) 的 LLM 集成。使用fastmcp install命令将其注册到 Claude:
故障排除
端口已在使用中:如果您看到“地址已在使用中”错误,请确保没有其他 MCP Inspector 实例正在运行。
Docker 连接问题:使用
docker --version验证 Docker 是否正在运行。容器超时:服务器包含针对未在预期时间范围内响应的容器的回退机制。
软件包安装失败:检查指定软件包管理器的软件包名称是否正确。
未找到容器:如果 list_containers 没有显示结果,Docker 可能尚未创建任何容器。
安全注意事项
此服务器在 Docker 容器中执行代码,从而与主机系统隔离。但是,请谨慎操作:
在没有采取额外安全措施的情况下,请勿公开此服务器
将主机卷安装到容器中时要小心
考虑容器的资源限制以防止 DoS 攻击
执照
贡献
欢迎贡献代码!欢迎提交 Pull 请求。