ChatGPT MCP Server

A Model Context Protocol (MCP) server that provides Docker management capabilities through a custom GPT interface.
Features
- Docker container management through natural language
 
- Built on the Model Context Protocol (MCP)
 
- TypeScript implementation
 
- Containerized deployment
 
- Robust error handling and graceful shutdown
 
- Resource management and port handling
 
- Rate limiting and API key authentication
 
Setup
Installing via Smithery
To install ChatGPT MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @Toowiredd/chatgpt-mcp-server --client claude
Manual Installation
- Clone the repository
 
git clone https://github.com/toowiredd/chatgpt-mcp-server.git
cd chatgpt-mcp-server
- Install dependencies
 
npm install
- Create environment file
 
cp env.example .env
# Edit .env with your configuration
- Build the project
 
npm run build
Running with Docker
- Build the container
 
npm run docker:build
- Run the container
 
npm run docker:run
Or manually:
docker run -d \
  -p 3001:3001 \
  --env-file .env \
  -v /var/run/docker.sock:/var/run/docker.sock \
  chatgpt-mcp-server
Development
npm run build - Build the TypeScript code 
npm run watch - Watch for changes and rebuild 
npm run inspector - Run the MCP inspector tool 
Environment Variables
API_KEY - API authentication key 
HTTP_PORT - Server port (default: 3001) 
RATE_LIMIT_REQUESTS - Maximum requests per window 
RATE_LIMIT_WINDOW - Window size in milliseconds 
Resource Management
The server implements robust resource management:
- Graceful shutdown on process signals (SIGINT, SIGTERM, SIGQUIT)
 
- Connection tracking and management
 
- Request timeout handling
 
- Port conflict detection
 
- Keep-alive connection management
 
- Active request tracking and graceful completion
 
Shutdown Process
- The server initiates graceful shutdown on process signals
 
- New connections are rejected
 
- Active requests are allowed to complete (with timeout)
 
- Keep-alive connections are closed
 
- Server ports are properly released
 
- Resources are properly released
 
Error Handling
- Port conflicts are detected and reported
 
- Unhandled rejections and exceptions are caught
 
- Network errors are properly handled
 
- Resource leaks are prevented through proper handling
 
- Timeouts ensure the server doesn't hang during shutdown
 
License
MIT