local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Docker MCP 服务器
强大的模型上下文协议 (MCP) 服务器,在隔离的 Docker 容器中执行代码并将结果返回给 Claude 等语言模型。
特征
- 隔离代码执行:在与主系统分离的 Docker 容器中运行代码
- 多语言支持:使用 Docker 镜像以任何语言执行代码
- 复杂脚本支持:运行简单命令和完整的多行脚本
- 软件包管理:使用 pip、npm、apt-get 或 apk 安装依赖项
- 容器管理:轻松创建、列出和清理 Docker 容器
- 强大的错误处理:优雅的超时管理和回退机制
- 彩色输出:清晰、彩色编码的控制台反馈
要求
- Python 3.9+
- Docker 安装并运行
- fastmcp 库
安装
- 克隆此存储库:Copy
- 创建虚拟环境:Copy
- 安装所需的软件包:Copy
用法
运行 MCP 检查器
要测试和探索服务器的功能:
Copy
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
:要清理的容器的名称
示例
基本工作流程示例
Copy
Python数据分析示例
Copy
Node.js 示例
Copy
包管理器支持
Docker MCP 服务器会自动检测并使用适当的包管理器:
- Python 容器:使用
pip
- Node.js 容器:使用
npm
- Debian/Ubuntu 容器:使用
apt-get
- Alpine 容器:使用
apk
对于从图像名称中无法明显看出包管理器的容器,服务器会尝试检测可用的包管理器。
与 Claude 及其他法学硕士课程的整合
此 MCP 服务器可以与 Claude 以及其他支持模型上下文协议 (MCP) 的 LLM 集成。使用fastmcp install
命令将其注册到 Claude:
Copy
故障排除
- 端口已在使用中:如果您看到“地址已在使用中”错误,请确保没有其他 MCP Inspector 实例正在运行。
- Docker 连接问题:使用
docker --version
验证 Docker 是否正在运行。 - 容器超时:服务器包含针对未在预期时间范围内响应的容器的回退机制。
- 软件包安装失败:检查指定软件包管理器的软件包名称是否正确。
- 未找到容器:如果 list_containers 没有显示结果,Docker 可能尚未创建任何容器。
安全注意事项
此服务器在 Docker 容器中执行代码,从而与主机系统隔离。但是,请谨慎操作:
- 在没有采取额外安全措施的情况下,请勿公开此服务器
- 将主机卷安装到容器中时要小心
- 考虑容器的资源限制以防止 DoS 攻击
执照
贡献
欢迎贡献代码!欢迎提交 Pull 请求。
This server cannot be installed
促进 Docker 容器内的隔离代码执行,实现安全的多语言脚本执行以及通过模型上下文协议与 Claude 等语言模型的集成。
- Features
- Requirements
- Installation
- Usage
- Package Manager Support
- Integrating with Claude and Other LLMs
- Troubleshooting
- Security Considerations
- License
- Contributing