About
Run and manage docker containers, docker compose, and logs
Read full README
Details
Author QuantGeekDev
GitHub stars 490 Downloads 632 Categories Developer Tools, Community, Other, Cloud Service
Jump to
Features Setup Config README Reviews
- Container creation and instantiation (create-container)
- Docker Compose stack deployment (deploy-compose)
- Container logs retrieval (get-logs)
- Container listing and status monitoring (list-containers)
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"docker": {
"docker-mcp": {
"command": "uvx",
"args": [
"docker-mcp"
]
}
}
}
}
McpServers
{
"docker-mcp": {
"command": "uvx",
"args": [
"docker-mcp"
]
}
}
# 🐳 docker-mcp
[](https://www.python.org/downloads/release/python-3120/)
[](https://opensource.org/licenses/MIT)
[](https://github.com/psf/black)
[](https://smithery.ai/protocol/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
### 🎬 Demos
#### Deploying a Docker Compose Stack
https://github.com/user-attachments/assets/b5f6e40a-542b-4a39-ba12-7fdf803ee278
#### Analyzing Container Logs
https://github.com/user-attachments/assets/da386eea-2fab-4835-82ae-896de955d934
## 🚀 Quickstart
To try this in Claude Desktop app, add this to your claude config files:
```json
{
"mcpServers": {
"docker-mcp": {
"command": "uvx",
"args": [
"docker-mcp"
]
}
}
}
```
### Installing via Smithery
To install Docker MCP for Claude Desktop automatically via [Smithery](https://smithery.ai/protocol/docker-mcp):
```bash
npx @smithery/cli install docker-mcp --client claude
```
### Prerequisites
- UV (package manager)
- Python 3.12+
- Docker Desktop or Docker Engine
- Claude Desktop
### Installation
#### Claude Desktop Configuration
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`
<details>
<summary>💻 Development Configuration</summary>
```json
{
"mcpServers": {
"docker-mcp": {
"command": "uv",
"args": [
"--directory",
"<path-to-docker-mcp>",
"run",
"docker-mcp"
]
}
}
}
```
</details>
<details>
<summary>🚀 Production Configuration</summary>
```json
{
"mcpServers": {
"docker-mcp": {
"command": "uvx",
"args": [
"docker-mcp"
]
}
}
}
```
</details>
## 🛠️ Development
### Local Setup
1. Clone the repository:
```bash
git clone https://github.com/QuantGeekDev/docker-mcp.git
cd docker-mcp
```
2. Create and activate a virtual environment:
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
3. Install dependencies:
```bash
uv sync
```
### 🔍 Debugging
Launch the MCP Inspector for debugging:
```bash
npx @modelcontextprotocol/inspector uv --directory <path-to-docker-mcp> run docker-mcp
```
The Inspector will provide a URL to access the debugging interface.
## 📝 Available Tools
The server provides the following tools:
### create-container
Creates a standalone Docker container
```json
{
"image": "image-name",
"name": "container-name",
"ports": {"80": "80"},
"environment": {"ENV_VAR": "value"}
}
```
### deploy-compose
Deploys a Docker Compose stack
```json
{
"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
```json
{
"container_name": "my-container"
}
```
### list-containers
Lists all Docker containers
```json
{}
```
## 🚧 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
1. Fork the repository from [docker-mcp](https://github.com/QuantGeekDev/docker-mcp)
2. Create your feature branch
3. Commit your changes
4. Push to the branch
5. Open a Pull Request
## 📜 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## ✨ Authors
- **Alex Andru** - *Initial work | Core contributor* - [@QuantGeekDev](https://github.com/QuantGeekDev)
- **Ali Sadykov** - *Initial work | Core contributor* - [@md-archive](https://github.com/md-archive)
---
Made with ❤️