使用说明
项目简介
ChatGPT MCP Server 是一个 Model Context Protocol (MCP) 服务器实现,它将 Docker 容器管理功能通过标准化的 MCP 协议暴露给 LLM 客户端。借助此服务器,你可以使用支持 MCP 协议的 LLM 应用,通过自然语言指令来管理 Docker 容器,例如列出容器、创建新容器、停止或启动容器、删除容器以及查看容器日志。
主要功能点
- Docker 容器管理:支持对 Docker 容器进行全面的生命周期管理,包括列表、创建、启动、停止、删除和查看日志等操作。
- 基于 MCP 协议:完全遵循 Model Context Protocol 协议,确保与各种 MCP 客户端的兼容性和互操作性。
- 工具化能力:通过 MCP 的 Tool 机制,将 Docker 管理功能以工具的形式提供给 LLM,方便 LLM 进行调用和集成。
- 多种安装方式:支持通过 Smithery 自动安装和手动安装,同时也提供 Docker 镜像部署方式,方便用户快速部署和使用。
- 安全与稳定:具备速率限制和 API 密钥认证机制,保障服务器安全;同时实现了优雅关机、连接管理和错误处理,提升服务器的稳定性。
安装步骤
1. 手动安装 (推荐)
-
克隆仓库:
git clone https://github.com/toowiredd/chatgpt-mcp-server.git cd chatgpt-mcp-server -
安装依赖:
npm install -
配置环境变量: 复制 '.env.example' 文件为 '.env',并根据需要编辑 '.env' 文件,务必配置 'API_KEY' 环境变量,用于 HTTP API 的鉴权。 其他环境变量如 'HTTP_PORT', 'RATE_LIMIT_REQUESTS', 'RATE_LIMIT_WINDOW' 可以根据需要配置。
cp env.example .env # 编辑 .env 文件 -
构建项目:
npm run build
2. Docker 部署
-
构建 Docker 镜像:
npm run docker:build -
运行 Docker 容器:
npm run docker:run或者手动运行:
docker run -d \ -p 3001:3001 \ --env-file .env \ -v /var/run/docker.sock:/var/run/docker.sock \ chatgpt-mcp-server注意: Docker 部署方式同样需要配置 '.env' 文件,并将 Docker Socket 挂载到容器内部 ('-v /var/run/docker.sock:/var/run/docker.sock'),以便容器内的服务能够操作宿主机的 Docker。
服务器配置 (MCP 客户端)
MCP 客户端需要配置以下 JSON 信息才能连接到 ChatGPT MCP Server。
{ "serverName": "ChatGPT MCP Server", "command": "node", "args": ["dist/index.js"], "description": "Docker 容器管理 MCP 服务器" }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。
- 'command': 启动 MCP 服务器的命令。由于该服务器是 Node.js 应用,所以这里使用 'node' 命令。
- 'args': 启动命令的参数。这里指向编译后的服务器入口文件 'dist/index.js'。
- 'description': 服务器描述,简要说明服务器的功能。
请注意: MCP 客户端需要能够执行 'node dist/index.js' 命令来启动 MCP 服务器进程。 确保 MCP 客户端的运行环境已安装 Node.js,并且可以访问到 'dist/index.js' 文件(根据实际部署路径调整)。
基本使用方法
-
启动 MCP 服务器: 根据选择的安装方式启动 ChatGPT MCP Server。
-
配置 MCP 客户端: 在支持 MCP 协议的 LLM 客户端中,按照上述 "服务器配置 (MCP 客户端)" 的 JSON 信息添加并配置该 MCP 服务器。
-
使用自然语言指令: 在 LLM 客户端中,可以使用自然语言指令来指示 LLM 调用 ChatGPT MCP Server 提供的 Docker 管理工具。例如:
- "列出所有正在运行的 Docker 容器"
- "创建一个名为 my-nginx,镜像为 nginx:latest 的容器"
- "停止容器 my-nginx"
- "查看容器 my-nginx 的日志"
LLM 客户端会将这些自然语言指令转换为对 MCP 服务器工具的调用,从而实现 Docker 容器管理。
HTTP API 说明:
除了 MCP 协议,该服务器还提供 HTTP API (例如 '/api/containers') 用于 Docker 容器管理,但 HTTP API 主要用于演示或非 MCP 客户端的场景。 推荐使用 MCP 协议与该服务器进行交互,以获得最佳的 LLM 集成体验。 HTTP API 的使用需要提供在 '.env' 文件中配置的 'API_KEY' 作为请求头 'X-API-Key' 的值。
信息
分类
开发者工具