使用说明
基本能力
产品定位
MCP Server: Docker Command Runner 是一个用于在Docker容器内安全执行命令的服务。
核心功能
- 基于STDIO的MCP传输,用于与Claude和其他MCP客户端集成
- 在任何Docker Compose服务容器中执行命令
- 实时捕获stdout/stderr输出
- 安全的容器允许列表配置
- 可配置长时间运行命令的超时
- 针对常见Docker问题的清晰错误消息
- 设计上依赖少且安全
适用场景
- 在Docker环境中自动化执行命令
- 与MCP客户端(如Claude)集成
- 需要安全地在容器内执行命令的场景
工具列表
run_command: 执行指定Docker服务中的命令- 输入参数:
command: 要执行的命令(必需)service: Docker服务名称(可选)
- 返回格式:
- 标准输出(如果有)
- 标准错误(如果有,前缀为[stderr])
- 退出代码
- 输入参数:
使用教程
使用依赖
- 需要安装Node.js和npm
- 需要安装Docker并确保Docker守护进程正在运行
安装教程
通过NPX(推荐)
直接运行MCP服务器而无需克隆:
npx mcp-server-docker
或全局安装:
npm install -g mcp-server-docker
mcp-server-docker
作为Docker服务
将以下内容添加到docker-compose.yml:
services:
mcp-docker:
build: ./mcp-server-docker
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "3001:3000" # 暴露MCP服务器
environment:
- COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}
- DEFAULT_SERVICE=app
- COMPOSE_FILE=docker-compose.yml
- PORT=3000
networks:
- your-network
本地开发
cd mcp-server-docker
npm install
npm run build
调试方式
# 以开发模式运行
npm run dev
# 构建TypeScript
npm run build
# 运行测试
npm test
常见错误:
- "Cannot connect to Docker daemon": 确保Docker正在运行并且socket已挂载
- "Service not found": 检查服务名称是否存在于docker-compose.yml中
- "Command timed out": 命令超过5分钟超时,考虑将其分解为更小的操作