docker-mcp is an MCP server that lets AI assistants manage Docker resources, Compose projects, and registries. It offers broad Docker operations and requires confirmation for destructive actions.
Key features
01Manage container lifecycles and logs
02Build, inspect, pull, and push images
03Create and connect Docker networks
04Manage volumes and system resources
05Operate Docker Compose services
06Confirm destructive operations
Use cases
01Inspect and troubleshoot container activity
02Build and run a Compose project
03Manage images across supported registries
04Review resources before removal or pruning
MCP support
The server exposes Docker management tools to MCP clients, including operations for containers, images, networks, volumes, Compose, and registries. Destructive operations use confirmation controls.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
mcp.json · Universal config
1
2
3
4
5
6
7
8
9
10
11
{
"mcpServers":{
"alisaitteke-docker":{
"command":"npx",
"args":[
"-y",
"@alisaitteke/docker-mcp"
]
}
}
}
Run commandnpx -y @alisaitteke/docker-mcp
Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Packages
npm@alisaitteke/docker-mcp0.2.4stdio
Tools
No tool list yet
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project README
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.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.