ChatGPT MCP Server
by Toowiredd
Verified
# ChatGPT MCP Server
[](https://smithery.ai/server/@Toowiredd/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](https://smithery.ai/server/@Toowiredd/chatgpt-mcp-server):
```bash
npx -y @smithery/cli install @Toowiredd/chatgpt-mcp-server --client claude
```
### Manual Installation
1. Clone the repository
```bash
git clone https://github.com/toowiredd/chatgpt-mcp-server.git
cd chatgpt-mcp-server
```
2. Install dependencies
```bash
npm install
```
3. Create environment file
```bash
cp env.example .env
# Edit .env with your configuration
```
4. Build the project
```bash
npm run build
```
## Running with Docker
1. Build the container
```bash
npm run docker:build
```
2. Run the container
```bash
npm run docker:run
```
Or manually:
```bash
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
1. The server initiates graceful shutdown on process signals
2. New connections are rejected
3. Active requests are allowed to complete (with timeout)
4. Keep-alive connections are closed
5. Server ports are properly released
6. 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