docker-mcp
by: QuantGeekDev
A docker MCP Server (modelcontextprotocol)
πOverview
Purpose: To provide a powerful Model Context Protocol (MCP) server for efficient management of Docker containers and compose stacks utilizing Claude AI.
Overview: docker-mcp streamlines Docker operations by facilitating container creation, stack deployment, and log retrieval, thereby enhancing productivity and simplifying workflow for users operating within Docker environments.
Key Features:
-
Container Creation and Instantiation: Allows users to easily create and configure Docker containers, ensuring a smooth setup for applications.
-
Docker Compose Stack Deployment: Supports the deployment of multi-container applications using Docker Compose, simplifying complex application management.
-
Container Logs Retrieval: Provides functionality to access and analyze logs from containers, aiding in debugging and monitoring processes.
-
Container Listing and Status Monitoring: Enables users to view and track the status of all active Docker containers, ensuring effective resource management.
π³ docker-mcp
A powerful Model Context Protocol (MCP) server for Docker operations, enabling seamless container and compose stack management through Claude AI.
β¨ Features
- π Container creation and instantiation
- π¦ Docker Compose stack deployment
- π Container logs retrieval
- π Container listing and status monitoring
π Quickstart
To try this in Claude Desktop app, add the following to your Claude config files:
{
"mcpServers": {
"docker-mcp": {
"command": "uvx",
"args": [
"docker-mcp"
]
}
}
}
Installing via Smithery
To install Docker MCP for Claude Desktop automatically via Smithery:
npx @smithery/cli install docker-mcp --client claude
Prerequisites
- UV (package manager)
- Python 3.12+
- Docker Desktop or Docker Engine
- Claude Desktop
Installation
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"
]
}
}
}
π οΈ Development
Local Setup
-
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 sync
π Debugging
Launch the MCP Inspector for debugging:
npx @modelcontextprotocol/inspector uv --directory <path-to-docker-mcp> run docker-mcp
π Available Tools
create-container
Creates a standalone Docker container
{
"image": "image-name",
"name": "container-name",
"ports": {"80": "80"},
"environment": {"ENV_VAR": "value"}
}
deploy-compose
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'"
}
get-logs
Retrieves logs from a specific container
{
"container_name": "my-container"
}
list-containers
Lists all Docker containers
{}
π§ Current Limitations
- 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
π€ Contributing
- Fork the repository from docker-mcp
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
π License
This project is licensed under the MIT License.
β¨ Authors
- Alex Andru - Initial work | Core contributor - @QuantGeekDev
- Ali Sadykov - Initial work | Core contributor - @md-archive
Made with β€οΈ