article
README
🚀 基于Model Context Protocol (MCP) 的 ChatGPT 服务器
本项目是一个基于 Model Context Protocol (MCP) 的服务器,借助自定义 GPT 接口,实现了 Docker 管理功能,为用户提供便捷、高效的容器管理体验。
🚀 快速开始
本服务器可通过自然语言实现 Docker 容器管理,建立在 Model Context Protocol (MCP) 之上,使用 TypeScript 开发,支持容器化部署,具备强大的错误处理和优雅关闭功能,资源管理和端口处理能力出色,还提供速率限制和 API 密钥认证。
✨ 主要特性
- 自然语言管理:通过自然语言实现 Docker 容器管理。
- 先进协议架构:建立在 Model Context Protocol (MCP) 上。
- 技术选型优秀:使用 TypeScript 实现。
- 灵活部署方式:支持容器化部署。
- 稳定运行保障:具备强大的错误处理和优雅关闭功能。
- 资源管理高效:资源管理和端口处理能力出色。
- 安全认证机制:提供速率限制和 API 密钥认证。
📦 安装指南
克隆代码库
git clone https://github.com/toowiredd/chatgpt-mcp-server.git
cd chatgpt-mcp-server
安装依赖项
npm install
创建环境文件
cp env.example .env
# 根据需要编辑 .env 文件
构建项目
npm run build
💻 使用示例
使用 Docker 运行
构建容器镜像
npm run docker:build
启动容器
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
📚 详细文档
开发指南
npm run build:构建 TypeScript 代码。npm run watch:实时监听文件变化并自动重构。npm run inspector:运行 MCP 检查工具。
环境变量配置
| 属性 | 详情 |
|------|------|
| API_KEY | 用于 API 认证的密钥 |
| HTTP_PORT | 服务器监听端口(默认值为 3001) |
| RATE_LIMIT_REQUESTS | 指定时间窗口内的最大请求数量 |
| RATE_LIMIT_WINDOW | 时间窗口长度(单位为毫秒) |
资源管理
资源管理功能
该服务器具备强大的资源管理功能:
- 支持信号处理实现优雅关闭(支持 SIGINT、SIGTERM、SIGQUIT)。
- 新连接请求被拒绝后会终止。
- 允许活动中的请求完成并设置超时限制。
- 保持活跃连接存活状态的管理。
- 跟踪和释放服务器端口资源。
- 确保所有资源正确无误地释放。
关闭流程
- 服务器收到关闭信号后,开始执行优雅关闭逻辑。
- 拒绝新的连接请求。
- 允许现有请求继续处理并设置超时。
- 主动断开保持连接。
- 正确释放占用的端口资源。
- 确保所有资源得到妥善处理。
错误处理机制
- 监测端口冲突并及时报告。
- 捕捉未处理的拒绝和异常情况。
- 处理网络传输中的错误问题。
- 防止资源泄漏,确保正确释放。
- 设置超时时间避免服务器长时间挂起。
微信扫一扫