MCP server for managing Docker containers, images, networks, volumes, and registries
0 installs
Trust: 37 — Low
Devtools
Ask AI about io.github.alisaitteke/docker-mcp
Powered by Claude · Grounded in docs
I know everything about io.github.alisaitteke/docker-mcp. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Loading tools...
Reviews
Documentation
Docker MCP Server
Powerful Docker management for AI assistants
A comprehensive Model Context Protocol (MCP) server that empowers AI assistants like Cursor, Claude Desktop, and other MCP-compatible clients to seamlessly manage Docker containers, images, networks, volumes, and registries through natural language interactions.
Why Docker MCP Server?
Zero Configuration - Works out of the box with npx, no installation needed
Safety First - Two-step confirmation for destructive operations
Cross-Platform - Works on Windows, Linux, and macOS with automatic Docker socket detection
Comprehensive - Full Docker API coverage including Compose, registries, and system operations
AI-Native - Designed specifically for AI assistants with clear, structured responses
Features
Container Management
Full lifecycle control: Create, start, stop, restart, kill, and remove containers
Monitoring: Real-time logs, statistics, and container inspection
Advanced operations: Pause/unpause, exec commands, and resource management
Image Management
Registry operations: Pull, push, tag, and remove images
Build support: Build images from Dockerfiles with full configuration
Inspection: Detailed image history, layers, and metadata
Network Management
Network operations: Create, remove, and inspect Docker networks
Container connectivity: Connect/disconnect containers from networks
Network discovery: List and filter networks with advanced options
Volume Management
Volume operations: Create, remove, and inspect volumes
Data persistence: Manage persistent storage for containers
Volume inspection: Detailed volume information and mount points
System Operations
System information: Docker daemon info, version, and capabilities
Resource cleanup: Prune unused images, containers, volumes, and networks
Event monitoring: Real-time Docker event stream
Container Execution
Command execution: Run commands in running containers
Interactive sessions: Create and manage exec instances
Output streaming: Real-time command output and logs
Registry Integration
Docker Hub: Search repositories, list tags, authenticate, pull/push images
GitHub Container Registry (GHCR): Full authentication and image management
Multi-registry support: Seamlessly work with multiple registries
DOCKER_SOCKET_PATH - Path to Docker socket (overrides platform default)
DOCKER_CERT_PATH - Path to Docker certificates directory
DOCKER_TLS_VERIFY - Enable TLS verification (1 or 0)
Platform-specific defaults (automatic detection):
Linux: /var/run/docker.sock
macOS: /var/run/docker.sock (or ~/.docker/run/docker.sock if available)
Windows: //./pipe/docker_engine
Windows Configuration
On Windows, Docker Desktop uses named pipes. The server automatically detects Windows and uses the correct path. You can also explicitly set:
# Using environment variable
set DOCKER_SOCKET_PATH=//./pipe/docker_engine
# Or using DOCKER_HOST
set DOCKER_HOST=npipe:////./pipe/docker_engine
Remote Docker Host
To connect to a remote Docker host:
# Linux/macOS
export DOCKER_HOST=tcp://192.168.1.100:2376
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=/path/to/certs
# Windows
set DOCKER_HOST=tcp://192.168.1.100:2376
set DOCKER_TLS_VERIFY=1
set DOCKER_CERT_PATH=C:\path\to\certs
Available Tools
Container Tools
docker_list_containers - List all containers
docker_create_container - Create a new container
docker_start_container - Start a container
docker_stop_container - Stop a container
docker_restart_container - Restart a container
docker_kill_container - Kill a container
docker_remove_container - Remove a container
docker_inspect_container - Get container details
docker_container_logs - Get container logs
docker_container_stats - Get container statistics
docker_pause_container - Pause a container
docker_unpause_container - Unpause a container
Image Tools
docker_list_images - List all images
docker_pull_image - Pull an image from registry
docker_push_image - Push an image to registry
docker_tag_image - Tag an image
docker_remove_image - Remove an image
docker_inspect_image - Get image details
docker_image_history - Get image history
Network Tools
docker_list_networks - List all networks
docker_create_network - Create a network
docker_remove_network - Remove a network
docker_inspect_network - Get network details
docker_connect_container - Connect container to network
docker_disconnect_container - Disconnect container from network
Volume Tools
docker_list_volumes - List all volumes
docker_create_volume - Create a volume
docker_remove_volume - Remove a volume
docker_inspect_volume - Get volume details
System Tools
docker_system_info - Get Docker system information
This will show an interactive confirmation dialog in the client (if supported). The client will display a form asking for confirmation, and the operation proceeds only if the user accepts.
Note: Elicitation API support depends on the MCP client. If the client doesn't support it, the server automatically falls back to the confirm parameter method.
Note: The server communicates via stdio, so it will wait for JSON-RPC requests. Press Ctrl+C to exit.
Manual Testing Steps
Start the server:
npm run build
npm start
In another terminal, test with curl (if using HTTP transport) or use an MCP client
Verify Docker operations work:
List containers: Use docker_list_containers tool
Check system info: Use docker_system_info tool
Integration Testing
For full integration testing, you'll need an MCP client. The server communicates via stdio (standard input/output), so it's designed to work with MCP-compatible clients like:
Cursor IDE
Claude Desktop
Custom MCP clients
Debugging
Enable verbose logging by checking stderr output. The server writes errors and status messages to stderr:
# Run and capture stderr
node dist/index.js 2> debug.log
Requirements
Node.js 18.0.0 or higher
Docker daemon running and accessible
Supported Platforms:
Linux (x64, ARM64)
macOS (Intel, Apple Silicon)
Windows (x64, ARM64)
For remote Docker: Proper network access and TLS certificates (if using TLS)
Platform-Specific Notes
Linux: Requires Docker daemon with Unix socket at /var/run/docker.sock
macOS: Works with Docker Desktop. Automatically detects socket location.
Windows: Works with Docker Desktop. Uses named pipe //./pipe/docker_engine
Quick Start (Local Development)
# Clone and setup
git clone <repository-url>
cd docker-mcp
npm install
# Build
npm run build
# Test
./test-server.sh
# Run
npm start
# or for development
npm run dev
License
MIT
Testing with MCP Clients
Testing with Cursor (Local Development)
If you're developing locally and want to test with Cursor:
Build the project:
npm run build
Add to Cursor MCP configuration (usually in .cursor/mcp.json or similar):
You can test the server using MCP Inspector or any MCP client:
# Build first
npm run build
# The server communicates via stdio, so you can pipe commands to it
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.