A powerful Model Context Protocol (MCP) server for Docker operations, enabling seamless container and compose stack management through Claude AI.
- π Container creation and instantiation
 - π¦ Docker Compose stack deployment
 - π Container logs retrieval
 - π Container listing and status monitoring
 
docker-mcp-demo-1.mp4
docker-mcp-demo-2.mp4
To try this in Claude Desktop app, add this to your claude config files:
{
  "mcpServers": {
    "docker-mcp": {
      "command": "uvx",
      "args": [
        "docker-mcp"
      ]
    }
  }
}To install Docker MCP for Claude Desktop automatically via Smithery:
npx @smithery/cli install docker-mcp --client claude- UV (package manager)
 - Python 3.12+
 - Docker Desktop or Docker Engine
 - Claude Desktop
 
Add the server configuration to your Claude Desktop config file:
MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
π» Development Configuration
{
  "mcpServers": {
    "docker-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "<path-to-docker-mcp>",
        "run",
        "docker-mcp"
      ]
    }
  }
}π Production Configuration
{
  "mcpServers": {
    "docker-mcp": {
      "command": "uvx",
      "args": [
        "docker-mcp"
      ]
    }
  }
}- Clone the repository:
 
git clone https://github.com/QuantGeekDev/docker-mcp.git
cd docker-mcp- Create and activate a virtual environment:
 
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate- Install dependencies:
 
uv syncLaunch the MCP Inspector for debugging:
npx @modelcontextprotocol/inspector uv --directory <path-to-docker-mcp> run docker-mcpThe Inspector will provide a URL to access the debugging interface.
The server provides the following tools:
Creates a standalone Docker container
{
    "image": "image-name",
    "name": "container-name",
    "ports": {"80": "80"},
    "environment": {"ENV_VAR": "value"}
}Deploys a Docker Compose stack
{
    "project_name": "example-stack",
    "compose_yaml": "version: '3.8'\nservices:\n  service1:\n    image: image1:latest\n    ports:\n      - '8080:80'"
}Retrieves logs from a specific container
{
    "container_name": "my-container"
}Lists all Docker containers
{}- No built-in environment variable support for containers
 - No volume management
 - No network management
 - No container health checks
 - No container restart policies
 - No container resource limits
 
- Fork the repository from docker-mcp
 - Create your feature branch
 - Commit your changes
 - Push to the branch
 - Open a Pull Request
 
This project is licensed under the MIT License - see the LICENSE file for details.
- Alex Andru - Initial work | Core contributor - @QuantGeekDev
 - Ali Sadykov - Initial work | Core contributor - @md-archive
 
Made with β€οΈ