docker mcp
A powerful Model Context Protocol (MCP) server for Docker operations, enabling seamless container and compose stack management through Claude AI.
A powerful Model Context Protocol (MCP) server for Docker operations, enabling seamless container and compose stack management through Claude AI.
A powerful Model Context Protocol (MCP) server for Docker operations, enabling seamless container and compose stack management through Claude AI.
https://github.com/user-attachments/assets/b5f6e40a-542b-4a39-ba12-7fdf803ee278
https://github.com/user-attachments/assets/da386eea-2fab-4835-82ae-896de955d934
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
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
{
"mcpServers": {
"docker-mcp": {
"command": "uv",
"args": [
"--directory",
"<path-to-docker-mcp>",
"run",
"docker-mcp"
]
}
}
}
{
"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: venvScriptsactivate
Install dependencies:
uv sync
Launch the MCP Inspector for debugging:
npx @modelcontextprotocol/inspector uv --directory <path-to-docker-mcp> run docker-mcp
The 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'
services:
service1:
image: image1:latest
ports:
- '8080:80'"
}
Retrieves logs from a specific container
{
"container_name": "my-container"
}
Lists all Docker containers
{}
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️
[
{
"description": "Create a new standalone Docker container",
"inputSchema": {
"properties": {
"environment": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"image": {
"type": "string"
},
"name": {
"type": "string"
},
"ports": {
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
"required": [
"image"
],
"type": "object"
},
"name": "create-container"
},
{
"description": "Deploy a Docker Compose stack",
"inputSchema": {
"properties": {
"compose_yaml": {
"type": "string"
},
"project_name": {
"type": "string"
}
},
"required": [
"compose_yaml",
"project_name"
],
"type": "object"
},
"name": "deploy-compose"
},
{
"description": "Retrieve the latest logs for a specified Docker container",
"inputSchema": {
"properties": {
"container_name": {
"type": "string"
}
},
"required": [
"container_name"
],
"type": "object"
},
"name": "get-logs"
},
{
"description": "List all Docker containers",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list-containers"
}
]