使用说明

项目简介

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' 文件(根据实际部署路径调整)。

基本使用方法

  1. 启动 MCP 服务器: 根据选择的安装方式启动 ChatGPT MCP Server。

  2. 配置 MCP 客户端: 在支持 MCP 协议的 LLM 客户端中,按照上述 "服务器配置 (MCP 客户端)" 的 JSON 信息添加并配置该 MCP 服务器。

  3. 使用自然语言指令: 在 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' 的值。

信息

分类

开发者工具